|
@@ -162,6 +162,26 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_1, quirk_isa_d
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_2, quirk_isa_dma_hangs);
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, quirk_isa_dma_hangs);
|
|
|
|
|
|
+/*
|
|
|
+ * Intel NM10 "TigerPoint" LPC PM1a_STS.BM_STS must be clear
|
|
|
+ * for some HT machines to use C4 w/o hanging.
|
|
|
+ */
|
|
|
+static void __devinit quirk_tigerpoint_bm_sts(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ u32 pmbase;
|
|
|
+ u16 pm1a;
|
|
|
+
|
|
|
+ pci_read_config_dword(dev, 0x40, &pmbase);
|
|
|
+ pmbase = pmbase & 0xff80;
|
|
|
+ pm1a = inw(pmbase);
|
|
|
+
|
|
|
+ if (pm1a & 0x10) {
|
|
|
+ dev_info(&dev->dev, FW_BUG "TigerPoint LPC.BM_STS cleared\n");
|
|
|
+ outw(0x10, pmbase);
|
|
|
+ }
|
|
|
+}
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TGP_LPC, quirk_tigerpoint_bm_sts);
|
|
|
+
|
|
|
/*
|
|
|
* Chipsets where PCI->PCI transfers vanish or hang
|
|
|
*/
|