[PATCH 06/14] media: rzg2l-cru: Do not use irqsave when not needed

Jacopo Mondi posted 14 patches 5 days, 22 hours ago
There is a newer version of this series
[PATCH 06/14] media: rzg2l-cru: Do not use irqsave when not needed
Posted by Jacopo Mondi 5 days, 22 hours ago
From: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>

The return_unused_buffers() and rzg2l_cru_buffer_queue() functions
are never called from an interrupt context, hence they do not need to
use the irqsave version of the spinlock primitives.

Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
---
 drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
index 43b1d35fb963..2e94788c3a13 100644
--- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
+++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
@@ -113,7 +113,7 @@ static void return_unused_buffers(struct rzg2l_cru_dev *cru,
 	struct rzg2l_cru_buffer *buf, *node;
 	unsigned int i;
 
-	guard(spinlock_irqsave)(&cru->qlock);
+	guard(spinlock_irq)(&cru->qlock);
 
 	for (i = 0; i < cru->num_buf; i++) {
 		if (cru->queue_buf[i]) {
@@ -166,7 +166,7 @@ static void rzg2l_cru_buffer_queue(struct vb2_buffer *vb)
 	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
 	struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vb->vb2_queue);
 
-	guard(spinlock_irqsave)(&cru->qlock);
+	guard(spinlock_irq)(&cru->qlock);
 	list_add_tail(to_buf_list(vbuf), &cru->buf_list);
 }
 

-- 
2.53.0
Re: [PATCH 06/14] media: rzg2l-cru: Do not use irqsave when not needed
Posted by Lad, Prabhakar 2 days, 7 hours ago
On Fri, Mar 27, 2026 at 5:22 PM Jacopo Mondi
<jacopo.mondi@ideasonboard.com> wrote:
>
> From: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
>
> The return_unused_buffers() and rzg2l_cru_buffer_queue() functions
> are never called from an interrupt context, hence they do not need to
> use the irqsave version of the spinlock primitives.
>
> Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
> ---
>  drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Cheers,
Prabhakar

> diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> index 43b1d35fb963..2e94788c3a13 100644
> --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> @@ -113,7 +113,7 @@ static void return_unused_buffers(struct rzg2l_cru_dev *cru,
>         struct rzg2l_cru_buffer *buf, *node;
>         unsigned int i;
>
> -       guard(spinlock_irqsave)(&cru->qlock);
> +       guard(spinlock_irq)(&cru->qlock);
>
>         for (i = 0; i < cru->num_buf; i++) {
>                 if (cru->queue_buf[i]) {
> @@ -166,7 +166,7 @@ static void rzg2l_cru_buffer_queue(struct vb2_buffer *vb)
>         struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
>         struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vb->vb2_queue);
>
> -       guard(spinlock_irqsave)(&cru->qlock);
> +       guard(spinlock_irq)(&cru->qlock);
>         list_add_tail(to_buf_list(vbuf), &cru->buf_list);
>  }
>
>
> --
> 2.53.0
>
>
Re: [PATCH 06/14] media: rzg2l-cru: Do not use irqsave when not needed
Posted by Tommaso Merciai 3 days, 1 hour ago
On Fri, Mar 27, 2026 at 06:10:11PM +0100, Jacopo Mondi wrote:
> From: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
> 
> The return_unused_buffers() and rzg2l_cru_buffer_queue() functions
> are never called from an interrupt context, hence they do not need to
> use the irqsave version of the spinlock primitives.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>

LGTM.

Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>

Kind Regards,
Tommaso

> ---
>  drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> index 43b1d35fb963..2e94788c3a13 100644
> --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> @@ -113,7 +113,7 @@ static void return_unused_buffers(struct rzg2l_cru_dev *cru,
>  	struct rzg2l_cru_buffer *buf, *node;
>  	unsigned int i;
>  
> -	guard(spinlock_irqsave)(&cru->qlock);
> +	guard(spinlock_irq)(&cru->qlock);
>  
>  	for (i = 0; i < cru->num_buf; i++) {
>  		if (cru->queue_buf[i]) {
> @@ -166,7 +166,7 @@ static void rzg2l_cru_buffer_queue(struct vb2_buffer *vb)
>  	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
>  	struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vb->vb2_queue);
>  
> -	guard(spinlock_irqsave)(&cru->qlock);
> +	guard(spinlock_irq)(&cru->qlock);
>  	list_add_tail(to_buf_list(vbuf), &cru->buf_list);
>  }
>  
> 
> -- 
> 2.53.0
>
Re: [PATCH 06/14] media: rzg2l-cru: Do not use irqsave when not needed
Posted by Dan Scally 3 days, 7 hours ago

On 27/03/2026 17:10, Jacopo Mondi wrote:
> From: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
> 
> The return_unused_buffers() and rzg2l_cru_buffer_queue() functions
> are never called from an interrupt context, hence they do not need to
> use the irqsave version of the spinlock primitives.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
> ---

Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>

>   drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> index 43b1d35fb963..2e94788c3a13 100644
> --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
> @@ -113,7 +113,7 @@ static void return_unused_buffers(struct rzg2l_cru_dev *cru,
>   	struct rzg2l_cru_buffer *buf, *node;
>   	unsigned int i;
>   
> -	guard(spinlock_irqsave)(&cru->qlock);
> +	guard(spinlock_irq)(&cru->qlock);
>   
>   	for (i = 0; i < cru->num_buf; i++) {
>   		if (cru->queue_buf[i]) {
> @@ -166,7 +166,7 @@ static void rzg2l_cru_buffer_queue(struct vb2_buffer *vb)
>   	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
>   	struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vb->vb2_queue);
>   
> -	guard(spinlock_irqsave)(&cru->qlock);
> +	guard(spinlock_irq)(&cru->qlock);
>   	list_add_tail(to_buf_list(vbuf), &cru->buf_list);
>   }
>   
>