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

Kazuhiro Abe (Fujitsu) fj1078ii at fujitsu.com
Thu Nov 20 18:31:34 PST 2025


Hi Hanjun and Will,

> On 2025/11/18 18:09, Kazuhiro Abe (Fujitsu) wrote:
> > Hi Hanjun,
> >
> > Thanks for your comments.
> >
> >>>>> 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<ilkka at os.amperecomputing.com>
> >>>>> Signed-off-by: Kazuhiro Abe<fj1078ii at aa.jp.fujitsu.com>
> >>>>> ---
> >>>>> 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 at 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.
> >> Sorry for the late reply, seems this comment was addressed.
> >>
> >> But when I go back to read the latest AGDI spec [0], I see the
> >> signaling mode can be SDEI*and*  interrupt:
> >>
> >> Flags node structures 1 36 Bits [1:0]: Signaling mode:
> >>
> >> 2: Both SDEI and Interrupt-based signaling is supported. While an
> >> SDEI event handler is registered, the platform is allowed to not
> >> generate the wired interrupt
> >>
> >> So which means we need to support both SDEI and interrupt when the
> >> signaling mode is 2, but for now, the code is
> >>
> >> +	if (agdi_table->flags & ACPI_AGDI_SIGNALING_MODE)
> >> +		pdata.gsiv = agdi_table->gsiv;
> >> +	else
> >> +		pdata.sdei_event = agdi_table->sdei_event;
> >>
> >> Kazuhiro, could you take a look again?
> > I don't think enabling both interrupt and SDEI makes sense.
> > Therefore, we need to choose one but we can't know which one is preferred
> for each platform.
> > On the other hand, before this patch the code is:
> >
> >         if (agdi_table->flags & ACPI_AGDI_SIGNALING_MODE) {
> >                 pr_warn("Interrupt signaling is not supported");
> >                 goto err_put_table;
> >         }
> >
> > ...and SDEI is used when mode is 2. This behavior will not be changed by this
> patch.
> > Therefore, It seems for me this patch is reasonable for now.
> > I would appreciate your thoughts on this.
> 
> I had a talk to firmware guy about this, they say even with both supported, the
> platform will use the same interrupt number to trigger, and the spec says:
> 
> While an SDEI event handler is registered, the platform is allowed to not
> generate the wired interrupt
> 
> I think this patch is ready to go.

Hanjun, Thank you for your review.

Will, as all comments have been addressed, please consider applying this patch.

Best Regards,
Kazuhiro Abe

> 
> Thanks
> Hanjun


More information about the linux-arm-kernel mailing list