Re: [PROBLEM][PATCH] thinkpad_acpi: propagate acpi event for hardware radio switch (Thinkpad X220)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 09 Jun 2014, Tobias Stegmann wrote:
> After upgrading the kernel toggling the hardware radio switch doesn't
> generate an acpi event anylonger.

Ideed.  But it should be generating an input event, and also whatever event
the rfkill core generates, if any (it used to generate an uevent, which udev
receives.  Nowadays, I don't know).

Can you test that?  You should receive a SW_EV SW_RFKILL_ALL event on the
thinkpad-acpi input event device, where all hotkeys go.

You will also receive a poll() event on the thinkpad-specific sysfs node for
the radio switch, but that's not a nice interface for shell script use.

You might also receive some sort of uevent over udev, if the rfkill core did
not stop issuing those, and I belive you can use "udevadm" to verify it.
Udev can launch scripts.

> [2.] Full description of the problem/report:
> I use a customized acpi event script to disable bluetooth on my
> Thinkpad x220, if I toggle the hardware wifi switch (not Fn+F5 but a
> physical switch). This used to work fine with v3.11, however it
> stopped working with 3.12+. More precisely the switch doesnt generate
> an acpi event anymore.

It is also deprecated since 2007.

> Looking at the commits it seems this behaviour is somehow intentional,
> even if it breaks existing scripts. Except I am missing something I
> cant think of any reason to not generate an acpi event for the radio
> switch.

Well, the logic is like this: there is a generic event for this type of
information, and it is an input event.  The thinkpad-acpi-specific event has
been, therefore, deprecated way back in 2007.

> From 9816355baeacbec590b2ef2d82061a4a311fce27 Mon Sep 17 00:00:00 2001
> From: Tobias Stegmann <stegmannt@xxxxxxxxx>
> Date: Sun, 8 Jun 2014 17:05:19 +0200
> Subject: [PATCH] propagate hw wireless switch acpi event
> 
> Signed-off-by: Tobias Stegmann <stegmannt@xxxxxxxxx>
> ---
>  drivers/platform/x86/thinkpad_acpi.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 15e61c1..2fd7133 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -3808,7 +3808,6 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
>  			if (tp_features.hotkey_wlsw &&
>  					hkey == TP_HKEY_EV_RFKILL_CHANGED) {
>  				tpacpi_send_radiosw_update();
> -				send_acpi_ev = 0;
>  				known_ev = true;
>  				break;
>  			}

Well, the patch is correct and it will cause the driver to send the event
over the new-style ACPI netlink event interface.  However, there isn't a
commit log.  This is unacceptable.  Just write a synthesis of your cover
email as the commit log, you explained the reasons for the patch rather
well.

Still, the global radio-kill switch event *really* doesn't belong in the
ACPI event stream, and it is duplicated with the input event.  I'd prefer
not to apply such a patch.

Too bad people hardcoded crap in acpid instead of providing a proper,
configurable interface to its input-device handler, or you could just use
that.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux