Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() place…
…ment Turns out this part is my fault for not noticing when reviewing 9a2eba3 ("drm/nouveau: Fix drm poll_helper handling"). Currently we call drm_kms_helper_poll_enable() from nouveau_display_hpd_work(). This makes basically no sense however, because that means we're calling drm_kms_helper_poll_enable() every time we schedule the hotplug detection work. This is also against the advice mentioned in drm_kms_helper_poll_enable()'s documentation: Note that calls to enable and disable polling must be strictly ordered, which is automatically the case when they're only call from suspend/resume callbacks. Of course, hotplugs can't really be ordered. They could even happen immediately after we called drm_kms_helper_poll_disable() in nouveau_display_fini(), which can lead to all sorts of issues. Additionally; enabling polling /after/ we call drm_helper_hpd_irq_event() could also mean that we'd miss a hotplug event anyway, since drm_helper_hpd_irq_event() wouldn't bother trying to probe connectors so long as polling is disabled. So; simply move this back into nouveau_display_init() again. The race condition that both of these patches attempted to work around has already been fixed properly in d61a5c1 ("drm/nouveau: Fix deadlock on runtime suspend") Fixes: 9a2eba3 ("drm/nouveau: Fix drm poll_helper handling") Signed-off-by: Lyude Paul <[email protected]> Acked-by: Karol Herbst <[email protected]> Acked-by: Daniel Vetter <[email protected]> Cc: Lukas Wunner <[email protected]> Cc: Peter Ujfalusi <[email protected]> Cc: [email protected] Signed-off-by: Ben Skeggs <[email protected]>
- Loading branch information