linux/drivers/gpu/drm/nouveau
Martin Peres 9db66fceac drm/nouveau/pwr: fix the timers implementation with concurent processes
The problem with the current implementation is that adding a timer improperly
checked which process would time up first by not taking into account how much
time elapsed since their timer got scheduled. Rework the re-scheduling
decision t fix this.

The catch with this fix is that we are limited to scheduling timers of up to
2^31 ticks to avoid any potential overflow. Since we are unlikely to need to
wait for more than a second, this won't be a problem :)

Another possible fix would be to decrement the timeouts of all processes but
it would duplicate a lot of code and dealing with edge cases wasn't pretty
last time I checked.

Signed-off-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-09-15 22:24:56 +10:00
..
core drm/nouveau/pwr: fix the timers implementation with concurent processes 2014-09-15 22:24:56 +10:00
dispnv04 drm/nouveau: use ram info from nvif_device 2014-08-10 05:28:12 +10:00
nvif drm/nv50-/disp: add support for completion events 2014-09-15 22:22:12 +10:00
Kconfig drm/nouveau: support for probing platform devices 2014-08-10 05:11:10 +10:00
Makefile drm/gm107/therm: add PWM fan support v2 2014-09-15 22:24:50 +10:00
nouveau_abi16.c drm/nouveau/core/mm: allow allocation to be confined to a specific slice of heap 2014-09-15 22:22:13 +10:00
nouveau_abi16.h drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_acpi.c drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi 2014-05-02 16:24:52 +10:00
nouveau_acpi.h nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES 2013-02-20 16:05:16 +10:00
nouveau_agp.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nouveau_agp.h drm/nouveau: implement devinit subdev, and new init table parser 2012-10-03 13:12:47 +10:00
nouveau_backlight.c drm/nouveau: initial pass at moving to struct nvif_device 2014-08-10 05:13:13 +10:00
nouveau_bios.c drm/nv50-/disp: audit and version DAC_PWR method 2014-08-10 05:28:07 +10:00
nouveau_bios.h drm/nv04/disp: hide all the cruft away in its own little hole 2013-04-26 15:37:51 +10:00
nouveau_bo.c drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
nouveau_bo.h drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
nouveau_chan.c drm/nouveau: use ram info from nvif_device 2014-08-10 05:28:12 +10:00
nouveau_chan.h drm/nouveau/fifo: audit and version fifo channel classes 2014-08-10 05:28:04 +10:00
nouveau_connector.c drm/nouveau/disp: implement nvif event sources for vblank/connector notifiers 2014-08-10 05:28:12 +10:00
nouveau_connector.h drm/nouveau/disp: implement nvif event sources for vblank/connector notifiers 2014-08-10 05:28:12 +10:00
nouveau_crtc.h drm/nouveau/disp: implement nvif event sources for vblank/connector notifiers 2014-08-10 05:28:12 +10:00
nouveau_debugfs.c drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_debugfs.h drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_display.c Merge remote-tracking branch 'airlied/drm-next' into topic/vblank-rework 2014-09-11 14:46:53 +02:00
nouveau_display.h drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_dma.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nouveau_dma.h drm/nouveau: remove (most) hardcoded object handle usage 2014-08-10 05:13:15 +10:00
nouveau_dp.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nouveau_drm.c drm: add driver->set_busid() callback 2014-09-10 17:43:04 +10:00
nouveau_drm.h drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
nouveau_encoder.h drm/nouveau/dp: probe dpcd to determine connectedness 2014-06-11 16:11:42 +10:00
nouveau_fbcon.c drm/nouveau/kms: nouveau_fbcon_accel_fini can be static 2014-08-15 07:58:38 +10:00
nouveau_fbcon.h drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_fence.c drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
nouveau_fence.h drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
nouveau_gem.c drm/nouveau: use shared fences for readable objects 2014-09-02 17:28:48 +02:00
nouveau_gem.h dma-buf: use reservation objects 2014-07-08 13:03:20 -07:00
nouveau_hwmon.c drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_hwmon.h drm/nouveau/drm/pm: remove everything except the hwmon interfaces to THERM 2013-11-08 15:40:00 +10:00
nouveau_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
nouveau_ioctl.h drm/nouveau: fix up 32-bit ioctls and device wake up. 2013-09-02 09:52:55 +10:00
nouveau_nvif.c drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
nouveau_platform.c drm/nouveau/platform: fix compilation error 2014-08-15 07:58:39 +10:00
nouveau_platform.h drm/nouveau: support for probing platform devices 2014-08-10 05:11:10 +10:00
nouveau_prime.c dma-buf: use reservation objects 2014-07-08 13:03:20 -07:00
nouveau_reg.h
nouveau_sgdma.c drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_sysfs.c drm/nouveau: hide sysfs pstate file behind an option again 2014-08-10 05:28:18 +10:00
nouveau_sysfs.h drm/nouveau: port to nvif client/device/objects 2014-08-10 05:13:14 +10:00
nouveau_ttm.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
nouveau_ttm.h drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nouveau_usif.c drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
nouveau_usif.h drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
nouveau_vga.c drm/nouveau: initial pass at moving to struct nvif_device 2014-08-10 05:13:13 +10:00
nouveau_vga.h drm/nouveau: port remainder of drm code, and rip out compat layer 2012-10-03 13:12:59 +10:00
nv04_fbcon.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nv04_fence.c drm/nouveau: rework to new fence interface 2014-09-02 16:41:50 +02:00
nv10_fence.c drm/nouveau: rework to new fence interface 2014-09-02 16:41:50 +02:00
nv10_fence.h drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nv17_fence.c drm/nouveau: rework to new fence interface 2014-09-02 16:41:50 +02:00
nv50_display.c drm/nouveau: use ram info from nvif_device 2014-08-10 05:28:12 +10:00
nv50_display.h drm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge 2012-11-29 09:57:58 +10:00
nv50_fbcon.c drm/nouveau: remove (most) hardcoded object handle usage 2014-08-10 05:13:15 +10:00
nv50_fence.c drm/nouveau: rework to new fence interface 2014-09-02 16:41:50 +02:00
nv84_fence.c drm/nouveau: rework to new fence interface 2014-09-02 16:41:50 +02:00
nvc0_fbcon.c drm/nouveau: remove (most) hardcoded object handle usage 2014-08-10 05:13:15 +10:00
nvc0_fence.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00