[PATCH] mailbox: omap: request shared interrupt to fix initialization

Matthias Schiffer posted 1 patch 1 year, 6 months ago
drivers/mailbox/omap-mailbox.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] mailbox: omap: request shared interrupt to fix initialization
Posted by Matthias Schiffer 1 year, 6 months ago
The TI AM64x and similar SoC families have mailboxes with two channels
each which share the same IRQ. The IRQ must thus be requested with
IRQF_SHARED, or initializing the second channel will fail.

Fixes: 3f58c1f4206f ("mailbox: omap: Remove kernel FIFO message queuing")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
---
 drivers/mailbox/omap-mailbox.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
index 46747559b438f..03187c65f98bf 100644
--- a/drivers/mailbox/omap-mailbox.c
+++ b/drivers/mailbox/omap-mailbox.c
@@ -230,7 +230,7 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
 	int ret = 0;
 
 	ret = request_threaded_irq(mbox->irq, NULL, mbox_interrupt,
-				   IRQF_ONESHOT, mbox->name, mbox);
+				   IRQF_ONESHOT | IRQF_SHARED, mbox->name, mbox);
 	if (unlikely(ret)) {
 		pr_err("failed to register mailbox interrupt:%d\n", ret);
 		return ret;
-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
https://www.tq-group.com/

Re: [PATCH] mailbox: omap: request shared interrupt to fix initialization
Posted by Andrew Davis 1 year, 6 months ago
On 6/19/24 6:52 AM, Matthias Schiffer wrote:
> The TI AM64x and similar SoC families have mailboxes with two channels
> each which share the same IRQ. The IRQ must thus be requested with
> IRQF_SHARED, or initializing the second channel will fail.
> 
> Fixes: 3f58c1f4206f ("mailbox: omap: Remove kernel FIFO message queuing")
> Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> ---

Looks like we found the same issue, already sent the same fix last week:

https://www.spinics.net/lists/kernel/msg5247681.html

>   drivers/mailbox/omap-mailbox.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
> index 46747559b438f..03187c65f98bf 100644
> --- a/drivers/mailbox/omap-mailbox.c
> +++ b/drivers/mailbox/omap-mailbox.c
> @@ -230,7 +230,7 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
>   	int ret = 0;
>   
>   	ret = request_threaded_irq(mbox->irq, NULL, mbox_interrupt,
> -				   IRQF_ONESHOT, mbox->name, mbox);
> +				   IRQF_ONESHOT | IRQF_SHARED, mbox->name, mbox);
>   	if (unlikely(ret)) {
>   		pr_err("failed to register mailbox interrupt:%d\n", ret);
>   		return ret;