[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#823146: linux-image-4.5.0-0.bpo.1-amd64: Kernel 4.5 fails to boot on AMD A6 APU



Control: tag -1 upstream patch moreinfo

On Sun, 2016-05-01 at 14:58 +0200, CJP wrote:
[...]
> I searched for the error message on the internet, and found the following
> discussion:
> https://bugzilla.kernel.org/show_bug.cgi?id=114201
> 
> I followed the advice of adding the following kernel boot argument to the 4.5
> boot command line:
> 
> modprobe.blacklist=sp5100_tco

Thank you very much for researching this.

[...]
> While the boot argument solves the problem for me, I think there should be a
> solution that lets this package work "out of the box", without requiring such
> tweaks by the system maintainer.
[...]

Of course.  It looks like we can do that by reverting the change that
caused this regression.  Please test whether the attached patch fixes
the problem, following the instructions at:

https://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official

Ben.

-- 
Ben Hutchings
Life is what happens to you while you're busy making other plans.
                                                               - John Lennon
From: Ben Hutchings <ben@decadent.org.uk>
Date: Mon, 2 May 2016 21:15:00 +0200
Subject: Revert "sp5100_tco: fix the device check for SB800 and later chipsets"
Bug: https://bugzilla.kernel.org/show_bug.cgi?id=114201
Bug-Debian: https://bugs.debian.org/823146

This reverts commit bdecfcdb5461834aab24002bb18d3cbdd907b7fb, which
caused log flooding and hung CPUs on some systems.
---
 drivers/watchdog/sp5100_tco.c | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c
index 6467b91f2245..0ccadb44b609 100644
--- a/drivers/watchdog/sp5100_tco.c
+++ b/drivers/watchdog/sp5100_tco.c
@@ -335,24 +335,21 @@ static unsigned char sp5100_tco_setupdevice(void)
 	if (!sp5100_tco_pci)
 		return 0;
 
-	pr_info("PCI Vendor ID: 0x%x, Device ID: 0x%x, Revision ID: 0x%x\n",
-		sp5100_tco_pci->vendor, sp5100_tco_pci->device,
-		sp5100_tco_pci->revision);
+	pr_info("PCI Revision ID: 0x%x\n", sp5100_tco_pci->revision);
 
 	/*
 	 * Determine type of southbridge chipset.
 	 */
-	if (sp5100_tco_pci->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS &&
-	    sp5100_tco_pci->revision < 0x40) {
-		dev_name = SP5100_DEVNAME;
-		index_reg = SP5100_IO_PM_INDEX_REG;
-		data_reg = SP5100_IO_PM_DATA_REG;
-		base_addr = SP5100_PM_WATCHDOG_BASE;
-	} else {
+	if (sp5100_tco_pci->revision >= 0x40) {
 		dev_name = SB800_DEVNAME;
 		index_reg = SB800_IO_PM_INDEX_REG;
 		data_reg = SB800_IO_PM_DATA_REG;
 		base_addr = SB800_PM_WATCHDOG_BASE;
+	} else {
+		dev_name = SP5100_DEVNAME;
+		index_reg = SP5100_IO_PM_INDEX_REG;
+		data_reg = SP5100_IO_PM_DATA_REG;
+		base_addr = SP5100_PM_WATCHDOG_BASE;
 	}
 
 	/* Request the IO ports used by this driver */
@@ -388,12 +385,7 @@ static unsigned char sp5100_tco_setupdevice(void)
 	 * Secondly, Find the watchdog timer MMIO address
 	 * from SBResource_MMIO register.
 	 */
-	if (sp5100_tco_pci->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS &&
-	    sp5100_tco_pci->revision < 0x40) {
-		/* Read SBResource_MMIO from PCI config(PCI_Reg: 9Ch) */
-		pci_read_config_dword(sp5100_tco_pci,
-				      SP5100_SB_RESOURCE_MMIO_BASE, &val);
-	} else {
+	if (sp5100_tco_pci->revision >= 0x40) {
 		/* Read SBResource_MMIO from AcpiMmioEn(PM_Reg: 24h) */
 		outb(SB800_PM_ACPI_MMIO_EN+3, SB800_IO_PM_INDEX_REG);
 		val = inb(SB800_IO_PM_DATA_REG);
@@ -403,6 +395,10 @@ static unsigned char sp5100_tco_setupdevice(void)
 		val = val << 8 | inb(SB800_IO_PM_DATA_REG);
 		outb(SB800_PM_ACPI_MMIO_EN+0, SB800_IO_PM_INDEX_REG);
 		val = val << 8 | inb(SB800_IO_PM_DATA_REG);
+	} else {
+		/* Read SBResource_MMIO from PCI config(PCI_Reg: 9Ch) */
+		pci_read_config_dword(sp5100_tco_pci,
+				      SP5100_SB_RESOURCE_MMIO_BASE, &val);
 	}
 
 	/* The SBResource_MMIO is enabled and mapped memory space? */

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: