Re: [PATCH v2] gpio: pl061: Fix the issue failed to register the ACPI interrtupion

From: Wei Xu
Date: Mon Aug 19 2019 - 09:00:01 EST


Hi Andy,

Thanks!

On 2019/8/16 21:40, Andy Shevchenko wrote:
On Fri, Aug 16, 2019 at 12:07 PM Wei Xu <xuwei5@xxxxxxxxxxxxx> wrote:
Invoke acpi_gpiochip_request_interrupts after the acpi data has been
attached to the pl061 acpi node to register interruption.

Otherwise it will be failed to register interruption for the ACPI case.
Because in the gpiochip_add_data_with_key, acpi_gpiochip_add is invoked
after gpiochip_add_irqchip but at that time the acpi data has not been
attached yet.
2. cat /proc/interrupts in the guest console:

estuary:/$ cat /proc/interrupts
CPU0
2: 3228 GICv3 27 Level arch_timer
4: 15 GICv3 33 Level uart-pl011
42: 0 GICv3 23 Level arm-pmu
IPI0: 0 Rescheduling interrupts
IPI1: 0 Function call interrupts
IPI2: 0 CPU stop interrupts
IPI3: 0 CPU stop (for crash dump) interrupts
IPI4: 0 Timer broadcast interrupts
IPI5: 0 IRQ work interrupts
IPI6: 0 CPU wake-up interrupts
Err: 0

But on QEMU v3.0.0 and Linux kernel v5.2.0-rc7, pl061 interruption is
there as below:

estuary:/$ cat /proc/interrupts
CPU0
2: 2648 GICv3 27 Level arch_timer
4: 12 GICv3 33 Level uart-pl011
42: 0 GICv3 23 Level arm-pmu
43: 0 ARMH0061:00 3 Edge ACPI:Event
IPI0: 0 Rescheduling interrupts
IPI1: 0 Function call interrupts
IPI2: 0 CPU stop interrupts
IPI3: 0 CPU stop (for crash dump) interrupts
IPI4: 0 Timer broadcast interrupts
IPI5: 0 IRQ work interrupts
IPI6: 0 CPU wake-up interrupts
Err: 0
In above show only affected line.

OK. Will update it in v3.

And the whole dmesg log on Linux kernel v5.2.0-rc7 is as below:
NO!
Please, remove this huge noise!

Sorry for the noise!
I will drop it in v3.

Best Regards,
Wei