Re: [PATCH v2] ACPI: DMI init_set_sci_en_on_resume for multipleLenovo ThinkPads

From: Jerone Young
Date: Fri Apr 23 2010 - 17:41:18 EST


You made a small mistake..point out below.

**mumble** .. still not a fan of quirk tables when a bios coming out to
resolve this issue is coming out..one out for T410 came out yesterday.

On Fri, 2010-04-23 at 10:20 -0600, Alex Chiang wrote:
> Multiple Lenovo ThinkPad models with Intel Core i5/i7 CPUs can
> successfully suspend/resume once, and then hang on the second s/r
> cycle.
>
> We got confirmation that this was due to a BIOS defect. The BIOS
> did not properly set SCI_EN coming out of S3. The BIOS guys
> hinted that The Other Leading OS ignores the fact that hardware
> owns the bit and sets it manually.
>
> In any case, an existing DMI table exists for machines where this
> defect is a known problem. Lenovo promise to fix their BIOS, but
> for folks who either won't or can't upgrade their BIOS, allow
> Linux to workaround the issue.
>
> Confirmed by numerous testers in the launchpad bug that using
> acpi_sleep=sci_force_enable fixes the issue. We add the machines
> to acpisleep_dmi_table[] to automatically enable this workaround.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=15407
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374
>
> Cc: stable@xxxxxxxxxx
> Signed-off-by: Alex Chiang <achiang@xxxxxxxxxxxxx>
> ---
> We want to get this patch upstream so that we can get it into
> -stable. Matthew Garrett's patch titled "Fall back to manually
> changing SCI_EN" is the plan for dealing with future platforms
> that will likely have this same BIOS bug.
>
> v1 -> v2:
> - remove separate X201s entry, as the X201 entry will match it too
> ---
> sleep.c | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
> ---
> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
> index f74834a..317794f 100644
> --- a/drivers/acpi/sleep.c
> +++ b/drivers/acpi/sleep.c
> @@ -450,6 +450,38 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
> },
> },
> {
> + .callback = init_set_sci_en_on_resume,
> + .ident = "Lenovo ThinkPad T410",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
> + },
> + },
> + {
> + .callback = init_set_sci_en_on_resume,
> + .ident = "Lenovo ThinkPad T510",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
> + },
> + },
> + {
> + .callback = init_set_sci_en_on_resume,
> + .ident = "Lenovo ThinkPad W510",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
> + },
> + },
> + {
> + .callback = init_set_sci_en_on_resume,
> + .ident = "Lenovo ThinkPad X201[s]",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),

The X201s identifies it's self as an X201s .. So you would need two
separate entries.

Here is dmidecode data from a X201s:
http://launchpadlibrarian.net/45050202/dmidecode


> + },
> + },
> + {
> .callback = init_old_suspend_ordering,
> .ident = "Panasonic CF51-2L",
> .matches = {
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/