diff mbox

[Quantal,SRU] thinkpad-acpi: recognize latest V-Series using, DMI_BIOS_VENDOR

Message ID 51AF72B4.8070105@canonical.com
State New
Headers show

Commit Message

Shuduo Sang June 5, 2013, 5:17 p.m. UTC
This patch was submitted to upstream in Aug 2012 by Monoj Iyer and
merged into v3.6-rc3. Pls backport to Quantal 3.5 kernel. This patch
fixes the issue thinkpad-acpi module not be loaded on some Lenovo
laptops for example Zhaoyang series.

Thanks,
Shuduo

From a4f46bb9fa84642e356898ee44b670989622f8bb Mon Sep 17 00:00:00 2001
From: Manoj Iyer <manoj.iyer@canonical.com>
Date: Mon, 6 Aug 2012 18:15:37 -0500
Subject: [PATCH] thinkpad-acpi: recognize latest V-Series using
 DMI_BIOS_VENDOR

In the latest V-series bios DMI_PRODUCT_VERSION does not contain
the string Lenovo or Thinkpad, but is set to the model number, this
causes the thinkpad_acpi module to fail to load. Recognize laptop
as Lenovo using DMI_BIOS_VENDOR instead, which is set to Lenovo.

Test on V490u
 	s = dmi_get_system_info(DMI_PRODUCT_NAME);

Comments

Luis Henriques June 6, 2013, 9:50 a.m. UTC | #1
Hi Shuduo,

Shuduo Sang <shuduo.sang@canonical.com> writes:

> This patch was submitted to upstream in Aug 2012 by Monoj Iyer and
> merged into v3.6-rc3. Pls backport to Quantal 3.5 kernel. This patch
> fixes the issue thinkpad-acpi module not be loaded on some Lenovo
> laptops for example Zhaoyang series.

Thank you for resubmitting this patch.

Since you also submitted it to the stable mailing list, I believe
there's no need to add it to the Quantal kernel as an SRU.  This patch
will hit Quantal when stable 3.5 is released with this patch (I'm
queuing it for the next release).

This sort of patches (that fulfill the upstream stable requirements)
are probably easier for us to handle through stable updates.  So,
personally, I would rather send a request to stable mailing list for
this sort of patches.  The benefits are obvious: more people will
look at it and more people will benefit from it (other stable kernels
may decide to pick this patch -- Greg has already queued your patch
for the 3.0 and 3.4 kernels).

Anyway, thank you for your patch -- although I'm NAKing it, it will
hit Quantal soon from stable updates.

Cheers,
Shuduo Sang June 6, 2013, 1:13 p.m. UTC | #2
On Thu, Jun 6, 2013 at 5:50 PM, Luis Henriques <luis.henriques@canonical.com>
wrote:
>
> Hi Shuduo,
>
> Shuduo Sang <shuduo.sang@canonical.com> writes:
>
> > This patch was submitted to upstream in Aug 2012 by Monoj Iyer and
> > merged into v3.6-rc3. Pls backport to Quantal 3.5 kernel. This patch
> > fixes the issue thinkpad-acpi module not be loaded on some Lenovo
> > laptops for example Zhaoyang series.
>
> Thank you for resubmitting this patch.
>
> Since you also submitted it to the stable mailing list, I believe
> there's no need to add it to the Quantal kernel as an SRU.  This patch
> will hit Quantal when stable 3.5 is released with this patch (I'm
> queuing it for the next release).
>
> This sort of patches (that fulfill the upstream stable requirements)
> are probably easier for us to handle through stable updates.  So,
> personally, I would rather send a request to stable mailing list for
> this sort of patches.  The benefits are obvious: more people will
> look at it and more people will benefit from it (other stable kernels
> may decide to pick this patch -- Greg has already queued your patch
> for the 3.0 and 3.4 kernels).
>
> Anyway, thank you for your patch -- although I'm NAKing it, it will
> hit Quantal soon from stable updates.

That's fine.
Thank you.

