2014-04-17 11:11:33

by Mantas Mikulėnas

[permalink] [raw]
Subject: Media keys cause "ACPI: \_SB_.ATKD: Unsupported event" on ASUS laptop

After commit 1a699476e258 [two months ago], Linux has stopped
recognizing the media & function keys on my laptop's keyboard (the
laptop is ASUS K52JT.206).

When I press any of the Fn keys (Play/Pause, Stop, Prev, Next, Vol+,
Vol-, Mute, WiFi, Brightness +/-...), I get the following messages in dmesg:

| ACPI: \_SB_.ATKD: Unsupported event type 0x45
| ACPI: \_SB_.ATKD: Unsupported event type 0x43
| ACPI: \_SB_.ATKD: Unsupported event type 0x40
| etc.

In the past (v3.14 and earlier), those used to be reported as ACPI and
input events. From `acpi_listen` on a good kernel:

| hotkey ATK0100:00 00000045 00000000
| cd/play CDPLAY 00000080 00000000 K
|
| hotkey ATK0100:00 00000031 0000000d
| button/volumedown VOLDN 00000080 00000000 K
|
| hotkey ATK0100:00 00000016 00000000
|
| hotkey ATK0100:00 00000025 00000001

Bisect output:

1a699476e25814343766342672c655fb135224cc is the first bad commit
commit 1a699476e25814343766342672c655fb135224cc
Author: Rafael J. Wysocki <[email protected]>
Date: Thu Feb 6 13:58:13 2014 +0100

ACPI / hotplug / PCI: Hotplug notifications from acpi_bus_notify()

Since acpi_bus_notify() is executed on all notifications for all
devices anyway, make it execute acpi_device_hotplug() for all
hotplug events instead of installing notify handlers pointing to
the same function for all hotplug devices.
[...]

* Linux 3.14.0-rc1-00023-g1a699476e258 (bad)
* Linux 3.14.0-rc1-00022-g5e6f236c2631 (good)

(I'm not quite sure why they show up as 3.14-rc1 if they're after 3.14?)

The kernel config is close to that of stock Arch Linux, except with
entirely irrelevant devices disabled (PATA, SCSI, tuner, etc.)

--
Mantas Mikulėnas <[email protected]>


2014-04-24 05:22:06

by Sitsofe Wheeler

[permalink] [raw]
Subject: Re: [REGRESSION] Media keys cause "ACPI: \_SB_.ATKD: Unsupported event" on ASUS laptop

On Thu, Apr 17, 2014 at 02:11:15PM +0300, Mantas Mikulėnas wrote:
> After commit 1a699476e258 [two months ago], Linux has stopped
> recognizing the media & function keys on my laptop's keyboard (the
> laptop is ASUS K52JT.206).
>
> When I press any of the Fn keys (Play/Pause, Stop, Prev, Next, Vol+,
> Vol-, Mute, WiFi, Brightness +/-...), I get the following messages in dmesg:
>
> | ACPI: \_SB_.ATKD: Unsupported event type 0x45
> | ACPI: \_SB_.ATKD: Unsupported event type 0x43
> | ACPI: \_SB_.ATKD: Unsupported event type 0x40
> | etc.

I'm seeing the same problem with an EeePC 900's volume and brightness
keys:
[ 90.098518] ACPI: \_SB_.ATKD: Unsupported event type 0x14
[ 90.785202] ACPI: \_SB_.ATKD: Unsupported event type 0x15
[ 457.062072] ACPI: \_SB_.ATKD: Unsupported event type 0x2e
[ 457.926754] ACPI: \_SB_.ATKD: Unsupported event type 0x2d
[ 458.418740] ACPI: \_SB_.ATKD: Unsupported event type 0x2c
[ 458.821482] ACPI: \_SB_.ATKD: Unsupported event type 0x2b
[ 459.240896] ACPI: \_SB_.ATKD: Unsupported event type 0x2a


> In the past (v3.14 and earlier), those used to be reported as ACPI and
> input events. From `acpi_listen` on a good kernel:
>
> | hotkey ATK0100:00 00000045 00000000
> | cd/play CDPLAY 00000080 00000000 K
> |
> | hotkey ATK0100:00 00000031 0000000d
> | button/volumedown VOLDN 00000080 00000000 K
> |
> | hotkey ATK0100:00 00000016 00000000
> |
> | hotkey ATK0100:00 00000025 00000001
>
> Bisect output:
>
> 1a699476e25814343766342672c655fb135224cc is the first bad commit
> commit 1a699476e25814343766342672c655fb135224cc
> Author: Rafael J. Wysocki <[email protected]>
> Date: Thu Feb 6 13:58:13 2014 +0100
>
> ACPI / hotplug / PCI: Hotplug notifications from acpi_bus_notify()
>
> Since acpi_bus_notify() is executed on all notifications for all
> devices anyway, make it execute acpi_device_hotplug() for all
> hotplug events instead of installing notify handlers pointing to
> the same function for all hotplug devices.
> [...]
>
> * Linux 3.14.0-rc1-00023-g1a699476e258 (bad)
> * Linux 3.14.0-rc1-00022-g5e6f236c2631 (good)
>
> (I'm not quite sure why they show up as 3.14-rc1 if they're after 3.14?)
>
> The kernel config is close to that of stock Arch Linux, except with
> entirely irrelevant devices disabled (PATA, SCSI, tuner, etc.)

Adding email addresses recommended by get_maintainer.pl to see if that
helps this to get noticed...

--
Sitsofe | http://sucs.org/~sits/

2014-04-24 10:34:43

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [REGRESSION] Media keys cause "ACPI: \_SB_.ATKD: Unsupported event" on ASUS laptop

On Thursday, April 24, 2014 06:21:52 AM Sitsofe Wheeler wrote:
> On Thu, Apr 17, 2014 at 02:11:15PM +0300, Mantas Mikulėnas wrote:
> > After commit 1a699476e258 [two months ago], Linux has stopped
> > recognizing the media & function keys on my laptop's keyboard (the
> > laptop is ASUS K52JT.206).
> >
> > When I press any of the Fn keys (Play/Pause, Stop, Prev, Next, Vol+,
> > Vol-, Mute, WiFi, Brightness +/-...), I get the following messages in dmesg:
> >
> > | ACPI: \_SB_.ATKD: Unsupported event type 0x45
> > | ACPI: \_SB_.ATKD: Unsupported event type 0x43
> > | ACPI: \_SB_.ATKD: Unsupported event type 0x40
> > | etc.
>
> I'm seeing the same problem with an EeePC 900's volume and brightness
> keys:
> [ 90.098518] ACPI: \_SB_.ATKD: Unsupported event type 0x14
> [ 90.785202] ACPI: \_SB_.ATKD: Unsupported event type 0x15
> [ 457.062072] ACPI: \_SB_.ATKD: Unsupported event type 0x2e
> [ 457.926754] ACPI: \_SB_.ATKD: Unsupported event type 0x2d
> [ 458.418740] ACPI: \_SB_.ATKD: Unsupported event type 0x2c
> [ 458.821482] ACPI: \_SB_.ATKD: Unsupported event type 0x2b
> [ 459.240896] ACPI: \_SB_.ATKD: Unsupported event type 0x2a

Does this patch help:

---
drivers/acpi/bus.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Index: linux-pm/drivers/acpi/bus.c
===================================================================
--- linux-pm.orig/drivers/acpi/bus.c
+++ linux-pm/drivers/acpi/bus.c
@@ -380,9 +380,8 @@ static void acpi_bus_notify(acpi_handle
break;

default:
- acpi_handle_warn(handle, "Unsupported event type 0x%x\n", type);
- ost_code = ACPI_OST_SC_UNRECOGNIZED_NOTIFY;
- goto err;
+ acpi_handle_debug(handle, "Unknown event type 0x%x\n", type);
+ break;
}

adev = acpi_bus_get_acpi_device(handle);

2014-04-24 13:32:24

by Mantas Mikulėnas

[permalink] [raw]
Subject: Re: [REGRESSION] Media keys cause "ACPI: \_SB_.ATKD: Unsupported event" on ASUS laptop

On Thu, Apr 24, 2014 at 1:51 PM, Rafael J. Wysocki <[email protected]> wrote:
> On Thursday, April 24, 2014 06:21:52 AM Sitsofe Wheeler wrote:
>> On Thu, Apr 17, 2014 at 02:11:15PM +0300, Mantas Mikulėnas wrote:
>> > After commit 1a699476e258 [two months ago], Linux has stopped
>> > recognizing the media & function keys on my laptop's keyboard (the
>> > laptop is ASUS K52JT.206).
>> >
>> > When I press any of the Fn keys (Play/Pause, Stop, Prev, Next, Vol+,
>> > Vol-, Mute, WiFi, Brightness +/-...), I get the following messages in dmesg:
>> >
>> > | ACPI: \_SB_.ATKD: Unsupported event type 0x45
>> > | ACPI: \_SB_.ATKD: Unsupported event type 0x43
>> > | ACPI: \_SB_.ATKD: Unsupported event type 0x40
>> > | etc.
>>
>> I'm seeing the same problem with an EeePC 900's volume and brightness
>> keys:
>> [ 90.098518] ACPI: \_SB_.ATKD: Unsupported event type 0x14
>> [ 90.785202] ACPI: \_SB_.ATKD: Unsupported event type 0x15
>> [ 457.062072] ACPI: \_SB_.ATKD: Unsupported event type 0x2e
>> [ 457.926754] ACPI: \_SB_.ATKD: Unsupported event type 0x2d
>> [ 458.418740] ACPI: \_SB_.ATKD: Unsupported event type 0x2c
>> [ 458.821482] ACPI: \_SB_.ATKD: Unsupported event type 0x2b
>> [ 459.240896] ACPI: \_SB_.ATKD: Unsupported event type 0x2a
>
> Does this patch help:
>
> ---
> drivers/acpi/bus.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)

Yes, it seems to be working fine.


Thanks!

--
Mantas Mikulėnas <[email protected]>

2014-04-24 16:50:25

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [REGRESSION] Media keys cause "ACPI: \_SB_.ATKD: Unsupported event" on ASUS laptop

On Thursday, April 24, 2014 04:31:19 PM Mantas Mikulėnas wrote:
> On Thu, Apr 24, 2014 at 1:51 PM, Rafael J. Wysocki <[email protected]> wrote:
> > On Thursday, April 24, 2014 06:21:52 AM Sitsofe Wheeler wrote:
> >> On Thu, Apr 17, 2014 at 02:11:15PM +0300, Mantas Mikulėnas wrote:
> >> > After commit 1a699476e258 [two months ago], Linux has stopped
> >> > recognizing the media & function keys on my laptop's keyboard (the
> >> > laptop is ASUS K52JT.206).
> >> >
> >> > When I press any of the Fn keys (Play/Pause, Stop, Prev, Next, Vol+,
> >> > Vol-, Mute, WiFi, Brightness +/-...), I get the following messages in dmesg:
> >> >
> >> > | ACPI: \_SB_.ATKD: Unsupported event type 0x45
> >> > | ACPI: \_SB_.ATKD: Unsupported event type 0x43
> >> > | ACPI: \_SB_.ATKD: Unsupported event type 0x40
> >> > | etc.
> >>
> >> I'm seeing the same problem with an EeePC 900's volume and brightness
> >> keys:
> >> [ 90.098518] ACPI: \_SB_.ATKD: Unsupported event type 0x14
> >> [ 90.785202] ACPI: \_SB_.ATKD: Unsupported event type 0x15
> >> [ 457.062072] ACPI: \_SB_.ATKD: Unsupported event type 0x2e
> >> [ 457.926754] ACPI: \_SB_.ATKD: Unsupported event type 0x2d
> >> [ 458.418740] ACPI: \_SB_.ATKD: Unsupported event type 0x2c
> >> [ 458.821482] ACPI: \_SB_.ATKD: Unsupported event type 0x2b
> >> [ 459.240896] ACPI: \_SB_.ATKD: Unsupported event type 0x2a
> >
> > Does this patch help:
> >
> > ---
> > drivers/acpi/bus.c | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
>
> Yes, it seems to be working fine.

OK, thanks for verifying, below it goes with a changelog and tags.

Rafael


---
From: Rafael J. Wysocki <[email protected]>
Subject: ACPI / notify: Do not block unknown type notifications in root handler

Commit 1a699476e258 "ACPI / hotplug / PCI: Hotplug notifications from
acpi_bus_notify()" changed the root notify handler, acpi_bus_notify(),
to block unknown type norifications, but it overlooked the fact that
they might be propagated to drivers via the ->notify() callback.

Fix the problem by allowing drivers to receive unknown type
notifications via ->notify() as before.

Reported-and-tested-by: Mantas Mikulėnas <[email protected]>
Reported-and-tested-by: Sitsofe Wheeler <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/acpi/bus.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Index: linux-pm/drivers/acpi/bus.c
===================================================================
--- linux-pm.orig/drivers/acpi/bus.c
+++ linux-pm/drivers/acpi/bus.c
@@ -380,9 +380,8 @@ static void acpi_bus_notify(acpi_handle
break;

default:
- acpi_handle_warn(handle, "Unsupported event type 0x%x\n", type);
- ost_code = ACPI_OST_SC_UNRECOGNIZED_NOTIFY;
- goto err;
+ acpi_handle_debug(handle, "Unknown event type 0x%x\n", type);
+ break;
}

adev = acpi_bus_get_acpi_device(handle);