]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Jan 2024 16:10:31 +0000 (17:10 +0100)
[ Upstream commit e655d1ae9703286cef7fda8675cad62f649dc183 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/camss/camss-csid-gen2.c

index 2e015e69a6ad6f196b3747d6d5eaa3e36f22cfa9..23acc387be5f06a988c6d12f04b053ca7484d3a6 100644 (file)
@@ -446,6 +446,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);