media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Wed, 30 Aug 2023 15:16:14 +0000 (16:16 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 27 Sep 2023 07:39:54 +0000 (09:39 +0200)
VC_MODE = 0 implies a two bit VC address.
VC_MODE = 1 is required for VCs with a larger address than two bits.

Fixes: eebe6d00e9bf ("media: camss: Add support for CSID hardware version Titan 170")
Cc: stable@vger.kernel.org
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/qcom/camss/camss-csid-gen2.c

index 0f8ac29d038db8562fcefb953113b023c593c69e..efc68f8b4de9ed0c13cefddaa2b80550be7ec86d 100644 (file)
@@ -449,6 +449,8 @@ static void __csid_configure_stream(struct csid_device *csid, u8 enable, u8 vc)
        writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0);
 
        val = 1 << CSI2_RX_CFG1_PACKET_ECC_CORRECTION_EN;
+       if (vc > 3)
+               val |= 1 << CSI2_RX_CFG1_VC_MODE;
        val |= 1 << CSI2_RX_CFG1_MISR_EN;
        writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG1);