Re: [PATCH] gpiolib-acpi: make sure we trigger edge events at least once on boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 12-07-18 11:36, Andy Shevchenko wrote:
On Wed, 2018-07-11 at 22:23 +0200, Hans de Goede wrote:

Note that the running of the event-handler is done 3 seconds after the
GPIO driver loads, this is done because the event-handler AML code may
rely on OperationRegions registered by other drivers and the GPIO
driver
is initialized very early on, where as the total init of all drivers
can
take up to 2.5 seconds. This delay avoid errors like these:

[    0.133026] ACPI Error: No handler for Region [XSCG]
((____ptrval____)) [GenericSerialBus] (20180531/evregion-132)
[    0.133036] ACPI Error: Region GenericSerialBus (ID=9) has no
handler (20180531/exfldio-265)
[    0.133046] ACPI Error: Method parse/execution failed
\_SB.GPO2._E12, AE_NOT_EXIST (20180531/psparse-516)

+/* Initialization of all builtin drivers may take up to 2.5 seconds
*/

Ouch, this sounds quite fragile. On your case it's 2.5s, on someone's
else it might take 5 or more?

Maybe we could go other way around, i.e. if the driver in question needs
to be loaded and requires this W/A, it can notify somehow GPIO ACPI to
sync the state?

I agree this is fragile, thinking more about this I think it would be better
to put all events which need an initial sync on an initial sync
list and go over that list from a late_initcall() handler, that way we
know for certain that all bultin drivers will be probed when we run the
event handlers for the initial state sync.

I think that will be a better solution, do you agree?

Regards,

Hans

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux