From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pali =?utf-8?B?Um9ow6Fy?= Subject: Re: [PATCH v2 1/3] platform: x86: dell-rbtn: Dell Airplane Mode Switch driver Date: Wed, 29 Apr 2015 20:16:06 +0200 Message-ID: <20150429181606.GR24346@pali> References: <1416755361-17357-1-git-send-email-pali.rohar@gmail.com> <1960842.uafsuQ5JOF@xps13> <20150429180018.GQ24346@pali> <1486772.Mzcn6U37zk@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Received: from mail-wi0-f174.google.com ([209.85.212.174]:38225 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751702AbbD2SQJ (ORCPT ); Wed, 29 Apr 2015 14:16:09 -0400 Content-Disposition: inline In-Reply-To: <1486772.Mzcn6U37zk@xps13> Sender: platform-driver-x86-owner@vger.kernel.org List-ID: To: Gabriele Mazzotta Cc: Matthew Garrett , Darren Hart , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Alex Hung On Wednesday 29 April 2015 20:11:38 Gabriele Mazzotta wrote: > On Wednesday 29 April 2015 20:00:18 Pali Roh=C3=A1r wrote: > > On Wednesday 29 April 2015 19:54:43 Gabriele Mazzotta wrote: > > > On Wednesday 29 April 2015 18:28:40 Pali Roh=C3=A1r wrote: > > > > On Wednesday 29 April 2015 15:57:58 Gabriele Mazzotta wrote: > > > > > On Wednesday 29 April 2015 15:08:40 Pali Roh=C3=A1r wrote: > > > > > > On Wednesday 29 April 2015 12:30:32 Gabriele Mazzotta wrote= : > > > > > > > On Wednesday 29 April 2015 11:51:04 Pali Roh=C3=A1r wrote= : > > > > > > > > This is an ACPI driver for Dell laptops which receive H= W switch events. > > > > > > > > It exports rfkill device dell-rbtn which provide correc= t hard rfkill state. > > > > > > > >=20 > > > > > > > > Alex Hung added code for supporting Dell laptops which = have toggle button > > > > > > > > instead HW slider switch. On these laptops toggle butto= n event is reported > > > > > > > > by new input device (instead rfkill) as they do not hav= e hw radio switch. > > > > > > > >=20 > > > > > > > > It looks like those are two different functions (rfkill= , input device), but > > > > > > > > Dell BIOS exports them via same ACPI device and uses sa= me ACPI functions. > > > > > > > > So code is in one kernel driver. > > > > > > >=20 > > > > > > > I made a patch some time ago that I've just adapted. It a= llows to > > > > > > > prefer RBTN_SLIDER over RBTN_TOGGLE. The main reason why = I'd like to > > > > > > > have the hardware switch is that the BIOS doesn't alter t= he soft state > > > > > > > of the devices. This comes in handy when the function key= controls > > > > > > > multiple radio devices. > > > > > > >=20 > > > > > >=20 > > > > > > Now I'm thinking... is't this bug in wifi kernel driver (wh= ich exports > > > > > > phy rfkill)? Or problem somewhere else (userspace or kernel= )? > > > > >=20 > > > > > What is the presumed bug you are referring to? The fact that = the soft state > > > > > doesn't change? > > > >=20 > > > > Can you remind me whats the problem on your laptop? > > >=20 > > > CRBT returns 0 (so RBTN_TOGGLE), but by default my laptop acts as= if > > > it returned 2 or 3, so we have to call ARBT. > > >=20 > > > As said before, there's no way to know when a platform whose CRBT > > > method returns 0 or 1 also has the hardware switch, so to be sure= that > > > all the platforms have working function keys, some of them (such = as > > > mine) have to give up on the hardware switch. > >=20 > > Ok, and what happens when you load this v2 version? What stopped wo= rking > > on your laptop? > >=20 > > Alex, can you help? Code for toggle laptop version is originally yo= urs. >=20 > When I press the Fn key, a _Qxx EC method is executed. The code path > of this method depends on a variable set by ARBT. >=20 > When you call ARBT with 1 as argument, the variable is set to 1 and t= he > _Qxx method does nothing but sending a notification (0x80) to RBTN > whenever the function key is pressed. >=20 > When you call ARBT with 0 as argument, the variable is set to 0 and > the _Qxx method both sends 0x80 to RBTN _and_ toggle the state of the > radio devices whenever the function key is pressed. >=20 > So in the end nothing _really_ breaks. So in linux kernel is missing code for toggling state of radio devices? And you can do that only by ACPI when ARBT is called with 0, right? --=20 Pali Roh=C3=A1r pali.rohar@gmail.com