@@ -424,6 +424,9 @@ static bool adv7511_hpd(struct adv7511 *adv7511)
return false;
}
+static struct edid *adv7511_get_edid(struct adv7511 *adv7511,
+ struct drm_connector *connector);
+
static void adv7511_hpd_work(struct work_struct *work)
{
struct adv7511 *adv7511 = container_of(work, struct adv7511, hpd_work);
@@ -457,6 +460,9 @@ static void adv7511_hpd_work(struct work_struct *work)
if (adv7511->connector.dev) {
if (status == connector_status_disconnected)
cec_phys_addr_invalidate(adv7511->cec_adap);
+ else
+ adv7511_get_edid(adv7511, &adv7511->connector);
+
drm_kms_helper_hotplug_event(adv7511->connector.dev);
} else {
drm_bridge_hpd_notify(&adv7511->bridge, status);