* [PATCH] thinkpad-acpi: fix detection of old ThinkPads
@ 2009-11-14 2:36 Henrique de Moraes Holschuh
2009-11-16 16:42 ` Bjorn Helgaas
0 siblings, 1 reply; 4+ messages in thread
From: Henrique de Moraes Holschuh @ 2009-11-14 2:36 UTC (permalink / raw)
To: Len Brown
Cc: linux-acpi, ibm-acpi-devel, Henrique de Moraes Holschuh,
Andrew Morton
There is a problem in the quirk tables used by tpacpi_is_fw_known()
and tpacpi_check_outdated_fw(), which causes outdated BIOSes that are
lacking the EC firmware ID DMI field to never match.
This breaks module loading on, e.g. a T23 with outdated BIOS, and the
module will refuse to load unless the "force_load=1" parameter is
given.
Fix the quirk tables so that they can also match the outdated BIOSes,
which in turn will both fix the module loading, and also warn the user
that he is using outdated firmware and should upgrade.
This fixes a serious regression, introduced by commit
e675abafcc0df38125e6e94a9ba91c92fe774f52,
"thinkpad-acpi: be more strict when detecting a ThinkPad".
Tracked by bugzilla #14597.
Reported-by: Paul Kimoto <kimoto@lightlink.com>
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Tested-by: Paul Kimoto <kimoto@lightlink.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
drivers/platform/x86/thinkpad_acpi.c | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
Len, this patch needs to go to mainline ASAP, it should be merged before
2.6.32 ships, in order to avoid nasty surprises for a reasonable number
of ThinkPad users...
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index d93108d..8973af1 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -1680,36 +1680,48 @@ static void tpacpi_remove_driver_attributes(struct device_driver *drv)
| (__bv1) << 8 | (__bv2) }
#define TPV_Q_X(__v, __bid1, __bid2, __bv1, __bv2, \
- __eid1, __eid2, __ev1, __ev2) \
+ __eid, __ev1, __ev2) \
{ .vendor = (__v), \
.bios = TPID(__bid1, __bid2), \
- .ec = TPID(__eid1, __eid2), \
+ .ec = __eid, \
.quirks = (__ev1) << 24 | (__ev2) << 16 \
| (__bv1) << 8 | (__bv2) }
#define TPV_QI0(__id1, __id2, __bv1, __bv2) \
TPV_Q(PCI_VENDOR_ID_IBM, __id1, __id2, __bv1, __bv2)
+/* Outdated IBM BIOSes often lack the EC id string */
#define TPV_QI1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, \
- __bv1, __bv2, __id1, __id2, __ev1, __ev2)
+ __bv1, __bv2, TPID(__id1, __id2), \
+ __ev1, __ev2), \
+ TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, \
+ __bv1, __bv2, TPACPI_MATCH_UNKNOWN, \
+ __ev1, __ev2)
+/* Outdated IBM BIOSes often lack the EC id string */
#define TPV_QI2(__bid1, __bid2, __bv1, __bv2, \
__eid1, __eid2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, \
- __bv1, __bv2, __eid1, __eid2, __ev1, __ev2)
+ __bv1, __bv2, TPID(__eid1, __eid2), \
+ __ev1, __ev2), \
+ TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, \
+ __bv1, __bv2, TPACPI_MATCH_UNKNOWN, \
+ __ev1, __ev2)
#define TPV_QL0(__id1, __id2, __bv1, __bv2) \
TPV_Q(PCI_VENDOR_ID_LENOVO, __id1, __id2, __bv1, __bv2)
#define TPV_QL1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_LENOVO, __id1, __id2, \
- __bv1, __bv2, __id1, __id2, __ev1, __ev2)
+ __bv1, __bv2, TPID(__id1, __id2), \
+ __ev1, __ev2)
#define TPV_QL2(__bid1, __bid2, __bv1, __bv2, \
__eid1, __eid2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_LENOVO, __bid1, __bid2, \
- __bv1, __bv2, __eid1, __eid2, __ev1, __ev2)
+ __bv1, __bv2, TPID(__eid1, __eid2), \
+ __ev1, __ev2)
static const struct tpacpi_quirk tpacpi_bios_version_qtable[] __initconst = {
/* Numeric models ------------------ */
--
1.6.5.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] thinkpad-acpi: fix detection of old ThinkPads
2009-11-14 2:36 [PATCH] thinkpad-acpi: fix detection of old ThinkPads Henrique de Moraes Holschuh
@ 2009-11-16 16:42 ` Bjorn Helgaas
2009-11-16 19:20 ` Henrique de Moraes Holschuh
0 siblings, 1 reply; 4+ messages in thread
From: Bjorn Helgaas @ 2009-11-16 16:42 UTC (permalink / raw)
To: Henrique de Moraes Holschuh
Cc: Len Brown, linux-acpi, ibm-acpi-devel, Andrew Morton
On Friday 13 November 2009 07:36:51 pm Henrique de Moraes Holschuh wrote:
>
> Tracked by bugzilla #14597.
A complete URL here would be more convenient.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] thinkpad-acpi: fix detection of old ThinkPads
2009-11-16 16:42 ` Bjorn Helgaas
@ 2009-11-16 19:20 ` Henrique de Moraes Holschuh
2009-11-16 20:13 ` Bjorn Helgaas
0 siblings, 1 reply; 4+ messages in thread
From: Henrique de Moraes Holschuh @ 2009-11-16 19:20 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: Len Brown, linux-acpi, ibm-acpi-devel, Andrew Morton
On Mon, 16 Nov 2009 10:42 -0600, "Bjorn Helgaas" <bjorn.helgaas@hp.com> wrote:
> On Friday 13 November 2009 07:36:51 pm Henrique de Moraes Holschuh wrote:
> >
> > Tracked by bugzilla #14597.
>
> A complete URL here would be more convenient.
I will keep that in mind for the future. Please don't delay this fix
on account of this detail.
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] thinkpad-acpi: fix detection of old ThinkPads
2009-11-16 19:20 ` Henrique de Moraes Holschuh
@ 2009-11-16 20:13 ` Bjorn Helgaas
0 siblings, 0 replies; 4+ messages in thread
From: Bjorn Helgaas @ 2009-11-16 20:13 UTC (permalink / raw)
To: Henrique de Moraes Holschuh
Cc: Len Brown, linux-acpi, ibm-acpi-devel, Andrew Morton
On Monday 16 November 2009 12:20:58 pm Henrique de Moraes Holschuh wrote:
> On Mon, 16 Nov 2009 10:42 -0600, "Bjorn Helgaas" <bjorn.helgaas@hp.com> wrote:
> > On Friday 13 November 2009 07:36:51 pm Henrique de Moraes Holschuh wrote:
> > >
> > > Tracked by bugzilla #14597.
> >
> > A complete URL here would be more convenient.
>
> I will keep that in mind for the future. Please don't delay this fix
> on account of this detail.
Here's the URL in case there's any chance to edit the commitlog
while applying this patch:
http://bugzilla.kernel.org/show_bug.cgi?id=14597
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-11-16 20:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-14 2:36 [PATCH] thinkpad-acpi: fix detection of old ThinkPads Henrique de Moraes Holschuh
2009-11-16 16:42 ` Bjorn Helgaas
2009-11-16 19:20 ` Henrique de Moraes Holschuh
2009-11-16 20:13 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox