On 26.08.2014 08:50, Paul Menzel wrote:
Dear Charles, dear David,
Am Montag, den 25.08.2014, 11:21 -0600 schrieb David Hubbard:
I'm focusing in on this error message first:
ACPI Warning: For _SB_.PCI0.LPCB.EC__.LED_: Excess arguments - needs 1, found 2
Can you take a look at the .asl files in your coreboot build? I believe you will find something like "Method (LED, 2, NotSerialized)" which means the LED method wants 2 arguments. Then look for calls to "LED ()" and if you find one only passing 1 argument, that is the problem.
I also noticed that message and quickly looked through the coreboot ASL files, but could not find anything calling that message. Looking at the Linux kernel sources I was also unable to find a call site. But I’d say the OS call this method incorrectly.
It's called by acpi_thinkpad module: status = acpi_get_handle(ec_handle, "LED", &led_handle);
if (!acpi_evalf(led_handle, NULL, NULL, "vdd", led, led_led_arg1[ledstatus])) static const unsigned int led_led_arg1[] = { 0, 0x80, 0xc0 };
So first argument is 0-based LED number and the second is 0/0x80/0xc0 for state which matches EC bits pretty closely (up to some shifts). We probably should rename out LED method to sth else and provide a compatible LED method. Technically whole acpi_thinkpad is outside of ACPI spec but it's needed to use some features like Lock hotkey which is outside of ACPI spec as well.
[…]
Thanks,
Paul