linux/drivers/gpu/drm
Dave Gordon ab0e455bd0 drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
Rather than using wait_for_atomic() when chacking for a response from
the GuC, we can get the effect of a hybrid spin/sleep wait by breaking
it into two stages. First, spin-wait for up to 10us to minimise latency
for "quick" commands; then, if that times out, sleep-wait for up 10ms
(the maximum allowed for a "slow" command).

Being able to do this depends on the recent patch
18f4b84 drm/i915: Use atomic waits for short non-atomic ones
and is similar to the hybrid approach in
1758b90 drm/i915: Use a hybrid scheme for fast register waits
(although we can't use that as-is, because that interface doesn't quite
match what we need here).

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1467815411-21756-1-git-send-email-david.s.gordon@intel.com
2016-07-06 16:24:46 +01:00
..
amd drm/amdkfd: Clean up inline handling 2016-06-21 21:32:52 +02:00
arc drm/arc: Remove redundant calls to drm_connector_register_all() 2016-06-21 10:53:12 +02:00
arm drm/arm: Add support for Mali Display Processors 2016-06-15 17:29:22 +01:00
armada drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
ast Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
atmel-hlcdc drm/atmel-hlcdc: Remove redundant call to drm_connector_unregister_all() 2016-06-22 09:57:20 +02:00
bochs drm/bochs: Use lockless gem BO free callback 2016-06-01 09:40:16 +02:00
bridge drm/bridge: Add sii902x driver 2016-06-20 15:55:49 +02:00
cirrus Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
etnaviv drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
exynos drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
fsl-dcu drm/fsl-dcu: use drm_mode_config_cleanup on initialization errors 2016-06-21 15:37:26 +02:00
gma500 drm/gma500: use drm_crtc_vblank_{on,off}() 2016-06-13 18:38:19 +02:00
hisilicon drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
i2c
i810
i915 drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action() 2016-07-06 16:24:46 +01:00
imx drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
mediatek MT8173 HDMI support 2016-06-24 13:16:07 +10:00
mga
mgag200 Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
msm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
nouveau drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
omapdrm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
panel drm/panel: simple: Add support for TPK U.S.A. LLC Fusion 7" and 10.1" panels 2016-05-12 11:32:14 +02:00
qxl Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
r128
radeon drm/radeon: use crtc directly in drm_crtc_vblank_put() 2016-06-13 18:38:12 +02:00
rcar-du Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/media into drm-next 2016-06-24 13:15:10 +10:00
rockchip drm/rockchip: Finish initialization before registering DRM device 2016-06-21 10:52:58 +02:00
savage
shmobile drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
sis drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
sti drm: sti: rework init sequence 2016-06-21 21:32:52 +02:00
sun4i drm/sun4i: Remove open-coded drm_connector_register_all() 2016-06-22 09:57:45 +02:00
tdfx
tegra drm: tegra: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:48 +02:00
tilcdc drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
ttm Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
udl drm/udl: use drm_crtc_send_vblank_event() 2016-06-06 18:03:06 +02:00
vc4 drm/vc4: Remove unused connector 2016-06-22 12:41:47 +02:00
vgem drm/vgem: Stop calling drm_drv_set_unique 2016-06-21 21:43:37 +02:00
via drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
virtio drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
vmwgfx drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic-helpers: Clear up cleanup_done a bit 2016-06-15 17:25:36 +02:00
drm_atomic.c drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_auth.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_bridge.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_bufs.c drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
drm_cache.c
drm_context.c
drm_crtc_helper.c drm/crtc-helper: disable_unused_functions really isn't for atomic 2016-06-21 11:46:08 +02:00
drm_crtc_internal.h drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_crtc.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_debugfs.c drm: Nuke legacy maps debugfs files 2016-06-16 10:16:11 +02:00
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.c drm: Minimally initialise drm_dp_aux 2016-06-17 14:41:47 +02:00
drm_dp_mst_topology.c Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
drm_drv.c drm: Don't call drm_dev_set_unique from platform drivers 2016-06-21 21:43:41 +02:00
drm_edid_load.c Fix annoyingly awkward typo in drm_edid_load.c 2016-05-30 09:59:28 +02:00
drm_edid.c drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: fb: cma: fix memory leak 2016-06-13 09:53:09 +02:00
drm_fb_helper.c drm/fb-helper: Reduce READ_ONCE(master) to lockless_dereference 2016-06-22 10:07:28 +02:00
drm_flip_work.c
drm_fops.c drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_fourcc.c drm: Move format-related helpers to drm_fourcc.c 2016-06-09 11:58:50 +02:00
drm_gem_cma_helper.c drm: Wrap direct calls to driver->gem_free_object from CMA 2016-06-01 15:00:28 +10:00
drm_gem.c drm/doc: Appease sphinx 2016-06-02 16:25:20 +02:00
drm_global.c
drm_hashtab.c
drm_info.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_internal.h drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_ioc32.c
drm_ioctl.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_irq.c drm: fix send_vblank_event use-after-free error 2016-06-20 21:18:35 +02:00
drm_kms_helper_common.c
drm_legacy.h drm: Hide hw.lock cleanup in filp->release better 2016-06-16 10:16:37 +02:00
drm_lock.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_memory.c
drm_mipi_dsi.c drm/dsi: Add uevent callback 2016-06-13 10:45:57 +02:00
drm_mm.c drm/mm: avoid possible null pointer dereference 2016-05-23 14:56:11 +02:00
drm_modes.c Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
drm_modeset_lock.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_of.c
drm_panel.c drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pci.c drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_plane_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_platform.c drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
drm_prime.c drm/prime: fix error path deadlock fail 2016-06-13 17:32:18 +02:00
drm_probe_helper.c drm: Only create a cmdline mode if no probed modes match 2016-06-02 15:10:22 +02:00
drm_rect.c
drm_scatter.c
drm_simple_kms_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_sysfs.c drm: Remove dev_pm_ops from drm_class 2016-06-09 08:43:25 +02:00
drm_trace_points.c
drm_trace.h
drm_vm.c drm: Nuke legacy maps debugfs files 2016-06-16 10:16:11 +02:00
drm_vma_manager.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
Kconfig drm/mediatek: Add DRM Driver for Mediatek SoC MT8173. 2016-05-06 17:47:35 +02:00
Makefile drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00