On Wed, Aug 14, 2019 at 11:05 AM Daniel Drake <drake@xxxxxxxxxxxx> wrote: > When cold-booting Asus X434DA, GPIO 7 is found to be already configured > as an interrupt, and the GPIO level is found to be in a state that > causes the interrupt to fire. > > As soon as pinctrl-amd probes, this interrupt fires and invokes > amd_gpio_irq_handler(). The IRQ is acked, but no GPIO-IRQ handler was > invoked, so the GPIO level being unchanged just causes another interrupt > to fire again immediately after. > > This results in an interrupt storm causing this platform to hang > during boot, right after pinctrl-amd is probed. > > Detect this situation and disable the GPIO interrupt when this happens. > This enables the affected platform to boot as normal. GPIO 7 actually is > the I2C touchpad interrupt line, and later on, i2c-multitouch loads and > re-enables this interrupt when it is ready to handle it. > > Instead of this approach, I considered disabling all GPIO interrupts at > probe time, however that seems a little risky, and I also confirmed that > Windows does not seem to have this behaviour: the same 41 GPIO IRQs are > enabled under both Linux and Windows, which is a far larger collection > than the GPIOs referenced by the DSDT on this platform. > > Signed-off-by: Daniel Drake <drake@xxxxxxxxxxxx> Patch applied! Yours, Linus Walleij