mirror of https://gitee.com/openkylin/linux.git
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: PCI: Add Kconfig option to disable deprecated pci_find_* API PCI: pciserial_resume_one ignored return value of pci_enable_device PCI Hotplug: cpqhp_pushbutton_thread(): remove a pointless if() check PCI: make pci_match_device() static PCI: Remove 3 incorrect MSI quirks. PCI: Add MSI INTX_DISABLE quirks for ATI SB700/800 SATA and IXP SB400 USB PCI: Add quirk for devices which disable MSI when INTX_DISABLE is set. PCI: Add MSI quirk for ServerWorks HT1000 PCIX bridge. PCI: Revert "PCI: disable MSI by default on systems with Serverworks HT1000 chips"
This commit is contained in:
commit
5d66f151ac
|
@ -109,7 +109,7 @@ config HISAX_16_3
|
|||
|
||||
config HISAX_TELESPCI
|
||||
bool "Teles PCI"
|
||||
depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
help
|
||||
This enables HiSax support for the Teles PCI.
|
||||
See <file:Documentation/isdn/README.HiSax> on how to configure it.
|
||||
|
@ -237,7 +237,7 @@ config HISAX_MIC
|
|||
|
||||
config HISAX_NETJET
|
||||
bool "NETjet card"
|
||||
depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
help
|
||||
This enables HiSax support for the NetJet from Traverse
|
||||
Technologies.
|
||||
|
@ -248,7 +248,7 @@ config HISAX_NETJET
|
|||
|
||||
config HISAX_NETJET_U
|
||||
bool "NETspider U card"
|
||||
depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
help
|
||||
This enables HiSax support for the Netspider U interface ISDN card
|
||||
from Traverse Technologies.
|
||||
|
@ -287,7 +287,7 @@ config HISAX_HSTSAPHIR
|
|||
|
||||
config HISAX_BKM_A4T
|
||||
bool "Telekom A4T card"
|
||||
depends on PCI
|
||||
depends on PCI && PCI_LEGACY
|
||||
help
|
||||
This enables HiSax support for the Telekom A4T card.
|
||||
|
||||
|
@ -297,7 +297,7 @@ config HISAX_BKM_A4T
|
|||
|
||||
config HISAX_SCT_QUADRO
|
||||
bool "Scitel Quadro card"
|
||||
depends on PCI
|
||||
depends on PCI && PCI_LEGACY
|
||||
help
|
||||
This enables HiSax support for the Scitel Quadro card.
|
||||
|
||||
|
@ -316,7 +316,7 @@ config HISAX_GAZEL
|
|||
|
||||
config HISAX_HFC_PCI
|
||||
bool "HFC PCI-Bus cards"
|
||||
depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
help
|
||||
This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
|
||||
|
||||
|
@ -325,7 +325,7 @@ config HISAX_HFC_PCI
|
|||
|
||||
config HISAX_W6692
|
||||
bool "Winbond W6692 based cards"
|
||||
depends on PCI
|
||||
depends on PCI && PCI_LEGACY
|
||||
help
|
||||
This enables HiSax support for Winbond W6692 based PCI ISDN cards.
|
||||
|
||||
|
@ -341,7 +341,7 @@ config HISAX_HFC_SX
|
|||
|
||||
config HISAX_ENTERNOW_PCI
|
||||
bool "Formula-n enter:now PCI card"
|
||||
depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
depends on HISAX_NETJET && PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
|
||||
help
|
||||
This enables HiSax support for the Formula-n enter:now PCI
|
||||
ISDN card.
|
||||
|
@ -411,7 +411,7 @@ config HISAX_HFC4S8S
|
|||
|
||||
config HISAX_FRITZ_PCIPNP
|
||||
tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)"
|
||||
depends on PCI && EXPERIMENTAL
|
||||
depends on PCI && PCI_LEGACY && EXPERIMENTAL
|
||||
help
|
||||
This enables the driver for the AVM Fritz!Card PCI,
|
||||
Fritz!Card PCI v2 and Fritz!Card PnP.
|
||||
|
|
|
@ -830,7 +830,7 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
|
|||
|
||||
#endif /* __ISAPNP__ */
|
||||
|
||||
#ifndef CONFIG_PCI
|
||||
#ifndef CONFIG_PCI_LEGACY
|
||||
|
||||
static int __devinit avm_pci_setup(struct IsdnCardState *cs)
|
||||
{
|
||||
|
@ -872,7 +872,7 @@ static int __devinit avm_pci_setup(struct IsdnCardState *cs)
|
|||
return (1);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
int __devinit
|
||||
setup_avm_pcipnp(struct IsdnCard *card)
|
||||
|
|
|
@ -1148,7 +1148,7 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
|
|||
|
||||
#endif /* ISAPNP */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
static struct pci_dev *dev_diva __devinitdata = NULL;
|
||||
static struct pci_dev *dev_diva_u __devinitdata = NULL;
|
||||
static struct pci_dev *dev_diva201 __devinitdata = NULL;
|
||||
|
@ -1229,14 +1229,14 @@ static int __devinit setup_diva_pci(struct IsdnCard *card)
|
|||
return (1); /* card found */
|
||||
}
|
||||
|
||||
#else /* if !CONFIG_PCI */
|
||||
#else /* if !CONFIG_PCI_LEGACY */
|
||||
|
||||
static int __devinit setup_diva_pci(struct IsdnCard *card)
|
||||
{
|
||||
return (-1); /* card not found; continue search */
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
int __devinit
|
||||
setup_diva(struct IsdnCard *card)
|
||||
|
|
|
@ -1025,7 +1025,7 @@ setup_elsa_pcmcia(struct IsdnCard *card)
|
|||
cs->irq);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
static struct pci_dev *dev_qs1000 __devinitdata = NULL;
|
||||
static struct pci_dev *dev_qs3000 __devinitdata = NULL;
|
||||
|
||||
|
@ -1093,7 +1093,7 @@ setup_elsa_pci(struct IsdnCard *card)
|
|||
{
|
||||
return (1);
|
||||
}
|
||||
#endif /* CONFIG_PCI */
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
static int __devinit
|
||||
setup_elsa_common(struct IsdnCard *card)
|
||||
|
|
|
@ -532,6 +532,7 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
|
|||
return (0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
static struct pci_dev *dev_tel __devinitdata = NULL;
|
||||
|
||||
static int __devinit
|
||||
|
@ -620,6 +621,7 @@ setup_gazelpci(struct IsdnCardState *cs)
|
|||
|
||||
return (0);
|
||||
}
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
int __devinit
|
||||
setup_gazel(struct IsdnCard *card)
|
||||
|
@ -639,7 +641,7 @@ setup_gazel(struct IsdnCard *card)
|
|||
return (0);
|
||||
} else {
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
if (setup_gazelpci(cs))
|
||||
return (0);
|
||||
#else
|
||||
|
|
|
@ -223,7 +223,6 @@ static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct pci_dev *niccy_dev __devinitdata = NULL;
|
||||
#ifdef __ISAPNP__
|
||||
static struct pnp_card *pnp_c __devinitdata = NULL;
|
||||
#endif
|
||||
|
@ -299,7 +298,9 @@ int __devinit setup_niccy(struct IsdnCard *card)
|
|||
return 0;
|
||||
}
|
||||
} else {
|
||||
#ifdef CONFIG_PCI
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
static struct pci_dev *niccy_dev __devinitdata;
|
||||
|
||||
u_int pci_ioaddr;
|
||||
cs->subtyp = 0;
|
||||
if ((niccy_dev = pci_find_device(PCI_VENDOR_ID_SATSAGEM,
|
||||
|
@ -356,7 +357,7 @@ int __devinit setup_niccy(struct IsdnCard *card)
|
|||
printk(KERN_WARNING "Niccy: io0 0 and NO_PCI_BIOS\n");
|
||||
printk(KERN_WARNING "Niccy: unable to config NICCY PCI\n");
|
||||
return 0;
|
||||
#endif /* CONFIG_PCI */
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
}
|
||||
printk(KERN_INFO "HiSax: %s %s config irq:%d data:0x%X ale:0x%X\n",
|
||||
CardType[cs->typ], (cs->subtyp == 1) ? "PnP" : "PCI",
|
||||
|
|
|
@ -600,7 +600,7 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
|
|||
}
|
||||
#endif /* __ISAPNP__ */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
static struct pci_dev *dev_sedl __devinitdata = NULL;
|
||||
|
||||
static int __devinit
|
||||
|
@ -675,7 +675,7 @@ setup_sedlbauer_pci(struct IsdnCard *card)
|
|||
return (1);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
int __devinit
|
||||
setup_sedlbauer(struct IsdnCard *card)
|
||||
|
|
|
@ -7365,10 +7365,6 @@ static int tg3_open(struct net_device *dev)
|
|||
} else if (pci_enable_msi(tp->pdev) == 0) {
|
||||
u32 msi_mode;
|
||||
|
||||
/* Hardware bug - MSI won't work if INTX disabled. */
|
||||
if (tp->tg3_flags2 & TG3_FLG2_5780_CLASS)
|
||||
pci_intx(tp->pdev, 1);
|
||||
|
||||
msi_mode = tr32(MSGINT_MODE);
|
||||
tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE);
|
||||
tp->tg3_flags2 |= TG3_FLG2_USING_MSI;
|
||||
|
@ -12681,11 +12677,6 @@ static int tg3_resume(struct pci_dev *pdev)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
/* Hardware bug - MSI won't work if INTX disabled. */
|
||||
if ((tp->tg3_flags2 & TG3_FLG2_5780_CLASS) &&
|
||||
(tp->tg3_flags2 & TG3_FLG2_USING_MSI))
|
||||
pci_intx(tp->pdev, 1);
|
||||
|
||||
netif_device_attach(dev);
|
||||
|
||||
tg3_full_lock(tp, 0);
|
||||
|
|
|
@ -21,6 +21,17 @@ config PCI_MSI
|
|||
|
||||
If you don't know what to do here, say N.
|
||||
|
||||
config PCI_LEGACY
|
||||
bool "Enable deprecated pci_find_* API"
|
||||
depends on PCI
|
||||
default y
|
||||
help
|
||||
Say Y here if you want to include support for the deprecated
|
||||
pci_find_slot() and pci_find_device() APIs. Most drivers have
|
||||
been converted over to using the proper hotplug APIs, so this
|
||||
option serves to include/exclude only a few drivers that are
|
||||
still using this API.
|
||||
|
||||
config PCI_DEBUG
|
||||
bool "PCI Debugging"
|
||||
depends on PCI && DEBUG_KERNEL
|
||||
|
|
|
@ -41,7 +41,7 @@ config HOTPLUG_PCI_FAKE
|
|||
|
||||
config HOTPLUG_PCI_COMPAQ
|
||||
tristate "Compaq PCI Hotplug driver"
|
||||
depends on X86 && PCI_BIOS
|
||||
depends on X86 && PCI_BIOS && PCI_LEGACY
|
||||
help
|
||||
Say Y here if you have a motherboard with a Compaq PCI Hotplug
|
||||
controller.
|
||||
|
@ -63,7 +63,7 @@ config HOTPLUG_PCI_COMPAQ_NVRAM
|
|||
|
||||
config HOTPLUG_PCI_IBM
|
||||
tristate "IBM PCI Hotplug driver"
|
||||
depends on X86_IO_APIC && X86 && PCI_BIOS
|
||||
depends on X86_IO_APIC && X86 && PCI_BIOS && PCI_LEGACY
|
||||
help
|
||||
Say Y here if you have a motherboard with a IBM PCI Hotplug
|
||||
controller.
|
||||
|
@ -119,7 +119,7 @@ config HOTPLUG_PCI_CPCI_ZT5550
|
|||
|
||||
config HOTPLUG_PCI_CPCI_GENERIC
|
||||
tristate "Generic port I/O CompactPCI Hotplug driver"
|
||||
depends on HOTPLUG_PCI_CPCI && X86
|
||||
depends on HOTPLUG_PCI_CPCI && X86 && PCI_LEGACY
|
||||
help
|
||||
Say Y here if you have a CompactPCI system card that exposes the #ENUM
|
||||
hotswap signal as a bit in a system register that can be read through
|
||||
|
|
|
@ -1931,16 +1931,14 @@ void cpqhp_pushbutton_thread(unsigned long slot)
|
|||
return ;
|
||||
}
|
||||
|
||||
if (func != NULL && ctrl != NULL) {
|
||||
if (cpqhp_process_SS(ctrl, func) != 0) {
|
||||
amber_LED_on (ctrl, hp_slot);
|
||||
green_LED_on (ctrl, hp_slot);
|
||||
|
||||
set_SOGO(ctrl);
|
||||
if (cpqhp_process_SS(ctrl, func) != 0) {
|
||||
amber_LED_on(ctrl, hp_slot);
|
||||
green_LED_on(ctrl, hp_slot);
|
||||
|
||||
/* Wait for SOBS to be unset */
|
||||
wait_for_ctrl_irq (ctrl);
|
||||
}
|
||||
set_SOGO(ctrl);
|
||||
|
||||
/* Wait for SOBS to be unset */
|
||||
wait_for_ctrl_irq(ctrl);
|
||||
}
|
||||
|
||||
p_slot->state = STATIC_STATE;
|
||||
|
|
|
@ -224,6 +224,12 @@ static struct msi_desc* alloc_msi_entry(void)
|
|||
return entry;
|
||||
}
|
||||
|
||||
static void pci_intx_for_msi(struct pci_dev *dev, int enable)
|
||||
{
|
||||
if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
|
||||
pci_intx(dev, enable);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static void __pci_restore_msi_state(struct pci_dev *dev)
|
||||
{
|
||||
|
@ -237,7 +243,7 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
|
|||
entry = get_irq_msi(dev->irq);
|
||||
pos = entry->msi_attrib.pos;
|
||||
|
||||
pci_intx(dev, 0); /* disable intx */
|
||||
pci_intx_for_msi(dev, 0);
|
||||
msi_set_enable(dev, 0);
|
||||
write_msi_msg(dev->irq, &entry->msg);
|
||||
if (entry->msi_attrib.maskbit)
|
||||
|
@ -260,7 +266,7 @@ static void __pci_restore_msix_state(struct pci_dev *dev)
|
|||
return;
|
||||
|
||||
/* route the table */
|
||||
pci_intx(dev, 0); /* disable intx */
|
||||
pci_intx_for_msi(dev, 0);
|
||||
msix_set_enable(dev, 0);
|
||||
|
||||
list_for_each_entry(entry, &dev->msi_list, list) {
|
||||
|
@ -343,7 +349,7 @@ static int msi_capability_init(struct pci_dev *dev)
|
|||
}
|
||||
|
||||
/* Set MSI enabled bits */
|
||||
pci_intx(dev, 0); /* disable intx */
|
||||
pci_intx_for_msi(dev, 0);
|
||||
msi_set_enable(dev, 1);
|
||||
dev->msi_enabled = 1;
|
||||
|
||||
|
@ -433,7 +439,7 @@ static int msix_capability_init(struct pci_dev *dev,
|
|||
i++;
|
||||
}
|
||||
/* Set MSI-X enabled bits */
|
||||
pci_intx(dev, 0); /* disable intx */
|
||||
pci_intx_for_msi(dev, 0);
|
||||
msix_set_enable(dev, 1);
|
||||
dev->msix_enabled = 1;
|
||||
|
||||
|
@ -528,7 +534,7 @@ void pci_disable_msi(struct pci_dev* dev)
|
|||
return;
|
||||
|
||||
msi_set_enable(dev, 0);
|
||||
pci_intx(dev, 1); /* enable intx */
|
||||
pci_intx_for_msi(dev, 1);
|
||||
dev->msi_enabled = 0;
|
||||
|
||||
BUG_ON(list_empty(&dev->msi_list));
|
||||
|
@ -640,7 +646,7 @@ void pci_disable_msix(struct pci_dev* dev)
|
|||
return;
|
||||
|
||||
msix_set_enable(dev, 0);
|
||||
pci_intx(dev, 1); /* enable intx */
|
||||
pci_intx_for_msi(dev, 1);
|
||||
dev->msix_enabled = 0;
|
||||
|
||||
msix_free_all_irqs(dev);
|
||||
|
|
|
@ -143,8 +143,8 @@ const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
|
|||
* system is in its list of supported devices. Returns the matching
|
||||
* pci_device_id structure or %NULL if there is no match.
|
||||
*/
|
||||
const struct pci_device_id *pci_match_device(struct pci_driver *drv,
|
||||
struct pci_dev *dev)
|
||||
static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
|
||||
struct pci_dev *dev)
|
||||
{
|
||||
struct pci_dynid *dynid;
|
||||
|
||||
|
@ -559,7 +559,6 @@ static int __init pci_driver_init(void)
|
|||
postcore_initcall(pci_driver_init);
|
||||
|
||||
EXPORT_SYMBOL(pci_match_id);
|
||||
EXPORT_SYMBOL(pci_match_device);
|
||||
EXPORT_SYMBOL(__pci_register_driver);
|
||||
EXPORT_SYMBOL(pci_unregister_driver);
|
||||
EXPORT_SYMBOL(pci_dev_driver);
|
||||
|
|
|
@ -1621,12 +1621,8 @@ static void __init quirk_disable_all_msi(struct pci_dev *dev)
|
|||
printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n");
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RD580, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RX790, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS690, quirk_disable_all_msi);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
|
||||
|
||||
/* Disable MSI on chipsets that are known to not support it */
|
||||
|
@ -1678,6 +1674,9 @@ static void __devinit quirk_msi_ht_cap(struct pci_dev *dev)
|
|||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE,
|
||||
quirk_msi_ht_cap);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS,
|
||||
PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB,
|
||||
quirk_msi_ht_cap);
|
||||
|
||||
/* The nVidia CK804 chipset may have 2 HT MSI mappings.
|
||||
* MSI are supported if the MSI capability set in any of these mappings.
|
||||
|
@ -1705,4 +1704,48 @@ 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,
|
||||
quirk_nvidia_ck804_msi_ht_cap);
|
||||
|
||||
static void __devinit quirk_msi_intx_disable_bug(struct pci_dev *dev)
|
||||
{
|
||||
dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5780,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5780S,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5714,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5714S,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5715,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
||||
PCI_DEVICE_ID_TIGON3_5715S,
|
||||
quirk_msi_intx_disable_bug);
|
||||
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4395,
|
||||
quirk_msi_intx_disable_bug);
|
||||
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374,
|
||||
quirk_msi_intx_disable_bug);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
|
||||
quirk_msi_intx_disable_bug);
|
||||
|
||||
#endif /* CONFIG_PCI_MSI */
|
||||
|
|
|
@ -113,6 +113,8 @@ pci_find_next_bus(const struct pci_bus *from)
|
|||
return b;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
|
||||
/**
|
||||
* pci_find_slot - locate PCI device from a given PCI slot
|
||||
* @bus: number of PCI bus on which desired PCI device resides
|
||||
|
@ -137,6 +139,8 @@ pci_find_slot(unsigned int bus, unsigned int devfn)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
/**
|
||||
* pci_get_slot - locate PCI device for a given PCI slot
|
||||
* @bus: PCI bus on which desired PCI device resides
|
||||
|
@ -200,6 +204,7 @@ struct pci_dev * pci_get_bus_and_slot(unsigned int bus, unsigned int devfn)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
/**
|
||||
* pci_find_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id
|
||||
* @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids
|
||||
|
@ -278,6 +283,7 @@ pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev *
|
|||
{
|
||||
return pci_find_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from);
|
||||
}
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
/**
|
||||
* pci_get_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id
|
||||
|
@ -468,8 +474,11 @@ int pci_dev_present(const struct pci_device_id *ids)
|
|||
EXPORT_SYMBOL(pci_dev_present);
|
||||
EXPORT_SYMBOL(pci_find_present);
|
||||
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
EXPORT_SYMBOL(pci_find_device);
|
||||
EXPORT_SYMBOL(pci_find_slot);
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
/* For boot time work */
|
||||
EXPORT_SYMBOL(pci_find_bus);
|
||||
EXPORT_SYMBOL(pci_find_next_bus);
|
||||
|
|
|
@ -725,7 +725,7 @@ config SCSI_FD_MCS
|
|||
|
||||
config SCSI_GDTH
|
||||
tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support"
|
||||
depends on (ISA || EISA || PCI) && SCSI && ISA_DMA_API
|
||||
depends on (ISA || EISA || PCI) && SCSI && ISA_DMA_API && PCI_LEGACY
|
||||
---help---
|
||||
Formerly called GDT SCSI Disk Array Controller Support.
|
||||
|
||||
|
|
|
@ -1986,6 +1986,7 @@ static int pciserial_suspend_one(struct pci_dev *dev, pm_message_t state)
|
|||
|
||||
static int pciserial_resume_one(struct pci_dev *dev)
|
||||
{
|
||||
int err;
|
||||
struct serial_private *priv = pci_get_drvdata(dev);
|
||||
|
||||
pci_set_power_state(dev, PCI_D0);
|
||||
|
@ -1995,7 +1996,9 @@ static int pciserial_resume_one(struct pci_dev *dev)
|
|||
/*
|
||||
* The device may have been disabled. Re-enable it.
|
||||
*/
|
||||
pci_enable_device(dev);
|
||||
err = pci_enable_device(dev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
pciserial_resume_ports(priv);
|
||||
}
|
||||
|
|
|
@ -109,6 +109,14 @@ enum pcie_reset_state {
|
|||
pcie_hot_reset = (__force pcie_reset_state_t) 3
|
||||
};
|
||||
|
||||
typedef unsigned short __bitwise pci_dev_flags_t;
|
||||
enum pci_dev_flags {
|
||||
/* INTX_DISABLE in PCI_COMMAND register disables MSI
|
||||
* generation too.
|
||||
*/
|
||||
PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1,
|
||||
};
|
||||
|
||||
typedef unsigned short __bitwise pci_bus_flags_t;
|
||||
enum pci_bus_flags {
|
||||
PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1,
|
||||
|
@ -185,6 +193,7 @@ struct pci_dev {
|
|||
unsigned int msix_enabled:1;
|
||||
unsigned int is_managed:1;
|
||||
unsigned int is_pcie:1;
|
||||
pci_dev_flags_t dev_flags;
|
||||
atomic_t enable_cnt; /* pci_enable_device has been called */
|
||||
|
||||
u32 saved_config_space[16]; /* config space saved at suspend time */
|
||||
|
@ -479,8 +488,11 @@ extern void pci_sort_breadthfirst(void);
|
|||
|
||||
/* Generic PCI functions exported to card drivers */
|
||||
|
||||
#ifdef CONFIG_PCI_LEGACY
|
||||
struct pci_dev __deprecated *pci_find_device (unsigned int vendor, unsigned int device, const struct pci_dev *from);
|
||||
struct pci_dev __deprecated *pci_find_slot (unsigned int bus, unsigned int devfn);
|
||||
#endif /* CONFIG_PCI_LEGACY */
|
||||
|
||||
int pci_find_capability (struct pci_dev *dev, int cap);
|
||||
int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap);
|
||||
int pci_find_ext_capability (struct pci_dev *dev, int cap);
|
||||
|
@ -622,7 +634,6 @@ static inline int __must_check pci_register_driver(struct pci_driver *driver)
|
|||
void pci_unregister_driver(struct pci_driver *);
|
||||
void pci_remove_behind_bridge(struct pci_dev *);
|
||||
struct pci_driver *pci_dev_driver(const struct pci_dev *);
|
||||
const struct pci_device_id *pci_match_device(struct pci_driver *drv, struct pci_dev *dev);
|
||||
const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev);
|
||||
int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass);
|
||||
|
||||
|
@ -751,7 +762,6 @@ static inline void pci_unregister_driver(struct pci_driver *drv) { }
|
|||
static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; }
|
||||
static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; }
|
||||
static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; }
|
||||
static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; }
|
||||
|
||||
/* Power management related routines */
|
||||
static inline int pci_save_state(struct pci_dev *dev) { return 0; }
|
||||
|
|
|
@ -360,9 +360,6 @@
|
|||
#define PCI_DEVICE_ID_ATI_RS400_166 0x5a32
|
||||
#define PCI_DEVICE_ID_ATI_RS400_200 0x5a33
|
||||
#define PCI_DEVICE_ID_ATI_RS480 0x5950
|
||||
#define PCI_DEVICE_ID_ATI_RD580 0x5952
|
||||
#define PCI_DEVICE_ID_ATI_RX790 0x5957
|
||||
#define PCI_DEVICE_ID_ATI_RS690 0x7910
|
||||
/* ATI IXP Chipset */
|
||||
#define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349
|
||||
#define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353
|
||||
|
@ -1436,8 +1433,8 @@
|
|||
#define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB 0x0036
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX 0x0104
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200
|
||||
#define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201
|
||||
|
|
Loading…
Reference in New Issue