On Mon, 2008-12-15 at 18:47 +0800, Alexey Starikovskiy wrote: > It's not that simple... Here is relevant part of dmesg from my thinkpad: > > ------------------------------------------------------------------------ > ACPI Error (evregion-0315): No handler for Region [ECOR] > (ffff8800bf814558) [EmbeddedControl] [20080926] > ACPI Error (exfldio-0291): Region EmbeddedControl(3) has no handler > [20080926] > ACPI Error (psparse-0524): Method parse/execution failed > [\_SB_.PCI0.LPC_.EC__._INI] (Node ffff8800bf817300), AE_NOT_EXIST > ACPI: EC: EC description table is found, configuring boot EC > ACPI: Interpreter enabled > ACPI: (supports S0 S3 S5) > ACPI: Using IOAPIC for interrupt routing > ACPI: EC: non-query interrupt received, switching to interrupt mode > ACPI: EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62 > ACPI: EC: driver started in interrupt mode > -------------------------------------------------------------------------- There exists too much difference on different vendors. In theory there exists the EC flag in AML code, which indicates whether the EC operation region can be accessed. After the EC _REG object is evaluated, the EC flag will be set and it means that EC operation region can be accessed. Before the EC _REG object is evaluated, it had better be zero. >From the above dmesg it seems that the above warning is related with one of the two following factors: a. EC flag is initialized as one. In such case it means that EC operation region can be accessed before EC initialization. b. EC flag is not used correctly in some methods. At the same time from the above message we know that there exists the ECDT table. So when there exists the ECDT table, we can continue to use the current flowchart of EC initialization. Can Lin ming's proposal be applied to the situation that there is no ECDT table? Thanks. > > Any other suggestions? > > Regards, > Alex. > > Alexey Starikovskiy wrote: > > 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, > > Alex. > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html