I broke out my trusty i845 and found a new boot failure, which upon
inspection turned out to be a recursion within:

drm_helper_probe_single_connector_modes() -> drm_helper_hpd_irq_event()
-> intel_crt_detect() -> drm_helper_probe_single_connector_modes()

Calling drm_kms_helper_poll_enable() instead performs the desired
re-initialisation of the polling should the user have toggled the
parameter, without the recursive side-effect.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/drm_crtc_helper.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc_helper.c 
b/drivers/gpu/drm/drm_crtc_helper.c
index d2ab01e..4238a19 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -104,7 +104,7 @@ int drm_helper_probe_single_connector_modes(struct 
drm_connector *connector,
                        connector->funcs->force(connector);
        } else {
                connector->status = connector->funcs->detect(connector);
-               drm_helper_hpd_irq_event(dev);
+               drm_kms_helper_poll_enable(dev);
        }

        if (connector->status == connector_status_disconnected) {
-- 
1.7.1

Reply via email to