Hello

For your information, this patch does not gives me any of these ACPI events on the x60 tablet, so the patch may be specific to the X220t

To correct the events value, I tried to replicate your events output with :
enable CONFIG_DYNAMIC_DEBUG
echo -n 'file ec.c +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

I still can't get logs similar to yours.

I would love to make that work. Please let me know how I can report the correct values.

Thanks
Charles

On Mon, Aug 25, 2014 at 5:02 PM, Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com> wrote:
On 25.08.2014 22:53, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
>>> Ideally, the DSDT should be fixed within coreboot, but this goes beyond
>>> my present abilities.
>> Not true. Just do the same changes to the corresponding *.asl files in
>> coreboot repo and send the patch to gerrit. Other than a layer of
>> preprocessing, it's exactly the same code as you got from disassembly.
>>
> Sorry, I misread you. I thought that you extracted coreboot DSDT from
> running system then patched it and used as custom DSDT. I'm going to
> make few experiments on my x220t.
>
>
This may interest you:
On X220t
stylus removal:
[17424.931729] ACPI : EC: ===== TASK =====
[17424.931747] ACPI : EC: ---> status = 0x28
[17424.931755] ACPI : EC: <--- command = 0x84
[17424.931852] ACPI : EC: ===== IRQ =====
[17424.931865] ACPI : EC: ---> status = 0x09
[17424.931874] ACPI : EC: ---> data = 0x5d
[17424.931885] ACPI : EC: ---> status = 0x08

So it's _Q5D

Stylus reinsert:
[17493.249126] ACPI : EC: push gpe query to the queue
[17493.249198] ACPI : EC: ===== TASK =====
[17493.249207] ACPI : EC: ---> status = 0x28
[17493.249213] ACPI : EC: <--- command = 0x84
[17493.249293] ACPI : EC: ===== IRQ =====
[17493.249306] ACPI : EC: ---> status = 0x09
[17493.249316] ACPI : EC: ---> data = 0x5c
[17493.249329] ACPI : EC: ---> status = 0x08

So it's _Q5C

Turning LID around:
[17582.701907] ACPI : EC: push gpe query to the queue
[17582.701979] ACPI : EC: ===== TASK =====
[17582.701987] ACPI : EC: ---> status = 0x28
[17582.701994] ACPI : EC: <--- command = 0x84
[17582.702075] ACPI : EC: ===== IRQ =====
[17582.702092] ACPI : EC: ---> status = 0x09
[17582.702096] ACPI : EC: ---> data = 0x5e
[17582.702104] ACPI : EC: ---> status = 0x08
So it's _Q5E

Back to laptop layout:
[17590.610440] ACPI : EC: push gpe query to the queue
[17590.610513] ACPI : EC: ===== TASK =====
[17590.610521] ACPI : EC: ---> status = 0x28
[17590.610527] ACPI : EC: <--- command = 0x84
[17590.610610] ACPI : EC: ===== IRQ =====
[17590.610620] ACPI : EC: ---> status = 0x09
[17590.610628] ACPI : EC: ---> data = 0x5f
[17590.610641] ACPI : EC: ---> status = 0x08
so it's _Q5F

Do you get the same events on X60t?

>From thinkpad-acpi.c:
        TP_HKEY_EV_TABLET_TABLET        = 0x5009, /* tablet swivel up */
        TP_HKEY_EV_TABLET_NOTEBOOK      = 0x500a, /* tablet swivel down */
        TP_HKEY_EV_PEN_INSERTED         = 0x500b, /* tablet pen inserted */
        TP_HKEY_EV_PEN_REMOVED          = 0x500c, /* tablet pen removed */

So those are the values MHKP has to return.

http://review.coreboot.org/6765 implements it. Please test.