Re: [PATCH v2 5/9] media: qcom: camss: csid-680: Enable RDI SOF tracking
From: Loic Poulain
Date: Mon Nov 02 2026 - 12:44:05 EST
On Mon, Nov 2, 2026 at 2:57 PM <bryan.odonoghue@xxxxxxxxxx> wrote:
>
> From: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
>
> Similarly to the sm8650 we can quite easily switch on V4L2_EVENT_FRAME_SYNC
> for x1e/x2e which uses csid-680.
>
> Do so now.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
Reviewed-by: Loic Poulain <loic.poulain@xxxxxxxxxxxxxxxx>
> ---
> drivers/media/platform/qcom/camss/camss-csid-680.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/media/platform/qcom/camss/camss-csid-680.c b/drivers/media/platform/qcom/camss/camss-csid-680.c
> index 345a67c8fb947..452640e72f6d5 100644
> --- a/drivers/media/platform/qcom/camss/camss-csid-680.c
> +++ b/drivers/media/platform/qcom/camss/camss-csid-680.c
> @@ -296,6 +296,20 @@ static void __csid_configure_rdi_stream(struct csid_device *csid, u8 enable, u8
> writel(val, csid->base + CSID_RDI_CFG0(port));
> }
>
> +static void __csid_configure_rdi_irq(struct csid_device *csid, u8 enable, u8 rdi)
> +{
> + u32 val;
> +
> + val = readl(csid->base + CSID_CSI2_RDIN_IRQ_MASK(rdi));
> +
> + if (enable)
> + val |= CSID_CSI2_RDIN_INFO_INPUT_SOF;
> + else
> + val &= ~CSID_CSI2_RDIN_INFO_INPUT_SOF;
> +
> + writel(val, csid->base + CSID_CSI2_RDIN_IRQ_MASK(rdi));
> +}
> +
> static void csid_configure_stream(struct csid_device *csid, u8 enable)
> {
> int i;
> @@ -307,6 +321,7 @@ static void csid_configure_stream(struct csid_device *csid, u8 enable)
> if (csid->phy.en_vc & BIT(i)) {
> __csid_configure_rdi_stream(csid, enable, i, 0);
> __csid_configure_rx(csid, &csid->phy, 0);
> + __csid_configure_rdi_irq(csid, enable, i);
> __csid_ctrl_rdi(csid, enable, i);
> }
> }
> @@ -395,6 +410,9 @@ static irqreturn_t csid_isr(int irq, void *dev)
> if (val)
> writel(val, csid->base + CSID_CSI2_RDIN_IRQ_CLEAR(i));
>
> + if (val & CSID_CSI2_RDIN_INFO_INPUT_SOF)
> + csid_sof_event(csid, i);
> +
> if (val & CSID_CSI2_RDIN_RUP_DONE)
> csid_rup_complete(csid, i);
>
>
> --
> 2.56.0
>