]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: ccs: Accommodate C-PHY into the calculation
authorDavid Heidelberg <david@ixit.cz>
Fri, 9 Jan 2026 17:57:07 +0000 (18:57 +0100)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Fri, 16 Jan 2026 13:08:52 +0000 (14:08 +0100)
We need to set correct mode for PLL to calculate correct frequency.
Signalling mode is known at this point, so use it for that.

Fixes: 47b6eaf36eba ("media: ccs-pll: Differentiate between CSI-2 D-PHY and C-PHY")
Reviewed-by: Mehdi Djait <mehdi.djait@linux.intel.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
[Sakari Ailus: Drop extra newline.]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/i2c/ccs/ccs-core.c

index 6f2020e2f861d14486d66672e655dad005e22887..bc832f5ccd297542fce73cbd4c99c3bd7fd25096 100644 (file)
@@ -3472,7 +3472,21 @@ static int ccs_probe(struct i2c_client *client)
        sensor->scale_m = CCS_LIM(sensor, SCALER_N_MIN);
 
        /* prepare PLL configuration input values */
-       sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
+       switch (sensor->hwcfg.csi_signalling_mode) {
+       case CCS_CSI_SIGNALING_MODE_CSI_2_CPHY:
+               sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_CPHY;
+               break;
+       case CCS_CSI_SIGNALING_MODE_CSI_2_DPHY:
+       case SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_CLOCK:
+       case SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_STROBE:
+               sensor->pll.bus_type = CCS_PLL_BUS_TYPE_CSI2_DPHY;
+               break;
+       default:
+               dev_err(&client->dev, "unsupported signalling mode %u\n",
+                       sensor->hwcfg.csi_signalling_mode);
+               rval = -EINVAL;
+               goto out_cleanup;
+       }
        sensor->pll.csi2.lanes = sensor->hwcfg.lanes;
        if (CCS_LIM(sensor, CLOCK_CALCULATION) &
            CCS_CLOCK_CALCULATION_LANE_SPEED) {