From 76e798d5f852d1551474a27a519cd008ff29f4f1 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Tue, 28 May 2019 16:07:28 +0300 Subject: [PATCH 122/122] lvds: ti9x4: fix remote gpio setup The remote gpio must be set after remote gpio enablement on serializer side. Fix compilation warnings. GEOEMI registers addresing is 1 byte. Signed-off-by: Vladimir Barinov --- drivers/media/i2c/soc_camera/ar0233.c | 1 - drivers/media/i2c/soc_camera/gw4200_ar014x.c | 8 ++++---- drivers/media/i2c/soc_camera/gw5200_imx390.c | 8 ++++---- drivers/media/i2c/soc_camera/imx390.c | 2 +- drivers/media/i2c/soc_camera/ti9x4.c | 5 +++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/media/i2c/soc_camera/ar0233.c b/drivers/media/i2c/soc_camera/ar0233.c index 543b8a6..f3b899e 100644 --- a/drivers/media/i2c/soc_camera/ar0233.c +++ b/drivers/media/i2c/soc_camera/ar0233.c @@ -63,7 +63,6 @@ static inline struct ar0233_priv *to_ar0233(const struct i2c_client *client) static int ar0233_set_regs(struct i2c_client *client, const struct ar0233_reg **pregs) { - struct ar0233_priv *priv = to_ar0233(client); const struct ar0233_reg *regs; int i, j; diff --git a/drivers/media/i2c/soc_camera/gw4200_ar014x.c b/drivers/media/i2c/soc_camera/gw4200_ar014x.c index 674e409..45123ae 100644 --- a/drivers/media/i2c/soc_camera/gw4200_ar014x.c +++ b/drivers/media/i2c/soc_camera/gw4200_ar014x.c @@ -267,14 +267,14 @@ static int gw4200_g_register(struct v4l2_subdev *sd, { struct i2c_client *client = v4l2_get_subdevdata(sd); int ret; - u16 val = 0; + u8 val = 0; - ret = reg16_read16(client, (u16)reg->reg, &val); + ret = reg8_read(client, (u8)reg->reg, &val); if (ret < 0) return ret; reg->val = val; - reg->size = sizeof(u16); + reg->size = sizeof(u8); return 0; } @@ -284,7 +284,7 @@ static int gw4200_s_register(struct v4l2_subdev *sd, { struct i2c_client *client = v4l2_get_subdevdata(sd); - return reg16_write16(client, (u16)reg->reg, (u16)reg->val); + return reg8_write(client, (u8)reg->reg, (u8)reg->val); } #endif diff --git a/drivers/media/i2c/soc_camera/gw5200_imx390.c b/drivers/media/i2c/soc_camera/gw5200_imx390.c index 0703c3d..90de41f 100644 --- a/drivers/media/i2c/soc_camera/gw5200_imx390.c +++ b/drivers/media/i2c/soc_camera/gw5200_imx390.c @@ -235,14 +235,14 @@ static int gw5200_g_register(struct v4l2_subdev *sd, { struct i2c_client *client = v4l2_get_subdevdata(sd); int ret; - u16 val = 0; + u8 val = 0; - ret = reg16_read16(client, (u16)reg->reg, &val); + ret = reg8_read(client, (u8)reg->reg, &val); if (ret < 0) return ret; reg->val = val; - reg->size = sizeof(u16); + reg->size = sizeof(u8); return 0; } @@ -252,7 +252,7 @@ static int gw5200_s_register(struct v4l2_subdev *sd, { struct i2c_client *client = v4l2_get_subdevdata(sd); - return reg16_write16(client, (u16)reg->reg, (u16)reg->val); + return reg8_write(client, (u8)reg->reg, (u8)reg->val); } #endif diff --git a/drivers/media/i2c/soc_camera/imx390.c b/drivers/media/i2c/soc_camera/imx390.c index 7171d70..87279d0 100644 --- a/drivers/media/i2c/soc_camera/imx390.c +++ b/drivers/media/i2c/soc_camera/imx390.c @@ -249,7 +249,7 @@ static int imx390_s_ctrl(struct v4l2_ctrl *ctrl) struct imx390_priv *priv = to_imx390(client); int ret = -EINVAL; int val; - uint8_t val8; + uint8_t val8 = 0; if (!priv->init_complete) return 0; diff --git a/drivers/media/i2c/soc_camera/ti9x4.c b/drivers/media/i2c/soc_camera/ti9x4.c index fdb50e5..0cfcfaa 100644 --- a/drivers/media/i2c/soc_camera/ti9x4.c +++ b/drivers/media/i2c/soc_camera/ti9x4.c @@ -275,8 +275,6 @@ static void ti9x4_fpdlink3_setup(struct i2c_client *client, int idx) reg8_write(client, 0x70, ((priv->vc_map >> (idx * 4)) << 6) | 0x1e); /* CSI data type: yuv422 8-bit, assign VC */ reg8_write(client, 0x71, ((priv->vc_map >> (idx * 4)) << 6) | 0x2c); /* CSI data type: RAW12, assign VC */ reg8_write(client, 0xbc, 0x00); /* Setup minimal time between FV and LV to 3 PCLKs */ - reg8_write(client, 0x6e, 0x88 | (priv->gpio[1] << 4) | priv->gpio[0]); /* Remote GPIO1/GPIO0 setup */ - reg8_write(client, 0x6f, 0x88 | (priv->gpio[3] << 4) | priv->gpio[2]); /* Remote GPIO3/GPIO2 setup */ reg8_write(client, 0x72, priv->vc_map >> (idx * 4)); /* CSI VC MAP */ } @@ -340,6 +338,9 @@ static int ti9x4_initialize(struct i2c_client *client) break; } client->addr = priv->des_addr; + + reg8_write(client, 0x6e, 0x88 | (priv->gpio[1] << 4) | priv->gpio[0]); /* Remote GPIO1/GPIO0 setup */ + reg8_write(client, 0x6f, 0x88 | (priv->gpio[3] << 4) | priv->gpio[2]); /* Remote GPIO3/GPIO2 setup */ } return 0; -- 2.7.4