Lukas Wunner
25c058ccaf
drm: Allow determining if current task is output poll worker
...
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
2018-02-16 22:30:06 +01:00
..
bridge
drm/bridge/sii8620: add remote control support
2017-10-11 13:14:25 +02:00
i2c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tinydrm
drm/tinydrm: Generalize tinydrm_xrgb8888_to_gray8()
2017-08-09 17:55:50 +02:00
ttm
drm/ttm: fix populate_and_map() functions once more
2017-11-29 14:42:35 -05:00
amd_asic_type.h
drm/amdgpu Moving amdgpu asic types to a separate file
2017-10-18 10:56:27 -04:00
ati_pcigart.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_agpsupport.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_atomic.h
drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits
2018-02-01 11:14:06 +01:00
drm_atomic_helper.h
drm: Nuke drm_atomic_helper_connector_dpms
2017-08-08 14:48:48 +02:00
drm_auth.h
drm: Add drm_object lease infrastructure [v5]
2017-10-25 16:31:29 +10:00
drm_blend.h
drm_bridge.h
drm/bridge: change return type of drm_bridge_add function
2017-08-21 08:51:53 +05:30
drm_cache.h
drm_color_mgmt.h
drm_connector.h
drm: rework delayed connector cleanup in connector_iter
2017-12-13 22:59:00 +01:00
drm_crtc.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_crtc_helper.h
drm: Allow determining if current task is output poll worker
2018-02-16 22:30:06 +01:00
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h
drm: Extract drm_device.h
2017-08-11 10:47:17 +02:00
drm_displayid.h
drm_dp_dual_mode_helper.h
drm_dp_helper.h
Merge remote-tracking branch 'pfdo/drm-next' into drm-next
2017-10-17 10:53:43 +10:00
drm_dp_mst_helper.h
drm/dp/mst: Sideband message transaction to power up/down nodes
2017-09-11 16:03:57 +03:00
drm_drv.h
drm: vblank: use ktime_t instead of timeval
2017-10-13 08:34:46 +10:00
drm_edid.h
drm: Update edid-derived drm_display_info fields at edid property set [v2]
2017-12-13 14:51:37 +01:00
drm_encoder.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_encoder_slave.h
drm_fb_cma_helper.h
main drm pull request for v4.15
2017-11-15 20:42:10 -08:00
drm_fb_helper.h
drm: remove unused and redundant callbacks
2017-08-07 11:20:36 +02:00
drm_file.h
drm_fixed.h
drm_flip_work.h
drm_fourcc.h
drm_framebuffer.h
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
2017-10-12 10:03:04 +10:00
drm_gem.h
drm/gem: Add drm_gem_dumb_map_offset()
2017-07-29 13:49:55 +02:00
drm_gem_cma_helper.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_gem_framebuffer_helper.h
drm/gem-fb-helper: Use debug message on gem lookup failure
2017-09-16 14:06:53 +02:00
drm_global.h
drm_hashtab.h
drm_ioctl.h
drm_irq.h
drm_lease.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_legacy.h
drm_mipi_dsi.h
drm_mm.h
lib/interval_tree: fast overlap detection
2017-09-08 18:26:49 -07:00
drm_mode_config.h
drm: rework delayed connector cleanup in connector_iter
2017-12-13 22:59:00 +01:00
drm_mode_object.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_modes.h
drm: add helper functions for YCBCR420 handling
2017-07-14 21:23:54 +03:00
drm_modeset_helper.h
drm_modeset_helper_vtables.h
drm/vtables: Fix typo
2017-09-01 19:50:24 +02:00
drm_modeset_lock.h
drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2.
2017-09-13 09:50:52 +02:00
drm_of.h
main drm pull request for v4.15
2017-11-15 20:42:10 -08:00
drm_os_linux.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_panel.h
drm_pci.h
drm_pciids.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_plane.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_plane_helper.h
drm_prime.h
drm_print.h
drm_property.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_rect.h
drm_scdc_helper.h
drm: Fix warning when building docs for scdc_helper
2017-07-31 14:24:14 +02:00
drm_simple_kms_helper.h
drm: Plumb modifiers through plane init
2017-08-01 17:50:06 +01:00
drm_syncobj.h
drm/syncobj: add a new helper drm_syncobj_get_fd
2017-10-06 16:47:53 -04:00
drm_sysfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_vblank.h
drm: Add CRTC_GET_SEQUENCE and CRTC_QUEUE_SEQUENCE ioctls [v3]
2017-10-23 11:15:03 +10:00
drm_vma_manager.h
drmP.h
drm: Add new LEASE debug level
2017-10-25 16:31:29 +10:00
gma_drm.h
i915_component.h
i915_drm.h
i915_pciids.h
drm/i915/kbl: Change a KBL pci id to GT2 from GT1.5
2017-09-21 06:22:29 -07:00
intel-gtt.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
intel_lpe_audio.h