Hi, Guillaume:
On Mon, 2021-11-08 at 01:08 +0100, Guillaume Ranquet wrote:
Signed-off-by: Guillaume Ranquet granquet@baylibre.com Change-Id: I6399dec26cfe56a338c2ca96989cb7cbd14e292b
drivers/gpu/drm/mediatek/Kconfig | 9 + drivers/gpu/drm/mediatek/Makefile | 2 + drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 219 +- drivers/gpu/drm/mediatek/mtk_hdmi_common.h | 24 +- drivers/gpu/drm/mediatek/mtk_mt8195_hdmi.c | 1835 +++++++++++++++++ drivers/gpu/drm/mediatek/mtk_mt8195_hdmi.h | 26 + .../gpu/drm/mediatek/mtk_mt8195_hdmi_ddc.c | 530 +++++ .../gpu/drm/mediatek/mtk_mt8195_hdmi_ddc.h | 20 + .../gpu/drm/mediatek/mtk_mt8195_hdmi_regs.h | 329 +++ 9 files changed, 2932 insertions(+), 62 deletions(-) create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8195_hdmi.c create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8195_hdmi.h create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8195_hdmi_ddc.c create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8195_hdmi_ddc.h create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8195_hdmi_regs.h
diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig index 0df75bceb74e..76cc402cbd75 100644 --- a/drivers/gpu/drm/mediatek/Kconfig +++ b/drivers/gpu/drm/mediatek/Kconfig @@ -31,3 +31,12 @@ config DRM_MEDIATEK_HDMI help DRM/KMS HDMI driver for Mediatek SoCs
[snip]
+static int mtk_hdmi_ddc_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs,
int num)
+{
- struct mtk_hdmi_ddc *ddc = adapter->algo_data;
- struct device *dev = adapter->dev.parent;
- int ret;
- int i;
- if (!ddc)
return -EINVAL;
- for (i = 0; i < num; i++) {
struct i2c_msg *msg = &msgs[i];
if (msg->flags & I2C_M_RD)
ret = fg_ddc_data_read(ddc, msg->addr, msg-
buf[0],
(msg->len), &msg->buf[0]);
else
ret = fg_ddc_data_write(ddc, msg->addr, msg-
buf[0],
(msg->len - 1), &msg-
buf[1]);
Why do you use msg->buf[1]? In mt8173 hdmi ddc driver, mtk_hdmi_ddc_write_msg() just use msg->buf[0]. If using msg->buf[1] is advance function, separate this advance function to another patch.
Regards, CK
if (ret <= 0)
goto xfer_end;
- }
- return i;
+xfer_end:
- dev_err(dev, "ddc failed! : %d\n", ret);
- return ret;
+}