qxl: use drm helper hotplug support
authorDave Airlie <airlied@redhat.com>
Fri, 5 Jul 2013 00:20:33 +0000 (10:20 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 5 Jul 2013 00:44:19 +0000 (10:44 +1000)
This uses the helper to deal with hotplug so fbdev gets included.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c
drivers/gpu/drm/qxl/qxl_kms.c

index 61714fd..f76f5dd 100644 (file)
@@ -107,7 +107,7 @@ void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
                qxl_io_log(qdev, "failed crc check for client_monitors_config,"
                                 " retrying\n");
        }
-       drm_sysfs_hotplug_event(qdev->ddev);
+       drm_helper_hpd_irq_event(qdev->ddev);
 }
 
 static int qxl_add_monitors_config_modes(struct drm_connector *connector)
@@ -833,6 +833,8 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
        drm_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs,
                         DRM_MODE_ENCODER_VIRTUAL);
 
+       /* we get HPD via client monitors config */
+       connector->polled = DRM_CONNECTOR_POLL_HPD;
        encoder->possible_crtcs = 1 << num_output;
        drm_mode_connector_attach_encoder(&qxl_output->base,
                                          &qxl_output->enc);
index 2c6f921..9e8da9e 100644 (file)
@@ -26,6 +26,7 @@
 #include "qxl_drv.h"
 #include "qxl_object.h"
 
+#include <drm/drm_crtc_helper.h>
 #include <linux/io-mapping.h>
 
 int qxl_log_level;
@@ -307,6 +308,8 @@ int qxl_driver_load(struct drm_device *dev, unsigned long flags)
                goto out;
        }
 
+       drm_kms_helper_poll_init(qdev->ddev);
+
        return 0;
 out:
        kfree(qdev);