Re: [PATCH v4] Add pcie_hp=nomsi to disable MSI/MSI-X for pciehp driver

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

 



On Thu, 19 Jan 2012 15:41:09 -0800,
Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

snip

Index: linux-3.2/drivers/pci/quirks.c
===================================================================
--- linux-3.2.orig/drivers/pci/quirks.c
+++ linux-3.2/drivers/pci/quirks.c
@@ -2665,6 +2665,35 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AT
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
                        quirk_msi_intx_disable_bug);

+/*
+ * The PCI bridge from Integrated Device Technology(IDT) has a problem
+ * with MSI/MSI-X.
+ * An un-wanted interrupt is generated when PCI driver switches from
+ * MSI/MSI-X to INTx while shutting down the PCI Express port, if it
+ * provides the Native Hotplug service.  The interrupt does not happen
+ * if MSI/MSI-X is not used on it.  Therefore, turn off MSI/MSI-X for
+ * this device.
+ */
+static void __devinit idt_bridge_msi_disable(struct pci_dev *dev)
+{
+       int pos;
+       u16 reg16;
+       u32 reg32;
+
+       pos = pci_pcie_cap(dev);
+       if (!pos)
+               return;
+       pci_read_config_word(dev, pos + PCI_EXP_FLAGS,&reg16);
+       if (!(reg16&  PCI_EXP_FLAGS_SLOT))
+               return;
+       pci_read_config_dword(dev, pos + PCI_EXP_SLTCAP,&reg32);
+       if (reg32&  PCI_EXP_SLTCAP_HPC) {
+               pci_msi_off(dev);
+               dev->no_msi = 1;
+       }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IDT, 0x807f, idt_bridge_msi_disable);

do you have statement for IDT, says that is chipset problem ?

I'm trying to contact to them, but not yet.

it could be your platform fw problem.

if that is the case, you will disable MSI/MSIX for other platform that
do not have fw problem.

Yinghai,
Btw, how about other pieces? I'm thinking to drop the quirk code temporary, until I get the comment from them.
Can you give an ACK if I remove the hardware specific quirk code?

Thanks,
Takahiro
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux