drivers/mailbox/omap-mailbox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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/
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;
© 2016 - 2025 Red Hat, Inc.