21 lines
935 B
Diff
21 lines
935 B
Diff
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
|
|
index fc4445771c05..145da79f1316 100644
|
|
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
|
|
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
|
|
@@ -2741,6 +2741,15 @@ void dw_hdmi_qp_cec_set_hpd(struct dw_hdmi_qp *hdmi, bool plug_in, bool change)
|
|
if (!plug_in)
|
|
cec_notifier_set_phys_addr(hdmi->cec_notifier,
|
|
CEC_PHYS_ADDR_INVALID);
|
|
+ else if (hdmi->ddc) {
|
|
+ struct edid *edid = drm_get_edid(&hdmi->connector, hdmi->ddc);
|
|
+ if (edid) {
|
|
+ if (hdmi->cec_notifier)
|
|
+ cec_notifier_set_phys_addr_from_edid(
|
|
+ hdmi->cec_notifier, edid);
|
|
+ kfree(edid);
|
|
+ }
|
|
+ }
|
|
|
|
if (hdmi->bridge.dev) {
|
|
if (change && hdmi->cec_adap && hdmi->cec_adap->devnode.registered)
|