Re: Bug 11884 - _REG and _INI

Alexey Starikovskiy
2008-12-15T09:27:00Z

Zhao Yakui wrote:
> On Mon, 2008-12-15 at 11:51 +0800, Lin Ming wrote:
>> http://bugzilla.kernel.org/show_bug.cgi?id=11884
>>
>> Method(\_SB._INI)
>> {
>> //initialize package CUZO
>> }
>>
>> Method(\_SB_.PCI0.LPCB.EC0_._REG)
>> {
>> //access package CUZO
>> }
>>
>> For this machine, ﻿\_SB._INI must be run before ﻿\_SB_.PCI0.LPCB.EC0_._REG
>>
>> But currently early EC _REG method is run before _INI as below acpi_bus_init shows.
>>
>> void __init acpi_bus_init(void)
>> .....
>> status = acpi_ec_ecdt_probe();
>> /* Ignore result. Not having an ECDT is not fatal. */
>>
>> status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
>> .....
>> }
>>
>> ﻿acpi_ec_ecdt_probe will install ec handler although no ECDT found in this machine.
>>
>> Alexey,
>> How about that if there's no ECDT found, we do not install ec handler before ﻿acpi_initialize_objects?
>
> I do some test with the help of KVM. In my test the ECDT table is
> defined. And there also exists the EC device in DSDT table.Of course
> there exists the _INI/_REG object under the scope of EC device. Under
> the scope of \_SB.PCI0 there exists the _INI/_REG object.
>
>>From the test result it seems that all the _INI objects are evaluated
> before _REG object even when there exists the ECDT table.
>
> Hi, Alexey
> Can the Lin Ming's proposal be considered based on the above test?
Hi Yakui,
His proposal needs to be considered even without your test (but the test itself is quite helpful),
just because HP does not violate the ACPI spec, but ASUS notebooks without ECDT do violate it
(and fake ECDT workaround is there for them).

Thanks,