mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver (Closes: #686040)

svn path=/dists/trunk/linux/; revision=19355
This commit is contained in:
Ben Hutchings 2012-08-28 18:04:03 +00:00
parent 3b89cc45a2
commit 14c53a8fe5
3 changed files with 96 additions and 0 deletions

4
debian/changelog vendored
View File

@ -3,6 +3,10 @@ linux (3.5.3-1~experimental.1) UNRELEASED; urgency=low
* New upstream stable update:
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.3
[ Ben Hutchings ]
* mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
(Closes: #686040)
-- Ben Hutchings <ben@decadent.org.uk> Mon, 27 Aug 2012 17:22:33 -0700
linux (3.5.2-1~experimental.1) experimental; urgency=low

View File

@ -0,0 +1,91 @@
From: Feng Tang <feng.tang@intel.com>
Date: Thu, 16 Aug 2012 15:50:10 +0800
Subject: mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
commit 092369efbd6ef6b4a215741ce9f65446bf45beff upstream.
There are many reports (including 2 of my machines) that iTCO_wdt watchdog
driver fails to be initialized in 3.5 kernel with error message like:
[ 5.265175] ACPI Warning: 0x00001060-0x0000107f SystemIO conflicts with Region \_SB_.PCI0.LPCB.TCOI 1 (20120320/utaddress-251)
[ 5.265192] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 5.265206] lpc_ich: Resource conflict(s) found affecting iTCO_wdt
The root cause the iTCO_wdt driver in 3.4 probes the HW IO resource from
LPC's PCI config space, while in 3.5 kernel it relies on lpc_ich driver
for the probe, which adds a new acpi_check_resource_conflict() check, and
give up the probe if there is any conflict with ACPI.
Fix it by removing all the checks for iTCO_wdt to keep the same behavior as
3.4 kernel.
https://bugzilla.kernel.org/show_bug.cgi?id=44991
Actually the same check could be removed for the gpio-ich in lpc_ich.c,
but I'm not sure if it will cause problems.
Signed-off-by: Feng Tang <feng.tang@intel.com>
Cc: Aaron Sierra <asierra@xes-inc.com>
Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: Len Brown <len.brown@intel.com>
Cc: Bob Moore <robert.moore@intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
drivers/mfd/lpc_ich.c | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
index 027cc8f..a05fdfc 100644
--- a/drivers/mfd/lpc_ich.c
+++ b/drivers/mfd/lpc_ich.c
@@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
u32 base_addr_cfg;
u32 base_addr;
int ret;
- bool acpi_conflict = false;
struct resource *res;
/* Setup power management base register */
@@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
res = wdt_io_res(ICH_RES_IO_TCO);
res->start = base_addr + ACPIBASE_TCO_OFF;
res->end = base_addr + ACPIBASE_TCO_END;
- ret = acpi_check_resource_conflict(res);
- if (ret) {
- acpi_conflict = true;
- goto wdt_done;
- }
res = wdt_io_res(ICH_RES_IO_SMI);
res->start = base_addr + ACPIBASE_SMI_OFF;
res->end = base_addr + ACPIBASE_SMI_END;
- ret = acpi_check_resource_conflict(res);
- if (ret) {
- acpi_conflict = true;
- goto wdt_done;
- }
+
lpc_ich_enable_acpi_space(dev);
/*
@@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
res = wdt_mem_res(ICH_RES_MEM_GCS);
res->start = base_addr + ACPIBASE_GCS_OFF;
res->end = base_addr + ACPIBASE_GCS_END;
- ret = acpi_check_resource_conflict(res);
- if (ret) {
- acpi_conflict = true;
- goto wdt_done;
- }
}
lpc_ich_finalize_cell(&lpc_ich_cells[LPC_WDT], id);
@@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
1, NULL, 0);
wdt_done:
- if (acpi_conflict)
- pr_warn("Resource conflict(s) found affecting %s\n",
- lpc_ich_cells[LPC_WDT].name);
return ret;
}

View File

@ -57,3 +57,4 @@ bugfix/all/hwmon-applesmc-Shorten-minimum-wait-time.patch
bugfix/all/hwmon-applesmc-Allow-negative-temperature-values.patch
bugfix/all/hwmon-applesmc-Ignore-some-temperature-registers.patch
bugfix/all/hwmon-applesmc-Decode-and-act-on-read-write-status-c.patch
bugfix/x86/mfd-lpc_ich-Fix-a-3.5-kernel-regression-for-iTCO_wdt.patch