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

Kazuhiro Abe (Fujitsu) fj1078ii at fujitsu.com
Tue Sep 2 19:42:46 PDT 2025


Hi Ilkka
Thank you for your comment.

> Hi Kazuhiro,
> 
> I have a couple of minor comments below
> 
> On Fri, 29 Aug 2025, Kazuhiro Abe wrote:
> > AGDI has two types of signaling modes: SDEI and interrupt.
> > Currently, the AGDI driver only supports SDEI.
> > Therefore, add support for interrupt singaling mode The interrupt
> > vector is retrieved from the AGDI table, and call panic function when
> > an interrupt occurs.
> >
> > ---
> > I keep normal IRQ code when NMI cannot be used.
> > If there is any concern, please let me know.
> >
> > v1->v2
> > - Remove acpica update since there is no need to update define value
> >   for this patch.
> >
> > Signed-off-by: Kazuhiro Abe <fj1078ii at aa.jp.fujitsu.com>
> > ---
> > drivers/acpi/arm64/agdi.c | 98
> ++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 91 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/acpi/arm64/agdi.c b/drivers/acpi/arm64/agdi.c
> > index e0df3daa4abf..e887aab6b448 100644
> > --- a/drivers/acpi/arm64/agdi.c
> > +++ b/drivers/acpi/arm64/agdi.c
> 
> ...
> 
> > static int agdi_probe(struct platform_device *pdev) {
> > 	struct agdi_data *adata = dev_get_platdata(&pdev->dev); @@ -55,12
> > +108,17 @@ static int agdi_probe(struct platform_device *pdev)
> > 	if (!adata)
> > 		return -EINVAL;
> >
> > -	return agdi_sdei_probe(pdev, adata);
> > +	if (adata->flags & ACPI_AGDI_SIGNALING_MODE)
> > +		agdi_interrupt_probe(pdev, adata);
> > +	else
> > +		agdi_sdei_probe(pdev, adata);
> > +
> > +	return 0;
> 
> Is there a reason why you always return zero instead of a possible error code from
> either of the probe functions?

There was no particular reason; it was a bug.
I will fix it.

> 
> > }
> >
> 
> ...
> 
> > +static void agdi_remove(struct platform_device *pdev) {
> > +	struct agdi_data *adata = dev_get_platdata(&pdev->dev);
> > +
> > +	if (adata->flags & ACPI_AGDI_SIGNALING_MODE) {
> > +		agdi_interrupt_remove(pdev, adata);
> > +	} else {
> > +		agdi_sdei_remove(pdev, adata);
> > +	}
> 
> You don't need curly braces in this if/else block.

Understood, I will do that.

Best Regards,
Kazuhiro Abe

> 
> Cheers, Ilkka



More information about the linux-arm-kernel mailing list