drm/qxl: notify that the monitor config changed
authorMarc-André Lureau <marcandre.lureau@gmail.com>
Fri, 18 Oct 2013 14:11:29 +0000 (16:11 +0200)
committerDave Airlie <airlied@redhat.com>
Wed, 23 Oct 2013 13:21:09 +0000 (14:21 +0100)
drm_helper_hpd_irq_event() only notifies when the connector status
changed. However, Spice monitor config can change while the connector is
connected, to support arbitrary resolution. Do an hotplug event if it
wasn't done by drm_helper_hpd_irq_event().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c

index 835caba026d399d4e3750fbc3b47d44c7c6b7df5..c2cc9b52d330b92a0c098c608f12115c1bfb933c 100644 (file)
@@ -107,7 +107,12 @@ 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_helper_hpd_irq_event(qdev->ddev);
+
+       if (!drm_helper_hpd_irq_event(qdev->ddev)) {
+               /* notify that the monitor configuration changed, to
+                  adjust at the arbitrary resolution */
+               drm_kms_helper_hotplug_event(qdev->ddev);
+       }
 }
 
 static int qxl_add_monitors_config_modes(struct drm_connector *connector)