Re: [PATCH] drm: bridge: dw-hdmi: support i2c extended read mode

From: Doug Anderson
Date: Thu Feb 23 2017 - 19:51:44 EST


Hi,

On Tue, Feb 21, 2017 at 11:45 PM, Nickey Yang
<nickey.yang@xxxxxxxxxxxxxx> wrote:
> "I2C Master Interface Extended Read Mode" implements a segment
> pointer-based read operation using the Special Register configuration.
>
> This patch fix https://patchwork.kernel.org/patch/7098101/ mentioned
> "The current implementation does not support "I2C Master Interface
> Extended Read Mode" to read data addressed by non-zero segment
> pointer, this means that if EDID has more than 1 extension blocks"
>
> With this patch,dw-hdmi can read EDID data with 1/2/4 blocks.
>
> Signed-off-by: Nickey Yang <nickey.yang@xxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/bridge/dw-hdmi.c | 38 ++++++++++++++++++++++++--------------
> 1 file changed, 24 insertions(+), 14 deletions(-)

I don't have any deep expertise on how the DW HDMI's i2c controller is
supposed to work and the truly correct way to specify the segment
address. However, this looks fairly sane to me and review feedback I
provided on http://crosreview.com/442308 has been addressed.

I would agree that this appears to handle the types of messages that
the kernel seems to construct, basically noticing the first write to
DDC_SEGMENT_ADDR and stashing the data that the kernel provides in
HDMI_I2CM_SEGPTR. It then tells dw-hdmi to do a
HDMI_I2CM_OPERATION_READ_EXT instead of HDMI_I2CM_OPERATION_READ.

Anyway, presuming that's the right way to tell dw-hdmi, I'd say:

Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>