Explorar o código

qxl: use drm helper hotplug support

This uses the helper to deal with hotplug so fbdev gets included.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie %!s(int64=12) %!d(string=hai) anos
pai
achega
5ff91e4426
Modificáronse 2 ficheiros con 6 adicións e 1 borrados
  1. 3 1
      drivers/gpu/drm/qxl/qxl_display.c
  2. 3 0
      drivers/gpu/drm/qxl/qxl_kms.c

+ 3 - 1
drivers/gpu/drm/qxl/qxl_display.c

@@ -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,"
 		qxl_io_log(qdev, "failed crc check for client_monitors_config,"
 				 " retrying\n");
 				 " 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)
 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_encoder_init(dev, &qxl_output->enc, &qxl_enc_funcs,
 			 DRM_MODE_ENCODER_VIRTUAL);
 			 DRM_MODE_ENCODER_VIRTUAL);
 
 
+	/* we get HPD via client monitors config */
+	connector->polled = DRM_CONNECTOR_POLL_HPD;
 	encoder->possible_crtcs = 1 << num_output;
 	encoder->possible_crtcs = 1 << num_output;
 	drm_mode_connector_attach_encoder(&qxl_output->base,
 	drm_mode_connector_attach_encoder(&qxl_output->base,
 					  &qxl_output->enc);
 					  &qxl_output->enc);

+ 3 - 0
drivers/gpu/drm/qxl/qxl_kms.c

@@ -26,6 +26,7 @@
 #include "qxl_drv.h"
 #include "qxl_drv.h"
 #include "qxl_object.h"
 #include "qxl_object.h"
 
 
+#include <drm/drm_crtc_helper.h>
 #include <linux/io-mapping.h>
 #include <linux/io-mapping.h>
 
 
 int qxl_log_level;
 int qxl_log_level;
@@ -307,6 +308,8 @@ int qxl_driver_load(struct drm_device *dev, unsigned long flags)
 		goto out;
 		goto out;
 	}
 	}
 
 
+	drm_kms_helper_poll_init(qdev->ddev);
+
 	return 0;
 	return 0;
 out:
 out:
 	kfree(qdev);
 	kfree(qdev);