diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 9ab1017..fb9e4e5 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -1377,10 +1377,18 @@ struct edid *drm_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) { struct edid *edid; + int i; - if (!drm_probe_ddc(adapter)) - return NULL; + if (!drm_probe_ddc(adapter)) { + for (i = 0; i < 5; i++) { + usleep_range(10000,11000); + if (drm_probe_ddc(adapter)) + goto out; + } + return NULL; + } +out: edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter); if (edid) drm_get_displayid(connector, edid);