Re: HPET regression in 2.6.26 versus 2.6.25 -- found another user with the same regression

David Witbrodt
2008-08-23T19:29:47Z

> please try attached patch, and send out lspci -vvxxxx again.

I found that your patch was supposed to apply beginning at line 1918,
but the code in v2.6.27-rc4 that corresponded to the patch actually
was located at line 1790.

I also found that it would not compile, but was able to fix it...
hopefully somewhat as you intended:
========================
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 9236e7f..7853a05 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1790,6 +1790,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
PCI_DEVICE_ID_NX2_5709S,
quirk_brcm_570x_limit_vpd);

+static void __init quirk_hpet_in_bar(struct pci_dev *pdev)
+{
+ /* int i; */
+ unsigned int base, size;
+
+ /* the BAR1 is the location of the HPET...we must
+ * not touch this, so forcibly insert it into the resource tree */
+ base = pci_resource_start(pdev, 1);
+ size = pci_resource_len(pdev, 1);
+ if (base && size) {
+ insert_resource(&iomem_resource, &pdev->resource[1]);
+ dev_info(&pdev->dev, "HPET at %04x-%04x\n", base, base + size - 1);
+ }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x3485, quirk_hpet_in_bar);
+
#ifdef CONFIG_PCI_MSI
/* Some chipsets do not support MSI. We cannot easily rely on setting
* PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually
========================

With these changes, the kernel still hangs at the same point as previous
kernels.

With "hpet=disable", nothing from your dev_info() call appears in 'dmesg'
output.

Dave W.