media: ccs: Support 16-bit sensor revision number register
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 28 Mar 2023 11:11:00 +0000 (14:11 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 11 Apr 2023 16:54:02 +0000 (18:54 +0200)
Read 16-bit sensor revision number if the 8-bit register has value 0.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/i2c/ccs/ccs-core.c

index daee36c..4adb2da 100644 (file)
@@ -2834,6 +2834,10 @@ static int ccs_identify_module(struct ccs_sensor *sensor)
                rval = ccs_read_addr_8only(sensor,
                                           CCS_R_SENSOR_REVISION_NUMBER,
                                           &minfo->sensor_revision_number);
+       if (!rval && !minfo->sensor_revision_number)
+               rval = ccs_read_addr_8only(sensor,
+                                          CCS_R_SENSOR_REVISION_NUMBER_16,
+                                          &minfo->sensor_revision_number);
        if (!rval)
                rval = ccs_read_addr_8only(sensor,
                                           CCS_R_SENSOR_FIRMWARE_VERSION,
@@ -2876,7 +2880,7 @@ static int ccs_identify_module(struct ccs_sensor *sensor)
                        minfo->sensor_model_id);
 
        dev_dbg(&client->dev,
-               "sensor revision 0x%2.2x firmware version 0x%2.2x\n",
+               "sensor revision 0x%4.4x firmware version 0x%2.2x\n",
                minfo->sensor_revision_number, minfo->sensor_firmware_version);
 
        if (minfo->ccs_version) {