lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110621205004.GD2724@nautilus.holoscopio.com>
Date:	Tue, 21 Jun 2011 17:50:05 -0300
From:	Thadeu Lima de Souza Cascardo <cascardo@...oscopio.com>
To:	Carlos Alberto Lopez Perez <clopez@...lia.com>
Cc:	Daniel Oliveira Nascimento <don@...t.com.br>,
	Matthew Garrett <mjg@...hat.com>,
	platform-driver-x86@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] x86/platform: classmate-laptop: Add cmpc_keys
 support for new classmate laptops

On Tue, Jun 21, 2011 at 10:24:57PM +0200, Carlos Alberto Lopez Perez wrote:
> On 06/21/2011 09:50 PM, Thadeu Lima de Souza Cascardo wrote:
> > On Tue, Jun 21, 2011 at 09:40:01PM +0200, Carlos Alberto Lopez Perez wrote:
> >> The cmpc_keys ACPI driver from the classmate-laptop module fails to
> >> recognize the device on the 4th generation of classmate laptops (Atom N450)
> >> because the device ID is named "FNBT0000" (uppercase N) on this laptops.
> >>
> >> MODALIAS=acpi:FNBT0000:
> >>
> >> This patch makes the driver cmpc_keys recognize it:
> >>
> >> input: cmpc_keys as /devices/LNXSYSTM:00/device:00/FNBT0000:00/input/input18
> >>
> >> Signed-off-by: Carlos Alberto Lopez Perez <clopez@...lia.com>
> >> ---
> >>  drivers/platform/x86/classmate-laptop.c |    3 +++
> >>  1 files changed, 3 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
> >> index 94f93b6..03896cd 100644
> >> --- a/drivers/platform/x86/classmate-laptop.c
> >> +++ b/drivers/platform/x86/classmate-laptop.c
> >> @@ -40,6 +40,7 @@ struct cmpc_accel {
> >>  #define CMPC_TABLET_HID		"TBLT0000"
> >>  #define CMPC_IPML_HID	"IPML200"
> >>  #define CMPC_KEYS_HID		"FnBT0000"
> >> +#define CMPC_KEYS_4GEN_HID	"FNBT0000"
> >>  
> >>  /*
> >>   * Generic input device code.
> >> @@ -683,6 +684,7 @@ static int cmpc_keys_remove(struct acpi_device *acpi, int type)
> >>  
> >>  static const struct acpi_device_id cmpc_keys_device_ids[] = {
> >>  	{CMPC_KEYS_HID, 0},
> >> +	{CMPC_KEYS_4GEN_HID, 0},
> >>  	{"", 0}
> >>  };
> >>  
> >> @@ -754,6 +756,7 @@ static const struct acpi_device_id cmpc_device_ids[] = {
> >>  	{CMPC_TABLET_HID, 0},
> >>  	{CMPC_IPML_HID, 0},
> >>  	{CMPC_KEYS_HID, 0},
> >> +	{CMPC_KEYS_4GEN_HID, 0},
> >>  	{"", 0}
> >>  };
> >>  
> >> -- 
> >> 1.7.5.3
> >>
> > 
> > Not-Acked-By: Thadeu Lima de Souza Cascardo <cascardo@...oscopio.com>
> > 
> > Recent Linux versions have "upper-cased" the device names, because ACPI
> > spec says devices must have upper-case letters. This is probably related
> > to this change, not because the device name has changed in recent
> > versions of the device. So the correct fix would be to either revert
> > this change in Linux or use only a single uppercase name for the device.
> > 
> > Thanks anyway for this report. I have received one report in private a
> > while back, but was too lazy to discuss this on the list. Any pointers
> > on that? Easist way to go is to simply replace FnBT for FNBT.
> > 
> > Regards,
> > Cascardo.
> 
> The ACPI specification [1] says the following:
> 
> """
> A valid PNP ID must be of the form “AAA####” where A is an uppercase letter
> and # is a hex digit.
> A valid ACPI ID must be of the form “ACPI####” where # is a hex digit.
> """
> 
> It don't says that the ACPI ID must be uppercase.
> 
> I don't have an older generation of the classmate laptop to test if the
> ACPI ID is FnBT or FNBT, but I guess that if it was working until now, is
> because the older generations have FnBT instead of FNBT.
> 
> However I just found a previous discussion about this issue on LKML [2] and
> seems that the patch is included (commit: 72638f5).
> 
> So... this means that the cmpc_keys module was not working for any
> classmate laptop since ~2.6.29 ?
> 
> If that is the case then replacing FnBT with FNBT will be fine.
> 
> Thanks!
> 
> Best regards!
> 

Commit 77b23f712bc40a65160e7d02b045f1562bb43ff1 has changed this
behaviour between 2.6.36 and 2.6.37. Could you try using 2.6.36 and see
if the device appears as FnBT? Also, you could try using acpidump and
look at the decompiled DSDT so we can confirm whether it is FnBT or
FNBT. Attached is a patch that, when comparing device and driver names
for ACPI, will do it case-insensitivily.

So, we have three options here. Revert an ACPICA commit, apply a
different matching code for ACPI bus in Linux or tell all drivers they
must use an uppper-case name instead of the device name as it appears in
the ACPI tables.

Regards,
Cascardo.

> -------
> [1] http://www.acpi.info/DOWNLOADS/ACPIspec40a.pdf
> [2] https://lkml.org/lkml/2009/1/21/238
> 



View attachment "match_acpi_devices_case_insensitive.patch" of type "text/x-diff" (428 bytes)

Download attachment "signature.asc" of type "application/pgp-signature" (837 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