Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753910AbbD2SQN (ORCPT ); Wed, 29 Apr 2015 14:16:13 -0400 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 Date: Wed, 29 Apr 2015 20:16:06 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Gabriele Mazzotta Cc: Matthew Garrett , Darren Hart , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Alex Hung Subject: Re: [PATCH v2 1/3] platform: x86: dell-rbtn: Dell Airplane Mode Switch driver 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-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1486772.Mzcn6U37zk@xps13> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3572 Lines: 71 On Wednesday 29 April 2015 20:11:38 Gabriele Mazzotta wrote: > On Wednesday 29 April 2015 20:00:18 Pali Rohár wrote: > > On Wednesday 29 April 2015 19:54:43 Gabriele Mazzotta wrote: > > > On Wednesday 29 April 2015 18:28:40 Pali Rohár wrote: > > > > On Wednesday 29 April 2015 15:57:58 Gabriele Mazzotta wrote: > > > > > On Wednesday 29 April 2015 15:08:40 Pali Rohár wrote: > > > > > > On Wednesday 29 April 2015 12:30:32 Gabriele Mazzotta wrote: > > > > > > > On Wednesday 29 April 2015 11:51:04 Pali Rohár wrote: > > > > > > > > This is an ACPI driver for Dell laptops which receive HW switch events. > > > > > > > > It exports rfkill device dell-rbtn which provide correct hard rfkill state. > > > > > > > > > > > > > > > > Alex Hung added code for supporting Dell laptops which have toggle button > > > > > > > > instead HW slider switch. On these laptops toggle button event is reported > > > > > > > > by new input device (instead rfkill) as they do not have hw radio switch. > > > > > > > > > > > > > > > > It looks like those are two different functions (rfkill, input device), but > > > > > > > > Dell BIOS exports them via same ACPI device and uses same ACPI functions. > > > > > > > > So code is in one kernel driver. > > > > > > > > > > > > > > I made a patch some time ago that I've just adapted. It allows 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 the soft state > > > > > > > of the devices. This comes in handy when the function key controls > > > > > > > multiple radio devices. > > > > > > > > > > > > > > > > > > > Now I'm thinking... is't this bug in wifi kernel driver (which exports > > > > > > phy rfkill)? Or problem somewhere else (userspace or kernel)? > > > > > > > > > > What is the presumed bug you are referring to? The fact that the soft state > > > > > doesn't change? > > > > > > > > Can you remind me whats the problem on your laptop? > > > > > > 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. > > > > > > 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. > > > > Ok, and what happens when you load this v2 version? What stopped working > > on your laptop? > > > > Alex, can you help? Code for toggle laptop version is originally yours. > > 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. > > When you call ARBT with 1 as argument, the variable is set to 1 and the > _Qxx method does nothing but sending a notification (0x80) to RBTN > whenever the function key is pressed. > > 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. > > 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? -- Pali Rohár pali.rohar@gmail.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/