Messages in this thread | | | From | (Eric W. Biederman) | Subject | Re: [PATCH] quirk: Enable MSI Mapping on HT1000 | Date | Tue, 27 Nov 2007 05:59:04 -0700 |
| |
Sébastien Dugué <sebastien.dugue@bull.net> writes:
> From: Sebastien Dugue <sebastien.dugue@bull.net> > > Add a quirk to enable the MSI mapping capability on HyperTransport > bridges. > > Wire Broadcom's HT1000 to use the quirk. > > This patch applies cleanly on 2.6.24-rc3-mm1 and was tested on 2.6.24-rc3 > (sorry, but 2.6.24-rc3-mm1 would not boot on my box). > > I also have been running 2.6.21-rt10 with that patch for quite some > time now. > > Sebastien.
Looks like a sane starting point, and if we know the chipset can do it preferable to disabling msi on that chipset.
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
> > Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net> > Cc: "Eric W. Biederman" <ebiederm@xmission.com> > Cc: Andy Currid <acurrid@nvidia.com> > Cc: Peer Chen <pchen@nvidia.com> > Cc: Prakash Punnoor <prakash@punnoor.de> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Michael Chan <mchan@broadcom.com> > > --- > drivers/pci/quirks.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > Index: linux-2.6.24-rc3-mm1/drivers/pci/quirks.c > =================================================================== > --- linux-2.6.24-rc3-mm1.orig/drivers/pci/quirks.c > +++ linux-2.6.24-rc3-mm1/drivers/pci/quirks.c > @@ -1681,6 +1681,33 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SE > PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, > quirk_msi_ht_cap); > > + > +/* > + * Force enable MSI mapping capability on HT bridges > + */ > +static void __devinit quirk_msi_ht_cap_enable(struct pci_dev *dev) > +{ > + int pos, ttl = 48; > + > + pos = pci_find_ht_capability(dev, HT_CAPTYPE_MSI_MAPPING); > + while (pos && ttl--) { > + u8 flags; > + > + if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS, &flags) == 0) { > + printk(KERN_INFO "PCI: Enabling HT MSI Mapping on %s\n", > + pci_name(dev)); > + > + pci_write_config_byte(dev, pos + HT_MSI_FLAGS, > + flags | HT_MSI_FLAGS_ENABLE); > + } > + pos = pci_find_next_ht_capability(dev, pos, > + HT_CAPTYPE_MSI_MAPPING); > + } > +} > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SERVERWORKS, > + PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, > + quirk_msi_ht_cap_enable); > + > /* The nVidia CK804 chipset may have 2 HT MSI mappings. > * MSI are supported if the MSI capability set in any of these mappings. > */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |