summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2023-08-03 11:33:42 +0200
committerMauro Carvalho Chehab <mchehab@kernel.org>2023-08-14 20:27:57 +0200
commita99a041c22e82856cbf5f315e3bd4b913d3ba0ed (patch)
treec25a32397f1804133be8b16b046d99ca713bf957 /drivers/media
parentmedia: ov2680: Drop unnecessary pad checks (diff)
downloadlinux-a99a041c22e82856cbf5f315e3bd4b913d3ba0ed.tar.xz
linux-a99a041c22e82856cbf5f315e3bd4b913d3ba0ed.zip
media: ov2680: Read and log sensor revision during probe
Read and log sensor revision during probe. Since this means that the driver will now already log a message on successful probe drop the "ov2680 init correctly" log message. Acked-by: Rui Miguel Silva <rmfrfs@gmail.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/i2c/ov2680.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/media/i2c/ov2680.c b/drivers/media/i2c/ov2680.c
index c09a0e7f7787..1f59013e440c 100644
--- a/drivers/media/i2c/ov2680.c
+++ b/drivers/media/i2c/ov2680.c
@@ -33,6 +33,7 @@
#define OV2680_REG_SOFT_RESET CCI_REG8(0x0103)
#define OV2680_REG_CHIP_ID CCI_REG16(0x300a)
+#define OV2680_REG_SC_CMMN_SUB_ID CCI_REG8(0x302a)
#define OV2680_REG_PLL_MULTIPLIER CCI_REG16(0x3081)
#define OV2680_REG_EXPOSURE_PK CCI_REG24(0x3500)
@@ -966,13 +967,14 @@ static int ov2680_get_regulators(struct ov2680_dev *sensor)
static int ov2680_check_id(struct ov2680_dev *sensor)
{
- u64 chip_id;
- int ret;
+ u64 chip_id, rev;
+ int ret = 0;
- ret = cci_read(sensor->regmap, OV2680_REG_CHIP_ID, &chip_id, NULL);
+ cci_read(sensor->regmap, OV2680_REG_CHIP_ID, &chip_id, &ret);
+ cci_read(sensor->regmap, OV2680_REG_SC_CMMN_SUB_ID, &rev, &ret);
if (ret < 0) {
dev_err(sensor->dev, "failed to read chip id\n");
- return -ENODEV;
+ return ret;
}
if (chip_id != OV2680_CHIP_ID) {
@@ -981,6 +983,9 @@ static int ov2680_check_id(struct ov2680_dev *sensor)
return -ENODEV;
}
+ dev_info(sensor->dev, "sensor_revision id = 0x%llx, rev= %lld\n",
+ chip_id, rev & 0x0f);
+
return 0;
}
@@ -1121,8 +1126,6 @@ static int ov2680_probe(struct i2c_client *client)
pm_runtime_use_autosuspend(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
- dev_info(dev, "ov2680 init correctly\n");
-
return 0;
err_pm_runtime: