On Thu, Dec 29, 2016 at 05:58:50PM +0530, Shashank Sharma wrote:
This patch adds a small helper function, which clears the cached information about a hot-pluggable display, from connector. On event This will run on event of a hot-unplug, keeping the connector's display info up-to-date, avoiding any errors due to invalid cached data.
Forking this patch out from the 3 patch series: https://patchwork.freedesktop.org/patch/128961/ (still under review) and sending as individual patch.
Cc: Jose Abreu joabreu@synopsys.com Cc: Daniel Vetter daniel@ffwll.ch
Suggested-by: Jose Abreu joabreu@synopsys.com Signed-off-by: Shashank Sharma shashank.sharma@intel.com
drivers/gpu/drm/drm_probe_helper.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index 7cff91e..65a6a1f 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c @@ -164,6 +164,18 @@ void drm_kms_helper_poll_enable_locked(struct drm_device *dev) }
/**
- drm_helper_clear_display_info - clean cached display information for
- hot pluggable displays, on event of hot-unplug
- @connector: connector under event
- */
+void drm_helper_clear_display_info(struct drm_connector *connector) +{
- struct drm_display_info *info = &connector->display_info;
- memset(info, 0, sizeof(*info));
+}
+/**
- drm_helper_probe_single_connector_modes - get complete set of display modes
- @connector: connector to probe
- @maxX: max width for modes
@@ -288,6 +300,16 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, DRM_DEBUG_KMS("[CONNECTOR:%d:%s] disconnected\n", connector->base.id, connector->name); drm_mode_connector_update_edid_property(connector, NULL);
/*
* Connector status change to disconnected, time to clean
* cached display information.
* Any driver which doesn't use this probe_helper function
* should implement update of EDID property and display_info
* on its own.
*/
drm_helper_clear_display_info(connector);
This isn't really the only place where you can switch to disconnected. I think something along the lines of some of Jani's recent RFC where we try to make this functions dtrt thing for a NULL edid would be much more robust. -Daniel
- verbose_prune = false; goto prune; }
-- 1.9.1