On Saturday 03 April 2010, Clemens Ladisch wrote: > Rafael J. Wysocki wrote: > > From: Clemens Ladisch <clemens@xxxxxxxxxx> > > Subject: PCI quirk: RS780/RS880: disable MSI completely > > > > The missing initialization of the nb_cntl.strap_msi_enable does not > > seem to be the only problem that prevents MSI, so that quirk is not > > sufficient to enable MSI on all machines. To be safe, disable MSI > > unconditionally for the internal graphics and HDMI audio on these > > chipsets. > > > > [rjw: Added the PCI_VENDOR_ID_AI quirk.] > > ... > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x9602, quirk_disable_msi); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASUSTEK, 0x9602, quirk_disable_msi); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AI, 0x9602, quirk_disable_msi); > > I fear I have to NACK this. I'm afraid it's too late, the patch has been merged. > The fact that two OEMs have changed the vendor > ID makes it likely that this is a bug in AMD's template BIOS code, and that > we will see the same problem on other systems using other vendor IDs. > > So we should not use the vendor ID of device 0x9602 to declare the quirk, but > use some other device with an ID that is known to be correct. We already > access the configuration space of the host bridge, so we should use that. > > Furthermore, the quirk in my first patch was never run at all on the ALi > system, so it is probable that the nb_cntl.strap_msi_enable detection > would actually work. Rafael, please test this patch; if it doesn't work > on your system, we can still remove the check for the strap_msi_enable bit. > > ========== > > Subject: PCI quirk: RS780/RS880: work around wrong vendor IDs of RS780 bridge > > On many RS780 systems, the vendor ID of the PCI/PCI bridge for the > internal graphics is set to that of the mainboard vendor, so the quirk > would not match and failed to notice the disabled MSI. > > Since we do not know in advance all possible vendor IDs, we have to > declare the quirk on another device with an ID that is known to be > correct, and use that as a stepping stone to find the PCI/PCI bridge, > if present. > > Signed-off-by: Clemens Ladisch <clemens@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxx> Yes, this works (after reverting commit 5193d7a7f500cfbbfc0de221e808208199723521 and removing the (rdev->flags & RADEON_IS_IGP) test from radeon_irq_kms_init()). Thanks, Rafael -- 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