From fb58ca28984a6c7c54ba275edafe4d2da2deeb17 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 2 Oct 2018 13:10:40 +0200 Subject: [PATCH] UPSTREAM: drm: add drm_connector_attach_edid_property() drm_connector_init doesn't attach the edid property for some connector types, drm_connector_attach_edid_property() can be used to enable the edid property in these cases. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20181002111041.17053-2-kraxel@redhat.com (cherry picked from commit 6b7e2d5c30322e6f30fcffb592615906ce9d3c6a) Signed-off-by: Greg Hartman BUG: 139386237 Change-Id: I876c559cc0ef4fae7e74a42f5d4b0efa18b2fff2 --- drivers/gpu/drm/drm_connector.c | 23 ++++++++++++++++++++--- include/drm/drm_connector.h | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index 6011d769d50b..486b784e4dd6 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -256,9 +256,7 @@ int drm_connector_init(struct drm_device *dev, if (connector_type != DRM_MODE_CONNECTOR_VIRTUAL && connector_type != DRM_MODE_CONNECTOR_WRITEBACK) - drm_object_attach_property(&connector->base, - config->edid_property, - 0); + drm_connector_attach_edid_property(connector); drm_object_attach_property(&connector->base, config->dpms_property, 0); @@ -290,6 +288,25 @@ int drm_connector_init(struct drm_device *dev, } EXPORT_SYMBOL(drm_connector_init); +/** + * drm_connector_attach_edid_property - attach edid property. + * @dev: DRM device + * @connector: the connector + * + * Some connector types like DRM_MODE_CONNECTOR_VIRTUAL do not get a + * edid property attached by default. This function can be used to + * explicitly enable the edid property in these cases. + */ +void drm_connector_attach_edid_property(struct drm_connector *connector) +{ + struct drm_mode_config *config = &connector->dev->mode_config; + + drm_object_attach_property(&connector->base, + config->edid_property, + 0); +} +EXPORT_SYMBOL(drm_connector_attach_edid_property); + /** * drm_connector_attach_encoder - attach a connector to an encoder * @connector: connector to attach diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 97ea41dc678f..4d58966b541b 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1083,6 +1083,7 @@ int drm_connector_init(struct drm_device *dev, struct drm_connector *connector, const struct drm_connector_funcs *funcs, int connector_type); +void drm_connector_attach_edid_property(struct drm_connector *connector); int drm_connector_register(struct drm_connector *connector); void drm_connector_unregister(struct drm_connector *connector); int drm_connector_attach_encoder(struct drm_connector *connector,