]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: rzg2l-cru: Use proper guard() in irq handler
authorJacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Wed, 11 Feb 2026 08:33:27 +0000 (09:33 +0100)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Tue, 19 May 2026 07:01:49 +0000 (09:01 +0200)
The irq handler uses a scoped_guard() that covers the whole function
body.

Replace it with a more appropriate guard() and reduce the indentation.

Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c

index 0739169f4439be4879d0683bb411d29621b90e58..75928b0f48be6a45cada6b14af5175c82c667ceb 100644 (file)
@@ -670,70 +670,70 @@ irqreturn_t rzg3e_cru_irq(int irq, void *data)
        u32 irq_status;
        int slot;
 
-       scoped_guard(spinlock, &cru->qlock) {
-               irq_status = rzg2l_cru_read(cru, CRUnINTS2);
-               if (!irq_status)
-                       return IRQ_NONE;
+       guard(spinlock)(&cru->qlock);
 
-               dev_dbg(cru->dev, "CRUnINTS2 0x%x\n", irq_status);
+       irq_status = rzg2l_cru_read(cru, CRUnINTS2);
+       if (!irq_status)
+               return IRQ_NONE;
 
-               rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2));
+       dev_dbg(cru->dev, "CRUnINTS2 0x%x\n", irq_status);
 
-               /* Nothing to do if capture status is 'RZG2L_CRU_DMA_STOPPED' */
-               if (cru->state == RZG2L_CRU_DMA_STOPPED) {
-                       dev_dbg(cru->dev, "IRQ while state stopped\n");
-                       return IRQ_HANDLED;
-               }
+       rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2));
 
-               if (cru->state == RZG2L_CRU_DMA_STOPPING) {
-                       if (irq_status & CRUnINTS2_FExS(0) ||
-                           irq_status & CRUnINTS2_FExS(1) ||
-                           irq_status & CRUnINTS2_FExS(2) ||
-                           irq_status & CRUnINTS2_FExS(3))
-                               dev_dbg(cru->dev, "IRQ while state stopping\n");
-                       return IRQ_HANDLED;
-               }
+       /* Nothing to do if capture status is 'RZG2L_CRU_DMA_STOPPED' */
+       if (cru->state == RZG2L_CRU_DMA_STOPPED) {
+               dev_dbg(cru->dev, "IRQ while state stopped\n");
+               return IRQ_HANDLED;
+       }
 
-               slot = rzg3e_cru_get_current_slot(cru);
-               if (slot < 0)
-                       return IRQ_HANDLED;
+       if (cru->state == RZG2L_CRU_DMA_STOPPING) {
+               if (irq_status & CRUnINTS2_FExS(0) ||
+                   irq_status & CRUnINTS2_FExS(1) ||
+                   irq_status & CRUnINTS2_FExS(2) ||
+                   irq_status & CRUnINTS2_FExS(3))
+                       dev_dbg(cru->dev, "IRQ while state stopping\n");
+               return IRQ_HANDLED;
+       }
 
-               dev_dbg(cru->dev, "Current written slot: %d\n", slot);
-               cru->buf_addr[slot] = 0;
-
-               /*
-                * To hand buffers back in a known order to userspace start
-                * to capture first from slot 0.
-                */
-               if (cru->state == RZG2L_CRU_DMA_STARTING) {
-                       if (slot != 0) {
-                               dev_dbg(cru->dev, "Starting sync slot: %d\n", slot);
-                               return IRQ_HANDLED;
-                       }
-                       dev_dbg(cru->dev, "Capture start synced!\n");
-                       cru->state = RZG2L_CRU_DMA_RUNNING;
-               }
+       slot = rzg3e_cru_get_current_slot(cru);
+       if (slot < 0)
+               return IRQ_HANDLED;
 
-               /* Capture frame */
-               if (cru->queue_buf[slot]) {
-                       struct vb2_v4l2_buffer *buf = cru->queue_buf[slot];
-
-                       buf->field = cru->format.field;
-                       buf->sequence = cru->sequence;
-                       buf->vb2_buf.timestamp = ktime_get_ns();
-                       vb2_buffer_done(&buf->vb2_buf, VB2_BUF_STATE_DONE);
-                       cru->queue_buf[slot] = NULL;
-               } else {
-                       /* Scratch buffer was used, dropping frame. */
-                       dev_dbg(cru->dev, "Dropping frame %u\n", cru->sequence);
+       dev_dbg(cru->dev, "Current written slot: %d\n", slot);
+       cru->buf_addr[slot] = 0;
+
+       /*
+        * To hand buffers back in a known order to userspace start
+        * to capture first from slot 0.
+        */
+       if (cru->state == RZG2L_CRU_DMA_STARTING) {
+               if (slot != 0) {
+                       dev_dbg(cru->dev, "Starting sync slot: %d\n", slot);
+                       return IRQ_HANDLED;
                }
+               dev_dbg(cru->dev, "Capture start synced!\n");
+               cru->state = RZG2L_CRU_DMA_RUNNING;
+       }
 
-               cru->sequence++;
+       /* Capture frame */
+       if (cru->queue_buf[slot]) {
+               struct vb2_v4l2_buffer *buf = cru->queue_buf[slot];
 
-               /* Prepare for next frame */
-               rzg2l_cru_fill_hw_slot(cru, slot);
+               buf->field = cru->format.field;
+               buf->sequence = cru->sequence;
+               buf->vb2_buf.timestamp = ktime_get_ns();
+               vb2_buffer_done(&buf->vb2_buf, VB2_BUF_STATE_DONE);
+               cru->queue_buf[slot] = NULL;
+       } else {
+               /* Scratch buffer was used, dropping frame. */
+               dev_dbg(cru->dev, "Dropping frame %u\n", cru->sequence);
        }
 
+       cru->sequence++;
+
+       /* Prepare for next frame */
+       rzg2l_cru_fill_hw_slot(cru, slot);
+
        return IRQ_HANDLED;
 }