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;