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@xxxxxxxxx -- 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