On Tue, Aug 14, 2018 at 4:07 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > GpioInt ACPI event handlers may see there IRQ triggered immediately > after requesting the IRQ (esp. level triggered ones). This means that they > may run before any other (builtin) drivers have had a chance to register > their OpRegion handlers, leading to errors like this: > > [ 1.133274] ACPI Error: No handler for Region [PMOP] ((____ptrval____)) [UserDefinedRegion] (20180531/evregion-132) > [ 1.133286] ACPI Error: Region UserDefinedRegion (ID=141) has no handler (20180531/exfldio-265) > [ 1.133297] ACPI Error: Method parse/execution failed \_SB.GPO2._L01, AE_NOT_EXIST (20180531/psparse-516) > > We already defer the manual initial trigger of edge triggered interrupts > by running it from a late_initcall handler, this commit replaces this with > deferring the entire acpi_gpiochip_request_interrupts() call till then, > fixing the problem of some OpRegions not being registered yet. > > Note that this removes the need to have a list of edge triggered handlers > which need to run, since the entire acpi_gpiochip_request_interrupts() call > is now delayed, acpi_gpiochip_request_interrupt() can call these directly > now. > > Acked-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > Changes in v2: > -Small correction to commit msg > -Drop unnecessary "if (handle)" check before acpi_walk_resources() Patch applied for fixes. Unless Andy says no. Yours, Linus Walleij