| From stable-bounces@linux.kernel.org Mon May 15 09:56:14 2006 |
| Date: Mon, 15 May 2006 09:44:33 -0700 |
| From: akpm@osdl.org |
| To: torvalds@osdl.org |
| Cc: pavel@suse.cz, c-d.hailfinger.devel.2006@gmx.net, stable@kernel.org |
| Subject: smbus unhiding kills thermal management |
| |
| |
| From: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> |
| |
| Do not enable the SMBus device on Asus boards if suspend is used. We do |
| not reenable the device on resume, leading to all sorts of undesirable |
| effects, the worst being a total fan failure after resume on Samsung P35 |
| laptop. |
| |
| This fixes bug #6449 at bugzilla.kernel.org. |
| |
| Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> |
| Signed-off-by: Pavel Machek <pavel@suse.cz> |
| Signed-off-by: Andrew Morton <akpm@osdl.org> |
| Signed-off-by: Chris Wright <chrisw@sous-sol.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| Signed-off-by: Jean Delvare <khali@linux-fr.org> |
| --- |
| |
| drivers/pci/quirks.c | 9 ++++++++- |
| 1 file changed, 8 insertions(+), 1 deletion(-) |
| |
| --- linux-2.6.16.16.orig/drivers/pci/quirks.c |
| +++ linux-2.6.16.16/drivers/pci/quirks.c |
| @@ -861,6 +861,7 @@ static void __init quirk_eisa_bridge(str |
| } |
| DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_eisa_bridge ); |
| |
| +#ifndef CONFIG_ACPI_SLEEP |
| /* |
| * On ASUS P4B boards, the SMBus PCI Device within the ICH2/4 southbridge |
| * is not activated. The myth is that Asus said that they do not want the |
| @@ -872,8 +873,12 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I |
| * bridge. Unfortunately, this device has no subvendor/subdevice ID. So it |
| * becomes necessary to do this tweak in two steps -- I've chosen the Host |
| * bridge as trigger. |
| + * |
| + * Actually, leaving it unhidden and not redoing the quirk over suspend2ram |
| + * will cause thermal management to break down, and causing machine to |
| + * overheat. |
| */ |
| -static int __initdata asus_hides_smbus = 0; |
| +static int __initdata asus_hides_smbus; |
| |
| static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev) |
| { |
| @@ -1008,6 +1013,8 @@ static void __init asus_hides_smbus_lpc_ |
| } |
| DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, asus_hides_smbus_lpc_ich6 ); |
| |
| +#endif |
| + |
| /* |
| * SiS 96x south bridge: BIOS typically hides SMBus device... |
| */ |