From 40db425e45d63869fde0a51efd8fb8c0f7913293 Mon Sep 17 00:00:00 2001 From: Nickey Yang Date: Tue, 25 Apr 2017 15:09:08 +0800 Subject: [PATCH] drm: bridge/dw-hdmi: fix 4 block edid read error msgs[0].addr will be 0x30 when read edid with more than 2 block. but still a read edid operation with write DDC_ADDR to HDMI_I2CM_SLAVE register.So fix it. Change-Id: I5f0cd9172acd4a68d5b54eaf99f17b45385a4263 Signed-off-by: Nickey Yang --- drivers/gpu/drm/bridge/dw-hdmi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c index e33e5c34b298..135cdbd8dfaf 100644 --- a/drivers/gpu/drm/bridge/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/dw-hdmi.c @@ -512,6 +512,8 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, hdmi_writeb(hdmi, 0x00, HDMI_IH_MUTE_I2CM_STAT0); /* Set slave device address taken from the first I2C message */ + if (addr == DDC_SEGMENT_ADDR && msgs[0].len == 1) + addr = DDC_ADDR; hdmi_writeb(hdmi, addr, HDMI_I2CM_SLAVE); /* Set slave device register address on transfer */ -- 2.34.1