Re: [PATCH 07/22] [PATCH] smbus unhiding kills thermal management

Jean Delvare
2006-05-18T20:52:59Z

> -stable review patch. If anyone has any objections, please let us know.
> ------------------
>
> 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.
>
> 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>

As the i2c and hwmon maintainer, I wish to thank Carl-Daniel for his
good work on this, and this patch is
Signed-off-by: Jean Delvare <khali@linux-fr.org>

Note that this patch should fix bug #6449.

> ---
>
> 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...
> */

--
Jean Delvare