>
> Cheers,
> --
> Luis
>
> >
> > Thanks,
> > Shuduo
> >
> > From a4f46bb9fa84642e356898ee44b670989622f8bb Mon Sep 17 00:00:00 2001
> > From: Manoj Iyer <manoj.iyer@canonical.com>
> > Date: Mon, 6 Aug 2012 18:15:37 -0500
> > Subject: [PATCH] thinkpad-acpi: recognize latest V-Series using
> >  DMI_BIOS_VENDOR
> >
> > In the latest V-series bios DMI_PRODUCT_VERSION does not contain
> > the string Lenovo or Thinkpad, but is set to the model number, this
> > causes the thinkpad_acpi module to fail to load. Recognize laptop
> > as Lenovo using DMI_BIOS_VENDOR instead, which is set to Lenovo.
> >
> > Test on V490u
> > =============
> > == After the patch ==
> >
> > [ 1350.295757] thinkpad_acpi: ThinkPad ACPI Extras v0.24
> > [ 1350.295760] thinkpad_acpi: http://ibm-acpi.sf.net/
> > [ 1350.295761] thinkpad_acpi: ThinkPad BIOS H7ET21WW (1.00 ), EC unknown
> > [ 1350.295763] thinkpad_acpi: Lenovo LENOVO, model LV5DXXX
> > [ 1350.296086] thinkpad_acpi: detected a 8-level brightness capable
ThinkPad
> > [ 1350.296694] thinkpad_acpi: radio switch found; radios are enabled
> > [ 1350.296703] thinkpad_acpi: possible tablet mode switch found;
> > ThinkPad in laptop mode
> > [ 1350.306466] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio
> > is unblocked
> > [ 1350.307082] Registered led device: tpacpi::thinklight
> > [ 1350.307215] Registered led device: tpacpi::power
> > [ 1350.307255] Registered led device: tpacpi::standby
> > [ 1350.307294] Registered led device: tpacpi::thinkvantage
> > [ 1350.308160] thinkpad_acpi: Standard ACPI backlight interface
> > available, not loading native one
> > [ 1350.308333] thinkpad_acpi: Console audio control enabled, mode:
> > monitor (read only)
> > [ 1350.312287] input: ThinkPad Extra Buttons as
> > /devices/platform/thinkpad_acpi/input/input14
> >
> > == Before the patch ==
> > sudo modprobe thinkpad_acpi
> > FATAL: Error inserting thinkpad_acpi
> >
(/lib/modules/3.2.0-27-generic/kernel/drivers/platform/x86/thinkpad_acpi.ko):
> > No such device
> >
> > Test on B485
> > =============
> > This patch was also test in a B485 where the thinkpad_acpi module does
not
> > have any issues loading. But, I tested it to make sure this patch does
not
> > break on already functioning models of Lenovo products.
> >
> > [13486.746359] thinkpad_acpi: ThinkPad ACPI Extras v0.24
> > [13486.746364] thinkpad_acpi: http://ibm-acpi.sf.net/
> > [13486.746368] thinkpad_acpi: ThinkPad BIOS HJET15WW(1.01), EC unknown
> > [13486.746373] thinkpad_acpi: Lenovo Lenovo LB485, model 814TR01
> > [13486.747300] thinkpad_acpi: detected a 8-level brightness capable
ThinkPad
> > [13486.752435] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio
> > is unblocked
> > [13486.752883] Registered led device: tpacpi::thinklight
> > [13486.752915] thinkpad_acpi: Standard ACPI backlight interface
> > available, not loading native one
> > [13486.753216] thinkpad_acpi: Console audio control enabled, mode:
> > monitor (read only)
> > [13486.757147] input: ThinkPad Extra Buttons as
> > /devices/platform/thinkpad_acpi/input/input15
> >
> > Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
> > Signed-off-by: Matthew Garrett <mjg@redhat.com>
> > Signed-off-by: Shuduo Sang <shuduo.sang@canonical.com>
> > ---
> >  drivers/platform/x86/thinkpad_acpi.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/drivers/platform/x86/thinkpad_acpi.c
> > b/drivers/platform/x86/thinkpad_acpi.c
> > index f28f36c..80e3779 100644
> > --- a/drivers/platform/x86/thinkpad_acpi.c
> > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > @@ -8664,6 +8664,13 @@ static int __must_check __init
> > get_thinkpad_model_data(
> >               tp->model_str = kstrdup(s, GFP_KERNEL);
> >               if (!tp->model_str)
> >                       return -ENOMEM;
> > +     } else {
> > +             s = dmi_get_system_info(DMI_BIOS_VENDOR);
> > +             if (s && !(strnicmp(s, "Lenovo", 6))) {
> > +                     tp->model_str = kstrdup(s, GFP_KERNEL);
> > +                     if (!tp->model_str)
> > +                             return -ENOMEM;
> > +             }
> >       }
> >
> >       s = dmi_get_system_info(DMI_PRODUCT_NAME);
> > --
> > 1.8.1.2
>
diff mbox

