From: Liviu Dudau <liviu.dudau@arm.com>
To: Boris Brezillon <boris.brezillon@collabora.com>
Cc: Steven Price <steven.price@arm.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 05/10] drm/panthor: Make panthor_fw_{update,toggle}_reqs() callable from IRQ context
Date: Wed, 29 Apr 2026 14:33:50 +0100 [thread overview]
Message-ID: <afIIvrGK-t3t9TgF@e142607> (raw)
In-Reply-To: <20260429-panthor-signal-from-irq-v1-5-4b92ae4142d2@collabora.com>
On Wed, Apr 29, 2026 at 11:38:32AM +0200, Boris Brezillon wrote:
> If we want some FW events to be processed in the interrupt path, we need
> the helpers manipulating req regs to be IRQ-safe, which implies using
> spin_lock_irqsave instead of spinlock. While at it, use guards instead
> of plain spin_lock/unlock calls.
>
> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> drivers/gpu/drm/panthor/panthor_fw.h | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/panthor/panthor_fw.h b/drivers/gpu/drm/panthor/panthor_fw.h
> index a99a9b6f4825..e56b7fe15bb3 100644
> --- a/drivers/gpu/drm/panthor/panthor_fw.h
> +++ b/drivers/gpu/drm/panthor/panthor_fw.h
> @@ -432,12 +432,11 @@ struct panthor_fw_global_iface {
> #define panthor_fw_toggle_reqs(__iface, __in_reg, __out_reg, __mask) \
> do { \
> u32 __cur_val, __new_val, __out_val; \
> - spin_lock(&(__iface)->lock); \
> + guard(spinlock_irqsave)(&(__iface)->lock); \
> __cur_val = READ_ONCE((__iface)->input->__in_reg); \
> __out_val = READ_ONCE((__iface)->output->__out_reg); \
> __new_val = ((__out_val ^ (__mask)) & (__mask)) | (__cur_val & ~(__mask)); \
> WRITE_ONCE((__iface)->input->__in_reg, __new_val); \
> - spin_unlock(&(__iface)->lock); \
> } while (0)
>
> /**
> @@ -458,21 +457,19 @@ struct panthor_fw_global_iface {
> #define panthor_fw_update_reqs(__iface, __in_reg, __val, __mask) \
> do { \
> u32 __cur_val, __new_val; \
> - spin_lock(&(__iface)->lock); \
> + guard(spinlock_irqsave)(&(__iface)->lock); \
> __cur_val = READ_ONCE((__iface)->input->__in_reg); \
> __new_val = (__cur_val & ~(__mask)) | ((__val) & (__mask)); \
> WRITE_ONCE((__iface)->input->__in_reg, __new_val); \
> - spin_unlock(&(__iface)->lock); \
> } while (0)
>
> #define panthor_fw_update_reqs64(__iface, __in_reg, __val, __mask) \
> do { \
> u64 __cur_val, __new_val; \
> - spin_lock(&(__iface)->lock); \
> + guard(spinlock_irqsave)(&(__iface)->lock); \
> __cur_val = READ_ONCE((__iface)->input->__in_reg); \
> __new_val = (__cur_val & ~(__mask)) | ((__val) & (__mask)); \
> WRITE_ONCE((__iface)->input->__in_reg, __new_val); \
> - spin_unlock(&(__iface)->lock); \
> } while (0)
>
> struct panthor_fw_global_iface *
>
> --
> 2.53.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
next prev parent reply other threads:[~2026-04-29 13:34 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-29 9:38 [PATCH 00/10] drm/panthor: Reduce dma_fence signalling latency Boris Brezillon
2026-04-29 9:38 ` [PATCH 01/10] drm/panthor: Make panthor_irq::state a non-atomic field Boris Brezillon
2026-04-29 12:29 ` Liviu Dudau
2026-05-01 13:17 ` Steven Price
2026-04-29 9:38 ` [PATCH 02/10] drm/panthor: Move the register accessors before the IRQ helpers Boris Brezillon
2026-04-29 12:31 ` Liviu Dudau
2026-05-01 13:17 ` Steven Price
2026-04-29 9:38 ` [PATCH 03/10] drm/panthor: Replace the panthor_irq macro machinery by inline helpers Boris Brezillon
2026-04-30 9:40 ` Karunika Choo
2026-04-30 10:38 ` Boris Brezillon
2026-05-01 13:22 ` Steven Price
2026-04-29 9:38 ` [PATCH 04/10] drm/panthor: Extend the IRQ logic to allow fast/raw IRQ handlers Boris Brezillon
2026-04-29 13:32 ` Liviu Dudau
2026-05-01 13:28 ` Steven Price
2026-04-29 9:38 ` [PATCH 05/10] drm/panthor: Make panthor_fw_{update,toggle}_reqs() callable from IRQ context Boris Brezillon
2026-04-29 13:33 ` Liviu Dudau [this message]
2026-05-01 13:39 ` [PATCH 05/10] drm/panthor: Make panthor_fw_{update, toggle}_reqs() " Steven Price
2026-04-29 9:38 ` [PATCH 06/10] drm/panthor: Prepare the scheduler logic for FW events in " Boris Brezillon
2026-05-01 13:47 ` Steven Price
2026-05-04 9:34 ` Boris Brezillon
2026-04-29 9:38 ` [PATCH 07/10] drm/panthor: Automate CSG IRQ processing at group unbind time Boris Brezillon
2026-05-01 13:53 ` Steven Price
2026-05-04 15:00 ` Boris Brezillon
2026-04-29 9:38 ` [PATCH 08/10] drm/panthor: Automatically enable interrupts in panthor_fw_wait_acks() Boris Brezillon
2026-05-01 14:20 ` Steven Price
2026-05-04 11:02 ` Boris Brezillon
2026-05-06 14:35 ` Steven Price
2026-05-06 16:08 ` Boris Brezillon
2026-05-13 15:02 ` Steven Price
2026-05-13 15:42 ` Boris Brezillon
2026-04-29 9:38 ` [PATCH 09/10] drm/panthor: Process FW events in IRQ context Boris Brezillon
2026-05-01 14:38 ` Steven Price
2026-04-29 9:38 ` [PATCH 10/10] drm/panthor: Introduce interrupt coalescing support for job IRQs Boris Brezillon
2026-05-01 14:57 ` Steven Price
2026-05-04 11:15 ` Boris Brezillon
2026-04-29 9:59 ` [PATCH 00/10] drm/panthor: Reduce dma_fence signalling latency Boris Brezillon
2026-04-29 10:36 ` Boris Brezillon
2026-05-05 8:54 ` Boris Brezillon
2026-05-05 16:12 ` Liviu Dudau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=afIIvrGK-t3t9TgF@e142607 \
--to=liviu.dudau@arm.com \
--cc=airlied@gmail.com \
--cc=boris.brezillon@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=steven.price@arm.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.