diff options
Diffstat (limited to 'bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0173-lvds-ti9x4-fix-remote-gpio-setup.patch')
-rw-r--r-- | bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0173-lvds-ti9x4-fix-remote-gpio-setup.patch | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0173-lvds-ti9x4-fix-remote-gpio-setup.patch b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0173-lvds-ti9x4-fix-remote-gpio-setup.patch new file mode 100644 index 00000000..b7c39af0 --- /dev/null +++ b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0173-lvds-ti9x4-fix-remote-gpio-setup.patch @@ -0,0 +1,132 @@ +From 76e798d5f852d1551474a27a519cd008ff29f4f1 Mon Sep 17 00:00:00 2001 +From: Vladimir Barinov <vladimir.barinov@cogentembedded.com> +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 <vladimir.barinov@cogentembedded.com> +--- + 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 + |