| From b36a50f92d1c4300a88f606b4d2bbdc4f442a2d7 Mon Sep 17 00:00:00 2001 |
| From: Mathieu Chouquet-Stringer <mchouque@free.fr> |
| Date: Sat, 14 Mar 2009 16:35:26 +0100 |
| Subject: thinkpad-acpi: fix module autoloading for older models |
| |
| From: Mathieu Chouquet-Stringer <mchouque@free.fr> |
| |
| commit b36a50f92d1c4300a88f606b4d2bbdc4f442a2d7 upstream. |
| |
| Looking at the source, there seems to be a missing * to match my DMI |
| string. I mean for newer IBM and Lenovo's laptops you match either one |
| of the following: |
| MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*"); |
| MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*"); |
| |
| While for older Thinkpads, you do this (for instance): |
| IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]"); |
| |
| with IBM_BIOS_MODULE_ALIAS being MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW") |
| |
| Note there's no * terminating the string. As result, udev doesn't load |
| anything because modprobe cannot find anything matching this (my |
| machine actually): |
| |
| udevtest: run: '/sbin/modprobe dmi:bvnIBM:bvr1IET71WW(2.10):bd06/16/2006:svnIBM:pn236621U:pvrNotAv |
| |
| Signed-off-by: Mathieu Chouquet-Stringer <mchouque@free.fr> |
| Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/misc/thinkpad_acpi.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/misc/thinkpad_acpi.c |
| +++ b/drivers/misc/thinkpad_acpi.c |
| @@ -6927,7 +6927,7 @@ MODULE_ALIAS(TPACPI_DRVR_SHORTNAME); |
| * if it is not there yet. |
| */ |
| #define IBM_BIOS_MODULE_ALIAS(__type) \ |
| - MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW") |
| + MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") |
| |
| /* Non-ancient thinkpads */ |
| MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*"); |
| @@ -6936,9 +6936,9 @@ MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO: |
| /* Ancient thinkpad BIOSes have to be identified by |
| * BIOS type or model number, and there are far less |
| * BIOS types than model numbers... */ |
| -IBM_BIOS_MODULE_ALIAS("I[B,D,H,I,M,N,O,T,W,V,Y,Z]"); |
| -IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]"); |
| -IBM_BIOS_MODULE_ALIAS("K[U,X-Z]"); |
| +IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]"); |
| +IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]"); |
| +IBM_BIOS_MODULE_ALIAS("K[UX-Z]"); |
| |
| MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh"); |
| MODULE_DESCRIPTION(TPACPI_DESC); |