PCI: consolidate duplicated MSI enable functions
Two recent patches added basically the same code to turn on HT MSI mapping: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6bae1d96c6d7dde078994f6cb98235fd46f8736b http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9dc625e72309e1c919ea3e7f51d0ffca96123787 There's no need to have both, so this patch removes one copy. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d6505a5236
commit
415b6d0e89
1 changed files with 6 additions and 30 deletions
|
@ -1725,32 +1725,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2
|
||||||
quirk_msi_ht_cap);
|
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.
|
/* The nVidia CK804 chipset may have 2 HT MSI mappings.
|
||||||
* MSI are supported if the MSI capability set in any of these mappings.
|
* MSI are supported if the MSI capability set in any of these mappings.
|
||||||
*/
|
*/
|
||||||
|
@ -1777,9 +1751,8 @@ static void __devinit quirk_nvidia_ck804_msi_ht_cap(struct pci_dev *dev)
|
||||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
|
||||||
quirk_nvidia_ck804_msi_ht_cap);
|
quirk_nvidia_ck804_msi_ht_cap);
|
||||||
|
|
||||||
/*
|
/* Force enable MSI mapping capability on HT bridges */
|
||||||
* Force enable MSI mapping capability on HT bridges */
|
static void __devinit ht_enable_msi_mapping(struct pci_dev *dev)
|
||||||
static inline void ht_enable_msi_mapping(struct pci_dev *dev)
|
|
||||||
{
|
{
|
||||||
int pos, ttl = 48;
|
int pos, ttl = 48;
|
||||||
|
|
||||||
|
@ -1798,6 +1771,9 @@ static inline void ht_enable_msi_mapping(struct pci_dev *dev)
|
||||||
HT_CAPTYPE_MSI_MAPPING);
|
HT_CAPTYPE_MSI_MAPPING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SERVERWORKS,
|
||||||
|
PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB,
|
||||||
|
ht_enable_msi_mapping);
|
||||||
|
|
||||||
static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev)
|
static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
|
@ -1829,7 +1805,7 @@ static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev)
|
||||||
|
|
||||||
if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS,
|
if (pci_read_config_byte(dev, pos + HT_MSI_FLAGS,
|
||||||
&flags) == 0) {
|
&flags) == 0) {
|
||||||
dev_info(&dev->dev, "Quirk disabling HT MSI mapping");
|
dev_info(&dev->dev, "Disabling HT MSI mapping");
|
||||||
pci_write_config_byte(dev, pos + HT_MSI_FLAGS,
|
pci_write_config_byte(dev, pos + HT_MSI_FLAGS,
|
||||||
flags & ~HT_MSI_FLAGS_ENABLE);
|
flags & ~HT_MSI_FLAGS_ENABLE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue