[PATCH 06/14] media: qcom: camss: csid-gen3: Enable RDI EOF tracking

From: bryan . odonoghue

Date: Thu Oct 29 2026 - 05:57:56 EST


From: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>

Enable the EOF interrupt and notify csid_eof_event() to drive the
vb.sequence.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
---
drivers/media/platform/qcom/camss/camss-csid-gen3.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/qcom/camss/camss-csid-gen3.c b/drivers/media/platform/qcom/camss/camss-csid-gen3.c
index 6a538d825f78b..5a7a328f6c0e5 100644
--- a/drivers/media/platform/qcom/camss/camss-csid-gen3.c
+++ b/drivers/media/platform/qcom/camss/camss-csid-gen3.c
@@ -61,6 +61,7 @@

#define CSID_CSI2_RDIN_IRQ_MASK(rdi) (0xF0 + 0x10 * (rdi))
#define INFO_INPUT_SOF_IRQ BIT(12)
+#define INFO_INPUT_EOF_IRQ BIT(9)

#define CSID_CSI2_RDIN_IRQ_CLEAR(rdi) (0xF4 + 0x10 * (rdi))
#define CSID_CSI2_RDIN_IRQ_SET(rdi) (0xF8 + 0x10 * (rdi))
@@ -228,7 +229,7 @@ static void __csid_configure_rdi_irq(struct csid_device *csid, u8 enable, u8 rdi
u32 val = 0;

if (enable)
- val = INFO_INPUT_SOF_IRQ;
+ val = INFO_INPUT_SOF_IRQ | INFO_INPUT_EOF_IRQ;

writel(val, csid->base + CSID_CSI2_RDIN_IRQ_MASK(rdi));

@@ -306,6 +307,9 @@ static irqreturn_t csid_isr(int irq, void *dev)
if (val & INFO_INPUT_SOF_IRQ)
csid_sof_event(csid, i);

+ if (val & INFO_INPUT_EOF_IRQ)
+ csid_eof_event(csid, i);
+
if (val & RUP_DONE_IRQ_STATUS)
/* clear the reg update bit */
csid_subdev_reg_update(csid, i, true);

--
2.56.0