[ Upstream commit e7da89926f6dc6cf855f5ffdf79ef99a1b115ca7 ]

When there is no EDID the CEC adapter should be unconfigured as
well. So call cec_phys_addr_invalidate() when this happens.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
Cc: <sta...@vger.kernel.org>      # for v4.18 and up
Signed-off-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
---
 drivers/media/i2c/adv7604.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c
index d2108aad3c658..26c3ec573a565 100644
--- a/drivers/media/i2c/adv7604.c
+++ b/drivers/media/i2c/adv7604.c
@@ -2295,8 +2295,10 @@ static int adv76xx_set_edid(struct v4l2_subdev *sd, 
struct v4l2_edid *edid)
                state->aspect_ratio.numerator = 16;
                state->aspect_ratio.denominator = 9;
 
-               if (!state->edid.present)
+               if (!state->edid.present) {
                        state->edid.blocks = 0;
+                       cec_phys_addr_invalidate(state->cec_adap);
+               }
 
                v4l2_dbg(2, debug, sd, "%s: clear EDID pad %d, edid.present = 
0x%x\n",
                                __func__, edid->pad, state->edid.present);
-- 
2.20.1



Reply via email to