android_kernel_oneplus_msm8998/include/drm
Lukas Wunner 1112c0a386 drm: Allow determining if current task is output poll worker
commit 25c058ccaf2ebbc3e250ec1e199e161f91fe27d4 upstream.

Introduce a helper to determine if the current task is an output poll
worker.

This allows us to fix a long-standing deadlock in several DRM drivers
wherein the ->runtime_suspend callback waits for the output poll worker
to finish and the worker in turn calls a ->detect callback which waits
for runtime suspend to finish.  The ->detect callback is invoked from
multiple call sites and waiting for runtime suspend to finish is the
correct thing to do except if it's executing in the context of the
worker.

v2: Expand kerneldoc to specifically mention deadlock between
    output poll worker and autosuspend worker as use case. (Lyude)

Cc: Dave Airlie <airlied@redhat.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Link: https://patchwork.freedesktop.org/patch/msgid/3549ce32e7f1467102e70d3e9cbf70c46bfe108e.1518593424.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-18 11:17:48 +01:00
..
bridge
i2c
ttm drm/ttm, drm/vmwgfx: Relax permission checking when opening surfaces 2017-04-12 12:38:33 +02:00
ati_pcigart.h
drm_agpsupport.h drm: Remove dummy agp ioctl wrappers 2015-09-30 10:49:22 +02:00
drm_atomic.h drm/atomic: add a drm_atomic_clean_old_fb helper. 2015-11-17 13:02:14 +02:00
drm_atomic_helper.h
drm_cache.h drm: Loongson-3 doesn't fully support wc memory 2016-05-04 14:48:46 -07:00
drm_core.h
drm_crtc.h drm: Check crtc viewport correctly with rotated primary plane on atomic drivers 2015-10-19 11:00:47 +02:00
drm_crtc_helper.h drm: Allow determining if current task is output poll worker 2018-03-18 11:17:48 +01:00
drm_displayid.h
drm_dp_helper.h Merge commit '06d1ee32a4d25356a710b49d5e95dbdd68bdf505' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2015-10-16 10:25:28 +10:00
drm_dp_mst_helper.h drm/dp/mst: move GUID storage from mgr, port to only mst branch 2016-03-03 15:07:21 -08:00
drm_edid.h
drm_encoder_slave.h
drm_fb_cma_helper.h
drm_fb_helper.h
drm_fixed.h drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil 2016-03-03 15:07:20 -08:00
drm_flip_work.h
drm_gem.h drm/gem: Check locking in drm_gem_object_unreference 2015-10-19 11:00:35 +02:00
drm_gem_cma_helper.h
drm_global.h
drm_hashtab.h
drm_legacy.h
drm_mem_util.h
drm_mipi_dsi.h
drm_mm.h
drm_modes.h
drm_modeset_lock.h
drm_of.h drm: Introduce generic probe function for component based masters. 2015-10-20 12:01:29 +02:00
drm_os_linux.h
drm_panel.h
drm_pciids.h
drm_plane_helper.h
drm_rect.h
drm_sysfs.h
drm_vma_manager.h drm/gem: Use kref_get_unless_zero for the weak mmap references 2015-10-19 11:00:44 +02:00
drmP.h drm: extra printk() wrapper macros 2017-12-16 10:33:49 +01:00
exynos_drm.h
gma_drm.h
i915_component.h drm/i915: add kerneldoc for i915_audio_component 2015-10-07 16:05:37 +02:00
i915_drm.h
i915_pciids.h drm/i915/skl: Add missing SKL ids 2016-09-15 08:27:44 +02:00
intel-gtt.h