From 9a42f3263afe102eb8573f68a20054235a32b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 25 Apr 2019 12:38:47 +0300 Subject: [PATCH 109/122] lvds: onsemi: fix revsion parsing Fix revision parsing on ONSEMI imagers Signed-off-by: Vladimir Barinov --- drivers/media/i2c/soc_camera/ar0143.c | 2 +- drivers/media/i2c/soc_camera/ar0231.c | 2 +- drivers/media/i2c/soc_camera/ar0233.c | 11 +++++++---- drivers/media/i2c/soc_camera/ar0323.c | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/media/i2c/soc_camera/ar0143.c b/drivers/media/i2c/soc_camera/ar0143.c index b0ed9ff..01494fe 100644 --- a/drivers/media/i2c/soc_camera/ar0143.c +++ b/drivers/media/i2c/soc_camera/ar0143.c @@ -25,7 +25,7 @@ #define AR0143_I2C_ADDR 0x10 #define AR0143_PID 0x3000 -#define AR0143_REV 0x300E +#define AR0143_REV 0x31FE #define AR0143_VERSION_REG 0x0D54 #define AR0143_MEDIA_BUS_FMT MEDIA_BUS_FMT_SGRBG12_1X12 diff --git a/drivers/media/i2c/soc_camera/ar0231.c b/drivers/media/i2c/soc_camera/ar0231.c index 07f2b5e..05037c7 100644 --- a/drivers/media/i2c/soc_camera/ar0231.c +++ b/drivers/media/i2c/soc_camera/ar0231.c @@ -25,7 +25,7 @@ static const int ar0231_i2c_addr[] = {0x10, 0x20}; #define AR0231_PID 0x3000 -#define AR0231_REV 0x300E +#define AR0231_REV 0x31FE #define AR0231_VERSION_REG 0x0354 #define AR0231_MEDIA_BUS_FMT MEDIA_BUS_FMT_SGRBG12_1X12 diff --git a/drivers/media/i2c/soc_camera/ar0233.c b/drivers/media/i2c/soc_camera/ar0233.c index 19386bb..e18fa55 100644 --- a/drivers/media/i2c/soc_camera/ar0233.c +++ b/drivers/media/i2c/soc_camera/ar0233.c @@ -25,7 +25,7 @@ static const int ar0233_i2c_addr[] = {0x10, 0x20}; #define AR0233_PID 0x3000 -#define AR0233_REV 0x300E +#define AR0233_REV 0x31FE #define AR0233_VERSION_REG 0x0956 #define AR0233_MEDIA_BUS_FMT MEDIA_BUS_FMT_SGRBG12_1X12 @@ -410,12 +410,15 @@ static int ar0233_initialize(struct i2c_client *client) /* Read OTP IDs */ ar0233_otp_id_read(client); /* Program wizard registers */ - switch (rev) { - case 0x2015: + switch (rev & 0xf) { + case 0x1: + ar0233_set_regs(client, ar0233_regs_wizard_rev1, ARRAY_SIZE(ar0233_regs_wizard_rev1)); + break; + case 0x2: ar0233_set_regs(client, ar0233_regs_wizard_rev2, ARRAY_SIZE(ar0233_regs_wizard_rev2)); break; default: - ar0233_set_regs(client, ar0233_regs_wizard_rev1, ARRAY_SIZE(ar0233_regs_wizard_rev1)); + dev_err(&client->dev, "Unsupported chip revision\n"); } /* Enable stream */ diff --git a/drivers/media/i2c/soc_camera/ar0323.c b/drivers/media/i2c/soc_camera/ar0323.c index d29f4ad..2ee5526 100644 --- a/drivers/media/i2c/soc_camera/ar0323.c +++ b/drivers/media/i2c/soc_camera/ar0323.c @@ -25,7 +25,7 @@ static const int ar0323_i2c_addr[] = {0x10, 0x20}; #define AR0323_PID 0x3000 -#define AR0323_REV 0x300E +#define AR0323_REV 0x31FE #define AR0323_VERSION_REG 0x0D56 #define AR0323_MEDIA_BUS_FMT MEDIA_BUS_FMT_SGRBG12_1X12 -- 2.7.4