Patch

=============
== After the patch ==

[ 1350.295757] thinkpad_acpi: ThinkPad ACPI Extras v0.24
[ 1350.295760] thinkpad_acpi: http://ibm-acpi.sf.net/
[ 1350.295761] thinkpad_acpi: ThinkPad BIOS H7ET21WW (1.00 ), EC unknown
[ 1350.295763] thinkpad_acpi: Lenovo LENOVO, model LV5DXXX
[ 1350.296086] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
[ 1350.296694] thinkpad_acpi: radio switch found; radios are enabled
[ 1350.296703] thinkpad_acpi: possible tablet mode switch found;
ThinkPad in laptop mode
[ 1350.306466] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio
is unblocked
[ 1350.307082] Registered led device: tpacpi::thinklight
[ 1350.307215] Registered led device: tpacpi::power
[ 1350.307255] Registered led device: tpacpi::standby
[ 1350.307294] Registered led device: tpacpi::thinkvantage
[ 1350.308160] thinkpad_acpi: Standard ACPI backlight interface
available, not loading native one
[ 1350.308333] thinkpad_acpi: Console audio control enabled, mode:
monitor (read only)
[ 1350.312287] input: ThinkPad Extra Buttons as
/devices/platform/thinkpad_acpi/input/input14

== Before the patch ==
sudo modprobe thinkpad_acpi
FATAL: Error inserting thinkpad_acpi
(/lib/modules/3.2.0-27-generic/kernel/drivers/platform/x86/thinkpad_acpi.ko):
No such device

Test on B485
=============
This patch was also test in a B485 where the thinkpad_acpi module does not
have any issues loading. But, I tested it to make sure this patch does not
break on already functioning models of Lenovo products.

[13486.746359] thinkpad_acpi: ThinkPad ACPI Extras v0.24
[13486.746364] thinkpad_acpi: http://ibm-acpi.sf.net/
[13486.746368] thinkpad_acpi: ThinkPad BIOS HJET15WW(1.01), EC unknown
[13486.746373] thinkpad_acpi: Lenovo Lenovo LB485, model 814TR01
[13486.747300] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
[13486.752435] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio
is unblocked
[13486.752883] Registered led device: tpacpi::thinklight
[13486.752915] thinkpad_acpi: Standard ACPI backlight interface
available, not loading native one
[13486.753216] thinkpad_acpi: Console audio control enabled, mode:
monitor (read only)
[13486.757147] input: ThinkPad Extra Buttons as
/devices/platform/thinkpad_acpi/input/input15

Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Shuduo Sang <shuduo.sang@canonical.com>
---
 drivers/platform/x86/thinkpad_acpi.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/platform/x86/thinkpad_acpi.c
b/drivers/platform/x86/thinkpad_acpi.c
index f28f36c..80e3779 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -8664,6 +8664,13 @@  static int __must_check __init
get_thinkpad_model_data(
 		tp->model_str = kstrdup(s, GFP_KERNEL);
 		if (!tp->model_str)
 			return -ENOMEM;
+	} else {
+		s = dmi_get_system_info(DMI_BIOS_VENDOR);
+		if (s && !(strnicmp(s, "Lenovo", 6))) {
+			tp->model_str = kstrdup(s, GFP_KERNEL);
+			if (!tp->model_str)
+				return -ENOMEM;
+		}
 	}