I've borrowed this laptop for a few days. Linux works pretty well, but I found a problem on newer kernels. After suspend it claims the battery has been removed. E.g. /proc/acpi/battery/BAT0/state claims the battery is not present (but it is). I bisected it to the commit below. Manually reverting the patch fixes the problem (in both 2.6.30 and 2.6.31-rc2). commit d0c71fe7ebc180f1b7bc7da1d39a07fc19eec768 Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Sat Oct 4 00:05:05 2008 +0200 ACPI Suspend: Enable ACPI during resume if SCI_EN is not set On some machines, like for example MSI Wind U100, the BIOS doesn't enable ACPI before returning control to the OS, which sometimes causes resume to fail. This is against the ACPI specification, which clearly states that "When the platform is waking from an S1, S2 or S3 state, OSPM assumes the hardware is already in the ACPI mode and will not issue an ACPI_ENABLE", but it won't hurt to check the SCI_EN bit and enable ACPI during resume from S3 if this bit is not set. Fortunately, we already have acpi_enable() for that, so use it in the resume code path, before executing _BFS, in analogy with the resume-from-hibernation code path. NOTE: We aren't supposed to set SCI_EN directly, because it's owned by the hardware. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Pavel Machek <pavel@suse.cz> Signed-off-by: Len Brown <len.brown@intel.com>
Created attachment 22267 [details] acpidump output
Created attachment 22268 [details] dmidecode output
Well, the commit below can't be reverted, because that would cause the boxes it fixed to stop working. Now, the only case this patch can make any difference is when the BIOS doesn't set SCI_EN before returning control the the kernel, which quite evidently is a BIOS bug. The fact that the battery doesn't work with this patch applied means that the BIOS not only doesn't set SCI_EN, but also expects it to remain unset, which is insane. IMO this is a "won't fix", sorry.
Created attachment 22274 [details] dmesg from v2.6.31-rc2-146-gfaf80d6 Dmesg showing boot and suspend on a symptomatic kernel
Created attachment 22275 [details] dmesg from v2.6.31-rc2-146-gfaf80d6, irqpoll irqpoll makes these go away - [ 141.008335] PM: resume devices took 2.512 seconds [ 141.008429] PM: Finishing wakeup. [ 141.008450] Restarting tasks ... done. [ 143.097129] cfg80211: Calling CRDA to update world regulatory domain [ 143.333895] irq 9: nobody cared (try booting with the "irqpoll" option) ... [ 143.334051] handlers: [ 143.334089] [<ffffffff812658a8>] (acpi_irq+0x0/0x2c) [ 143.334200] Disabling IRQ #9 - but doesn't fix the problem.
Created attachment 22276 [details] dmesg showing boot and suspend after manual revert
Hmm. Can you try to add the system to acpisleep_dmi_table[] (drivers/acpi/sleep.c) with .callback = init_set_sci_en_on_resume and see if that helps?
Patch : http://patchwork.kernel.org/patch/35062/
Acked-by: Len Brown <len.brown@intel.com> Rafael is taking this one in his suspend tree
This issue also affects me using an HP Pavilion dv3. I made a similar change in sleep.c, adding the following lines: { .callback = init_set_sci_en_on_resume, .ident = "Hewlett-Packard HP Pavilion dv3 Notebook PC", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv3 Notebook PC"), }, }, which successfully fixes the problem on my HP Pavilion dv3 Notebook PC. Is it possible to add this patch to sleep.c?
ec79be26875f6c1468784876cb99192b7f41c7a5 PM / ACPI: HP G7000 Notebook needs a SCI_EN resume quirk shipped in v2.6.31-rc5
Created attachment 22909 [details] patch adding DMI for michael's hp Michael, Please verify that this patch works.
Len, The patch you provided works. Thank you > Date: Sun, 30 Aug 2009 02:41:38 +0000 > From: bugzilla-daemon@bugzilla.kernel.org > To: mpapazoglou@live.com > Subject: [Bug 13745] HP G7000 battery disappears after suspend > > http://bugzilla.kernel.org/show_bug.cgi?id=13745 > > > > > > --- Comment #12 from Len Brown <len.brown@intel.com> 2009-08-30 02:41:37 --- > Created an attachment (id=22909) > --> (http://bugzilla.kernel.org/attachment.cgi?id=22909) > patch adding DMI for michael's hp > > Michael, > Please verify that this patch works. > > -- > Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. _________________________________________________________________ Get back to school stuff for them and cashback for you. http://www.bing.com/cashback?form=MSHYCB&publ=WLHMTAG&crea=TEXT_MSHYCB_BackToSchool_Cashback_BTSCashback_1x1
commit eb0ca849863ecdc593ba7faa95fda5695af891c8 Author: Len Brown <len.brown@intel.com> Date: Sat Aug 29 22:39:06 2009 -0400 ACPI: sleep: another HP DMI entry for init_set_sci_en_on_resume DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv3 Notebook PC") shipped in linux-2.6.31-git14 closed.
This thing also seemed to affect me in my HP dv4-1241tx machine.... making the following changes to drivers/acpi/sleep.c resolved the problem { .callback = init_set_sci_en_on_resume, .ident = "Hewlett-Packard HP Pavilion dv4 Notebook PC", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv4 Notebook PC"), }, }, Applying this change into the code and recompiling the kernel fixed the problem.
This also affects HP dv7-1199EF, adding the below section worked for me { .callback = init_set_sci_en_on_resume, .ident = "Hewlett-Packard HP Pavilion dv7 Notebook PC", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv7 Notebook PC"), }, }, Here's a link to the patch I've created adding dv3, dv4 and dv7 http://bugs.archlinux.org/task/16856?getfile=4260
This also affects Compaq presario CQ40 series, adding the below section worked for me { .callback = init_set_sci_en_on_resume, .ident = "Hewlett-Packard Compaq Presario CQ40 Notebook PC", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "Compaq Presario CQ40 Notebook PC"), }, },
Created attachment 23674 [details] patch consolidating above comments this patch patch add adds the dv7 and CQ40 entries above to the dv4 patch here http://bugzilla.kernel.org/show_bug.cgi?id=13449 applied to acpi tree.
*** Bug 14526 has been marked as a duplicate of this bug. ***
The HP C700 series is also affected by this bug. In this case the CPU fan is also completely inoperative and the processor will quickly overheat. Other users have reported the problem in the bug reports below. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/232385 http://bbs.archlinux.org/viewtopic.php?id=61973 I have compiled a new kernel with an entry in sleep.c for this series of laptop to force on the SCI_EN bit after resume. This fixes the issue with my HP C751NR. { .callback = init_set_sci_en_on_resume, .ident = "Hewlett-Packard Compaq Presario C700 Notebook PC", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "Compaq Presario C700 Notebook PC"), }, },
Created attachment 23893 [details] DMI patch for HP-Compaq C700 Somebody please verify that this patch adding the HP-Compaq C700 helps those systems.
commit 87c687be055e67bc04189ce476690be73d16063e ACPI: DMI init_set_sci_en_on_resume for HP-Compaq C700 shipped in linux-2.6.32 closed
This related patch shipped in 2.6.35-rc1: commit b6dacf63e9fb2e7a1369843d6cef332f76fca6a3 Author: Matthew Garrett <mjg@redhat.com> Date: Tue May 11 13:49:25 2010 -0400 ACPI: Unconditionally set SCI_EN on resume