···250250 struct pci_dev *port = srv->port;251251 int ret;252252253253+ if (port->no_bw_notif)254254+ return -ENODEV;255255+253256 /* Can happen if we run out of bus numbers during enumeration. */254257 if (!port->subordinate)255258 return -ENODEV;
+10
drivers/pci/quirks.c
···13601360DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TOSHIBA, 0x605, quirk_transparent_bridge);1361136113621362/*13631363+ * Enabling Link Bandwidth Management Interrupts (BW notifications) can cause13641364+ * boot hangs on P45.13651365+ */13661366+static void quirk_p45_bw_notifications(struct pci_dev *dev)13671367+{13681368+ dev->no_bw_notif = 1;13691369+}13701370+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e21, quirk_p45_bw_notifications);13711371+13721372+/*13631373 * Common misconfiguration of the MediaGX/Geode PCI master that will reduce13641374 * PCI bandwidth from 70MB/s to 25MB/s. See the GXM/GXLV/GX1 datasheets13651375 * found at http://www.national.com/analog for info on what these bits do.
+1
include/linux/pci.h
···406406 user sysfs */407407 unsigned int clear_retrain_link:1; /* Need to clear Retrain Link408408 bit manually */409409+ unsigned int no_bw_notif:1; /* BW notifications may cause issues */409410 unsigned int d3hot_delay; /* D3hot->D0 transition time in ms */410411 unsigned int d3cold_delay; /* D3cold->D0 transition time in ms */411412