diff --git a/drivers/gpu/drm/bridge/it6263.c b/drivers/gpu/drm/bridge/it6263.c index 4f1c388395b2752e37c70c790c4ab49afd7c8985..4d1e3dce6712fa8b7f04dc6329b2cf43deb4a58a 100644 --- a/drivers/gpu/drm/bridge/it6263.c +++ b/drivers/gpu/drm/bridge/it6263.c @@ -345,8 +345,15 @@ it6263_connector_detect(struct drm_connector *connector, bool force) { struct it6263 *it6263 = connector_to_it6263(connector); unsigned int status; - - regmap_read(it6263->hdmi_regmap, HDMI_REG_SYS_STATUS, &status); + int i; + + /* + * FIXME: We read status tens of times to workaround + * cable detection failure issue at boot time on some + * platforms. + */ + for (i = 0; i < 40; i++) + regmap_read(it6263->hdmi_regmap, HDMI_REG_SYS_STATUS, &status); return (status & HPDETECT) ? connector_status_connected : connector_status_disconnected;