From: "Pali Rohár" <pali.rohar@gmail.com>
To: Alex Hung <alex.hung@canonical.com>,
Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Gabriele Mazzotta <gabriele.mzt@gmail.com>,
Darren Hart <dvhart@infradead.org>,
"platform-driver-x86@vger.kernel.org"
<platform-driver-x86@vger.kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3] Dell Airplane Mode Switch driver
Date: Mon, 29 Dec 2014 09:32:49 +0100 [thread overview]
Message-ID: <201412290932.49815@pali> (raw)
In-Reply-To: <CAJ=jqubG0ETuF_86M7=zbD4dDnaDcq-=4tGBL-PkoquNpWpwoA@mail.gmail.com>
[-- Attachment #1: Type: Text/Plain, Size: 6397 bytes --]
On Monday 29 December 2014 08:27:21 Alex Hung wrote:
> On Fri, Dec 26, 2014 at 5:55 AM, Gabriele Mazzotta
>
> <gabriele.mzt@gmail.com> wrote:
> > On Thursday 25 December 2014 21:11:05 Pali Rohár wrote:
> >> I will try to recap all information which we have...
> >>
> >> *) We should not send wireless key press to userspace when
> >> BIOS already handles wireless state (and enable/disable
> >> wifi):
> >> http://www.spinics.net/lists/platform-driver-x86/msg05922.
> >> html
> >>
> >> *) some tested dell machines does not implement GRBT method
> >> (or report constant value) which could return state of
> >> wireless (enabled/disabled) -- e.g. Inspiron 7447
> >>
> >> *) dell-wireless driver is doing nothing on devices which
> >> have wireless slider switch (except calling CRBT/ARBT
> >> methods)
> >>
> >> *) all tested machines emit key with keycode 240 (scancode
> >> is probably 136 = 0x88) to userspace via i8042 bus/AT
> >> keyboard when wireless button/slider is pressed/switched
> >>
> >> *) both drivers dell-wireless and dell-rbtn do not
> >> implement setting soft rfkill state (or change wifi state)
> >>
> >> So in my opinion: if we decide to use driver for acpi
> >> DELLABCE device we should use dell-rbnt for devices with
> >> hw slider switch and dell-wireless for devices with fn
> >> button. I think it does not make sense to use
> >> dell-wireless for devices with hw slider because it do
> >> nothing and dell-rbtn for devices with fn key button as
> >> GRBT does not working properly.
> >
> > Here the problem. We are determining which laptop has an
> > hardware slider and which doesn't calling CRBT. If the
> > returned value is 2 or 3, then the laptop has an hardware
> > slider. However, it cannot be assumed the opposite if the
> > returned value is 0 or 1.
>
> The spec defines as below:
> 1. When CRBT returns 0 or 1, a system has a toggle, ex.
> hotkey, radio button. 2. When CRBT returns 2 or 3, a system
> has a slider switch
>
> The only difference of 0 and 1 (or 2 and 3) is the presence of
> a wireless LED. However I believe this is defined according
> to Microsoft's hardware requirement.
>
> > See the acpidumps Alex uploaded. The Inspiron 3543 returns 0
> > when CRBT is called and so does the Inspiron 7447. However,
> > the former doesn't have a working ARBT method and, if I'm
> > not wrong, its BIOS doesn't handle radio devices. The BIOS
> > of the latter can handle radio and has a working ARBT
> > method to make it stop from doing that.
> >
> > Since we determine when the BIOS might not be able to
> > control radio devices through CRBT and we can't say it for
> > sure (in the example above, CRBT returned the same value),
> > we make sure that the BIOS doesn't handle radio devices by
> > calling ARBT. We can ensure this (e.g. Inspirong 7447), but
> > we can't ensure the opposite (e.g. Inspiron 3453).
> >
> > If there was a way to determine which laptop really needs
> > dell-wireless, calling ARBT wouldn't have been necessary,
> > but that's not the case. Users can always blacklist the
> > module if they know their laptop can work as expected
> > without it, but we have to ensure that everything always
> > works.
> >
> > This is what I understood by looking at the acpidumps, so I
> > could be wrong.
>
> I think ARBT acts as a switch for changing BIOS behaviours:
>
> When ARBT is not called or is called with ARBT(0), BIOS's
> default behaviour is to change wireless states by hardware
> pin. When ARBT(1) is called by driver or userspace
> application (ex. required in Windows 8), wireless state is
> controlled by OS. Similar functions are defined in ASUS ATK
> and HP WMI. Such implementation will provide maximum
> capability for different OS with / without dedicate drivers.
>
> The reality is never such wonderful; especially many systems
> are only tested with Win8 + driver (some may tested with Win7
> - and acpi_osi=!Windows 2012 / 2013 will probably work). In
> this case, we probably need to be more compatible with
> Windows 8 / 8.1.
>
> >> And second note: Do we need some driver for acpi DELLABCE
> >> device? Which problem is trying acpi DELLABCE device to
> >> solve? Is not everything working fine without driver for
> >> DELLABCE device?
> >
> > As I wrote above, DELLABCE is for those systems whose BIOS
> > doesn't handle radio devices and expects the OS do
> > everything when Fn keys are pressed.
> > (Well, it actually seems that something is done by the
> > keyboard controller, but this is not certain yet)
> >
> >> My dell-rbtn approach is trying to export rfkill interface
> >> from DELLABCE device and eliminate using i8042 hook
> >> function in smbios dell-laptop driver.
> >>
> >> Alex, can you check if scancode of wireless change
> >> generated by BIOS is on all machines same: 136 (0x88)? And
> >> is send by keyboard controller (not acpi/wmi)?
> >
> > I can say that on my XPS13 the scancode is 0x88 and it is
> > sent by the keyboard controller.
> >
> > Gabriele
>
> Just before I check the scancode, I looked up the scancode
> table
> (http://download.microsoft.com/download/1/6/1/161ba512-40e2-4
> cc9-843a-923143f3456c/translate.pdf) and found 0x88 is already
> used - it is the "break" ("release" in Linux term) code for
> "7" (the one above Y/U, not number pad). It can be verified
> by "showkey -s": 0x08 for press and 0x88 for release. It is
> not the best idea to map this scancode to anything else.
>
> I also sent emails for this scancode last week but it is a
> holiday season but I don't expect to receive any feedback
> this year...
Just to note, that there is only press key event with scancode
136 (0x88). Release event is not sent to AT keyboard which cause
problems (if you map this scancode to some well known keycode).
Alex, but I wrote you about this problem (in private email which
you forwarded) together with other bios/fw problems for latitude
machines...
Anyway I sent email to Matthew Garrett before Christmas and linux
kernel could generate proper release event by fixing commit
61579ba83934d397a4fa2bb7372de9ae112587d5 (adding also 9 and 10 to
chassis_type). I believe Matthew Garrett will kernel provide
workaround until Dell fix their BIOSes...
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2014-12-29 8:32 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-23 15:09 [PATCH 0/3] Dell Airplane Mode Switch driver Pali Rohár
2014-11-23 15:09 ` [PATCH 1/3] platform: x86: dell-rbtn: " Pali Rohár
2014-11-24 20:09 ` Matthew Garrett
2014-11-24 20:55 ` Pali Rohár
2014-11-24 21:50 ` Matthew Garrett
2014-11-24 22:01 ` Pali Rohár
2014-11-28 11:33 ` Mika Westerberg
2014-11-28 11:45 ` Pali Rohár
2014-11-28 11:54 ` Mika Westerberg
2014-11-25 21:58 ` Darren Hart
2014-11-23 15:09 ` [PATCH 2/3] platform: x86: dell-rbtn: Export notifier for other kernel modules Pali Rohár
2014-11-25 22:39 ` Darren Hart
2015-04-29 9:55 ` Pali Rohár
2014-11-23 15:09 ` [PATCH 3/3] platform: x86: dell-laptop: Use dell-rbtn instead i8042 filter when possible Pali Rohár
2014-11-25 23:05 ` [PATCH 0/3] Dell Airplane Mode Switch driver Darren Hart
2014-12-02 8:42 ` Pali Rohár
2014-12-04 8:16 ` Alex Hung
2014-12-03 12:56 ` Darren Hart
2014-12-04 9:55 ` Pali Rohár
2014-12-03 13:00 ` Darren Hart
2014-12-05 20:38 ` Pali Rohár
2014-12-05 20:53 ` Gabriele Mazzotta
2014-12-05 21:03 ` Pali Rohár
2014-12-05 21:12 ` Gabriele Mazzotta
2014-12-05 21:23 ` Pali Rohár
2014-12-05 21:49 ` Gabriele Mazzotta
2014-12-22 7:27 ` Alex Hung
2014-12-22 9:21 ` Pali Rohár
2014-12-22 12:35 ` Gabriele Mazzotta
2014-12-22 19:16 ` Gabriele Mazzotta
2014-12-24 9:13 ` Alex Hung
2014-12-24 11:40 ` Gabriele Mazzotta
2014-12-25 3:13 ` Alex Hung
2014-12-25 20:11 ` Pali Rohár
2014-12-25 21:55 ` Gabriele Mazzotta
2014-12-29 7:27 ` Alex Hung
2014-12-29 8:32 ` Pali Rohár [this message]
2015-01-05 9:55 ` Alex Hung
2015-04-24 7:39 ` Alex Hung
2015-04-29 9:51 ` [PATCH v2 " Pali Rohár
2015-04-29 9:51 ` [PATCH v2 1/3] platform: x86: dell-rbtn: " Pali Rohár
2015-04-29 10:30 ` Gabriele Mazzotta
2015-04-29 13:08 ` Pali Rohár
2015-04-29 13:57 ` Gabriele Mazzotta
2015-04-29 16:28 ` Pali Rohár
2015-04-29 17:54 ` Gabriele Mazzotta
2015-04-29 18:00 ` Pali Rohár
2015-04-29 18:11 ` Gabriele Mazzotta
2015-04-29 18:16 ` Pali Rohár
2015-04-29 18:41 ` Gabriele Mazzotta
2015-04-29 18:59 ` Pali Rohár
2015-04-30 6:06 ` Alex Hung
2015-04-30 7:44 ` Pali Rohár
2015-05-02 13:51 ` Gabriele Mazzotta
2015-05-02 15:13 ` Pali Rohár
2015-05-05 20:31 ` Darren Hart
2015-05-05 21:23 ` Gabriele Mazzotta
2015-05-06 5:55 ` Darren Hart
2015-05-06 7:49 ` Pali Rohár
2015-05-06 9:34 ` Alex Hung
2015-04-29 9:51 ` [PATCH v2 2/3] platform: x86: dell-rbtn: Export notifier for other kernel modules Pali Rohár
2015-04-29 9:51 ` [PATCH v2 3/3] platform: x86: dell-laptop: Use dell-rbtn instead i8042 filter when possible Pali Rohár
2015-05-03 10:38 ` [PATCH v2 0/3] Dell Airplane Mode Switch driver Pali Rohár
2015-05-05 20:37 ` Darren Hart
2015-05-05 21:24 ` Gabriele Mazzotta
2015-05-06 7:58 ` Pali Rohár
2015-05-06 9:11 ` Alex Hung
2015-05-06 11:31 ` Pali Rohár
2015-05-06 21:57 ` Darren Hart
2015-05-07 2:24 ` Alex Hung
2015-05-13 11:48 ` Pali Rohár
2015-05-13 18:38 ` Darren Hart
2015-05-14 10:54 ` [PATCH v3 " Pali Rohár
2015-05-14 10:54 ` [PATCH v3 1/3] dell-rbtn: " Pali Rohár
2015-05-14 10:54 ` [PATCH v3 2/3] dell-rbtn: Export notifier for other kernel modules Pali Rohár
2015-05-22 22:45 ` Dmitry Torokhov
2015-05-23 1:05 ` Pali Rohár
2015-05-24 5:07 ` Valdis.Kletnieks
2015-05-24 11:42 ` Pali Rohár
2015-05-14 10:54 ` [PATCH v3 3/3] dell-laptop: Use dell-rbtn instead i8042 filter when possible Pali Rohár
2015-05-18 18:07 ` [PATCH v3 0/3] Dell Airplane Mode Switch driver Darren Hart
2015-05-27 21:28 ` [PATCH v4 " Pali Rohár
2015-05-27 21:28 ` [PATCH v4 1/3] dell-rbtn: " Pali Rohár
2015-05-27 21:28 ` [PATCH v4 2/3] dell-rbtn: Export notifier for other kernel modules Pali Rohár
2015-05-27 21:28 ` [PATCH v4 3/3] dell-laptop: Use dell-rbtn instead i8042 filter when possible Pali Rohár
2015-05-28 2:52 ` Darren Hart
2015-06-03 3:55 ` Darren Hart
2015-06-03 8:15 ` Pali Rohár
2015-06-04 5:16 ` Darren Hart
2015-06-06 8:24 ` Pali Rohár
2015-06-06 8:23 ` [PATCH v5 0/3] Dell Airplane Mode Switch driver Pali Rohár
2015-06-06 8:23 ` [PATCH v5 1/3] dell-rbtn: " Pali Rohár
2015-06-06 8:23 ` [PATCH v5 2/3] dell-rbtn: Export notifier for other kernel modules Pali Rohár
2015-06-06 8:23 ` [PATCH v5 3/3] dell-laptop: Use dell-rbtn instead i8042 filter when possible Pali Rohár
2015-06-08 4:12 ` [PATCH v5 0/3] Dell Airplane Mode Switch driver Darren Hart
2015-06-08 7:30 ` Pali Rohár
2015-06-11 4:55 ` Darren Hart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201412290932.49815@pali \
--to=pali.rohar@gmail.com \
--cc=alex.hung@canonical.com \
--cc=dvhart@infradead.org \
--cc=gabriele.mzt@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).