Thread (15 messages) 15 messages, 6 authors, 2025-11-21

RE: [PATCH v4] ACPI: AGDI: Add interrupt signaling mode support

From: Kazuhiro Abe (Fujitsu) <hidden>
Date: 2025-11-14 08:21:20
Also in: linux-acpi, lkml

Hi Charlie,
Hi All—

On Mon, Nov 10, 2025 at 07:38:17AM +0000, Kazuhiro Abe (Fujitsu) wrote:
quoted
Hi Will,
quoted
Hi Will,
quoted
[You don't often get email from will@kernel.org. Learn why this is
important at https://aka.ms/LearnAboutSenderIdentification ]

On Mon, Oct 20, 2025 at 09:23:05PM +0800, Hanjun Guo wrote:
quoted
On 2025/10/17 15:39, Kazuhiro Abe wrote:
quoted
AGDI has two types of signaling modes: SDEI and interrupt.
Currently, the AGDI driver only supports SDEI.
Therefore, add support for interrupt signaling mode The
interrupt vector is retrieved from the AGDI table, and call
panic function when an interrupt occurs.

Reviewed-by: Ilkka Koskinen <redacted>
Signed-off-by: Kazuhiro Abe <redacted>
---
Hanjun, I have addressed all your comments.
Please review them.

v3->v4
  - Add a comment to the flags member.
  - Fix agdi_interrupt_probe.
  - Fix agdi_interrupt_remove.
  - Add space in struct initializsation.
  - Delete curly braces.
Looks good to me,

Acked-by: Hanjun Guo <guohanjun@huawei.com>
I wasn't cc'd on the original patch but I couldn't figure out why
it uses IRQF_NO_AUTOEN when requesting the irq given that the
first thing it does is enable it.
I misunderstood the usage of request_irq and enable_irq.
Since there's no need to separate them, I will remove IRQF_NO_AUTOEN
and the enable_irq call, and send v5.
I found out when calling request_nmi, removing IRQF_NO_AUTOEN results in an
error (-EINVAL).
quoted
Therefore, I would like to keep IRQF_NO_AUTOEN specified.
If you have any comments on this version, please let me know.
Could it be that this is just a bug in `request_nmi`? I see the following:

if (!desc || (irq_settings_can_autoenable(desc) &&
    !(irqflags & IRQF_NO_AUTOEN)) ||
    !irq_settings_can_request(desc) ||
    WARN_ON(irq_settings_is_per_cpu_devid(desc)) ||
    !irq_supports_nmi(desc))
        return -EINVAL;

Perhaps there is just a missing `!` before `irq_settings_can_autoenable`.
I tried this change without specifying NO_AUTOEN, but it resulted in an error.
__setup_irq succeeded, but irq_nmi_setup failed with -EINVAL.
I haven't investigated further beyond that point yet.

Best Regards,
Kazuhiro Abe
As far as I can tell it has always been wrong - git blame points me to the original
commit where that code was introduced:

b525903c254da ("genirq: Provide basic NMI management for interrupt lines")

I looked and the only two callers are using `IRQF_NO_AUTOEN` so I guess it just
hasn't been noticed yet.

Happy to send a patch to fix it.
quoted
Best Regards,
Kazuhiro Abe
quoted
Best Regards,
Kazuhiro Abe
quoted
Will
Best—Charlie
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help