浏览代码

PCI: Add Kconfig option to disable deprecated pci_find_* API

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Jeff Garzik 17 年之前
父节点
当前提交
bd3989e006

+ 9 - 9
drivers/isdn/hisax/Kconfig

@@ -109,7 +109,7 @@ config HISAX_16_3
 
 
 config HISAX_TELESPCI
 config HISAX_TELESPCI
 	bool "Teles PCI"
 	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
 	help
 	  This enables HiSax support for the Teles PCI.
 	  This enables HiSax support for the Teles PCI.
 	  See <file:Documentation/isdn/README.HiSax> on how to configure it.
 	  See <file:Documentation/isdn/README.HiSax> on how to configure it.
@@ -237,7 +237,7 @@ config HISAX_MIC
 
 
 config HISAX_NETJET
 config HISAX_NETJET
 	bool "NETjet card"
 	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
 	help
 	  This enables HiSax support for the NetJet from Traverse
 	  This enables HiSax support for the NetJet from Traverse
 	  Technologies.
 	  Technologies.
@@ -248,7 +248,7 @@ config HISAX_NETJET
 
 
 config HISAX_NETJET_U
 config HISAX_NETJET_U
 	bool "NETspider U card"
 	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
 	help
 	  This enables HiSax support for the Netspider U interface ISDN card
 	  This enables HiSax support for the Netspider U interface ISDN card
 	  from Traverse Technologies.
 	  from Traverse Technologies.
@@ -287,7 +287,7 @@ config HISAX_HSTSAPHIR
 
 
 config HISAX_BKM_A4T
 config HISAX_BKM_A4T
 	bool "Telekom A4T card"
 	bool "Telekom A4T card"
-	depends on PCI
+	depends on PCI && PCI_LEGACY
 	help
 	help
 	  This enables HiSax support for the Telekom A4T card.
 	  This enables HiSax support for the Telekom A4T card.
 
 
@@ -297,7 +297,7 @@ config HISAX_BKM_A4T
 
 
 config HISAX_SCT_QUADRO
 config HISAX_SCT_QUADRO
 	bool "Scitel Quadro card"
 	bool "Scitel Quadro card"
-	depends on PCI
+	depends on PCI && PCI_LEGACY
 	help
 	help
 	  This enables HiSax support for the Scitel Quadro card.
 	  This enables HiSax support for the Scitel Quadro card.
 
 
@@ -316,7 +316,7 @@ config HISAX_GAZEL
 
 
 config HISAX_HFC_PCI
 config HISAX_HFC_PCI
 	bool "HFC PCI-Bus cards"
 	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
 	help
 	  This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
 	  This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
 
 
@@ -325,7 +325,7 @@ config HISAX_HFC_PCI
 
 
 config HISAX_W6692
 config HISAX_W6692
 	bool "Winbond W6692 based cards"
 	bool "Winbond W6692 based cards"
-	depends on PCI
+	depends on PCI && PCI_LEGACY
 	help
 	help
 	  This enables HiSax support for Winbond W6692 based PCI ISDN cards.
 	  This enables HiSax support for Winbond W6692 based PCI ISDN cards.
 
 
@@ -341,7 +341,7 @@ config HISAX_HFC_SX
 
 
 config HISAX_ENTERNOW_PCI
 config HISAX_ENTERNOW_PCI
 	bool "Formula-n enter:now PCI card"
 	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
 	help
 	  This enables HiSax support for the Formula-n enter:now PCI
 	  This enables HiSax support for the Formula-n enter:now PCI
 	  ISDN card.
 	  ISDN card.
@@ -411,7 +411,7 @@ config HISAX_HFC4S8S
 
 
 config HISAX_FRITZ_PCIPNP
 config HISAX_FRITZ_PCIPNP
 	tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)"
 	tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)"
-	depends on PCI && EXPERIMENTAL
+	depends on PCI && PCI_LEGACY && EXPERIMENTAL
 	help
 	help
 	  This enables the driver for the AVM Fritz!Card PCI,
 	  This enables the driver for the AVM Fritz!Card PCI,
 	  Fritz!Card PCI v2 and Fritz!Card PnP.
 	  Fritz!Card PCI v2 and Fritz!Card PnP.

+ 2 - 2
drivers/isdn/hisax/avm_pci.c

@@ -830,7 +830,7 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs)
 
 
 #endif /* __ISAPNP__ */
 #endif /* __ISAPNP__ */
 
 
-#ifndef CONFIG_PCI
+#ifndef CONFIG_PCI_LEGACY
 
 
 static int __devinit avm_pci_setup(struct IsdnCardState *cs)
 static int __devinit avm_pci_setup(struct IsdnCardState *cs)
 {
 {
@@ -872,7 +872,7 @@ static int __devinit avm_pci_setup(struct IsdnCardState *cs)
 	return (1);
 	return (1);
 }
 }
 
 
-#endif /* CONFIG_PCI */
+#endif /* CONFIG_PCI_LEGACY */
 
 
 int __devinit
 int __devinit
 setup_avm_pcipnp(struct IsdnCard *card)
 setup_avm_pcipnp(struct IsdnCard *card)

+ 3 - 3
drivers/isdn/hisax/diva.c

@@ -1148,7 +1148,7 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card)
 
 
 #endif	/* ISAPNP */
 #endif	/* ISAPNP */
 
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_PCI_LEGACY
 static struct pci_dev *dev_diva __devinitdata = NULL;
 static struct pci_dev *dev_diva __devinitdata = NULL;
 static struct pci_dev *dev_diva_u __devinitdata = NULL;
 static struct pci_dev *dev_diva_u __devinitdata = NULL;
 static struct pci_dev *dev_diva201 __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 */
 	return (1);		/* card found */
 }
 }
 
 
-#else	/* if !CONFIG_PCI */
+#else	/* if !CONFIG_PCI_LEGACY */
 
 
 static int __devinit setup_diva_pci(struct IsdnCard *card)
 static int __devinit setup_diva_pci(struct IsdnCard *card)
 {
 {
 	return (-1);	/* card not found; continue search */
 	return (-1);	/* card not found; continue search */
 }
 }
 
 
-#endif	/* CONFIG_PCI */
+#endif	/* CONFIG_PCI_LEGACY */
 
 
 int __devinit
 int __devinit
 setup_diva(struct IsdnCard *card)
 setup_diva(struct IsdnCard *card)

+ 2 - 2
drivers/isdn/hisax/elsa.c

@@ -1025,7 +1025,7 @@ setup_elsa_pcmcia(struct IsdnCard *card)
 	       cs->irq);
 	       cs->irq);
 }
 }
 
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_PCI_LEGACY
 static 	struct pci_dev *dev_qs1000 __devinitdata = NULL;
 static 	struct pci_dev *dev_qs1000 __devinitdata = NULL;
 static 	struct pci_dev *dev_qs3000 __devinitdata = NULL;
 static 	struct pci_dev *dev_qs3000 __devinitdata = NULL;
 
 
@@ -1093,7 +1093,7 @@ setup_elsa_pci(struct IsdnCard *card)
 {
 {
 	return (1);
 	return (1);
 }
 }
-#endif /* CONFIG_PCI */
+#endif /* CONFIG_PCI_LEGACY */
 
 
 static int __devinit
 static int __devinit
 setup_elsa_common(struct IsdnCard *card)
 setup_elsa_common(struct IsdnCard *card)

+ 3 - 1
drivers/isdn/hisax/gazel.c

@@ -532,6 +532,7 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs)
 	return (0);
 	return (0);
 }
 }
 
 
+#ifdef CONFIG_PCI_LEGACY
 static struct pci_dev *dev_tel __devinitdata = NULL;
 static struct pci_dev *dev_tel __devinitdata = NULL;
 
 
 static int __devinit
 static int __devinit
@@ -620,6 +621,7 @@ setup_gazelpci(struct IsdnCardState *cs)
 
 
 	return (0);
 	return (0);
 }
 }
+#endif /* CONFIG_PCI_LEGACY */
 
 
 int __devinit
 int __devinit
 setup_gazel(struct IsdnCard *card)
 setup_gazel(struct IsdnCard *card)
@@ -639,7 +641,7 @@ setup_gazel(struct IsdnCard *card)
 			return (0);
 			return (0);
 	} else {
 	} else {
 
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_PCI_LEGACY
 		if (setup_gazelpci(cs))
 		if (setup_gazelpci(cs))
 			return (0);
 			return (0);
 #else
 #else

+ 4 - 3
drivers/isdn/hisax/niccy.c

@@ -223,7 +223,6 @@ static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg)
 	return 0;
 	return 0;
 }
 }
 
 
-static struct pci_dev *niccy_dev __devinitdata = NULL;
 #ifdef __ISAPNP__
 #ifdef __ISAPNP__
 static struct pnp_card *pnp_c __devinitdata = NULL;
 static struct pnp_card *pnp_c __devinitdata = NULL;
 #endif
 #endif
@@ -299,7 +298,9 @@ int __devinit setup_niccy(struct IsdnCard *card)
 			return 0;
 			return 0;
 		}
 		}
 	} else {
 	} else {
-#ifdef CONFIG_PCI
+#ifdef CONFIG_PCI_LEGACY
+		static struct pci_dev *niccy_dev __devinitdata;
+
 		u_int pci_ioaddr;
 		u_int pci_ioaddr;
 		cs->subtyp = 0;
 		cs->subtyp = 0;
 		if ((niccy_dev = pci_find_device(PCI_VENDOR_ID_SATSAGEM,
 		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: io0 0 and NO_PCI_BIOS\n");
 		printk(KERN_WARNING "Niccy: unable to config NICCY PCI\n");
 		printk(KERN_WARNING "Niccy: unable to config NICCY PCI\n");
 		return 0;
 		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",
 	printk(KERN_INFO "HiSax: %s %s config irq:%d data:0x%X ale:0x%X\n",
 		CardType[cs->typ], (cs->subtyp == 1) ? "PnP" : "PCI",
 		CardType[cs->typ], (cs->subtyp == 1) ? "PnP" : "PCI",

+ 2 - 2
drivers/isdn/hisax/sedlbauer.c

@@ -600,7 +600,7 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt)
 }
 }
 #endif /* __ISAPNP__ */
 #endif /* __ISAPNP__ */
 
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_PCI_LEGACY
 static struct pci_dev *dev_sedl __devinitdata = NULL;
 static struct pci_dev *dev_sedl __devinitdata = NULL;
 
 
 static int __devinit
 static int __devinit
@@ -675,7 +675,7 @@ setup_sedlbauer_pci(struct IsdnCard *card)
 	return (1);
 	return (1);
 }
 }
 
 
-#endif /* CONFIG_PCI */
+#endif /* CONFIG_PCI_LEGACY */
 
 
 int __devinit
 int __devinit
 setup_sedlbauer(struct IsdnCard *card)
 setup_sedlbauer(struct IsdnCard *card)

+ 11 - 0
drivers/pci/Kconfig

@@ -21,6 +21,17 @@ config PCI_MSI
 
 
 	   If you don't know what to do here, say N.
 	   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
 config PCI_DEBUG
 	bool "PCI Debugging"
 	bool "PCI Debugging"
 	depends on PCI && DEBUG_KERNEL
 	depends on PCI && DEBUG_KERNEL

+ 3 - 3
drivers/pci/hotplug/Kconfig

@@ -41,7 +41,7 @@ config HOTPLUG_PCI_FAKE
 
 
 config HOTPLUG_PCI_COMPAQ
 config HOTPLUG_PCI_COMPAQ
 	tristate "Compaq PCI Hotplug driver"
 	tristate "Compaq PCI Hotplug driver"
-	depends on X86 && PCI_BIOS
+	depends on X86 && PCI_BIOS && PCI_LEGACY
 	help
 	help
 	  Say Y here if you have a motherboard with a Compaq PCI Hotplug
 	  Say Y here if you have a motherboard with a Compaq PCI Hotplug
 	  controller.
 	  controller.
@@ -63,7 +63,7 @@ config HOTPLUG_PCI_COMPAQ_NVRAM
 
 
 config HOTPLUG_PCI_IBM
 config HOTPLUG_PCI_IBM
 	tristate "IBM PCI Hotplug driver"
 	tristate "IBM PCI Hotplug driver"
-	depends on X86_IO_APIC && X86 && PCI_BIOS
+	depends on X86_IO_APIC && X86 && PCI_BIOS && PCI_LEGACY
 	help
 	help
 	  Say Y here if you have a motherboard with a IBM PCI Hotplug
 	  Say Y here if you have a motherboard with a IBM PCI Hotplug
 	  controller.
 	  controller.
@@ -119,7 +119,7 @@ config HOTPLUG_PCI_CPCI_ZT5550
 
 
 config HOTPLUG_PCI_CPCI_GENERIC
 config HOTPLUG_PCI_CPCI_GENERIC
 	tristate "Generic port I/O CompactPCI Hotplug driver"
 	tristate "Generic port I/O CompactPCI Hotplug driver"
-	depends on HOTPLUG_PCI_CPCI && X86
+	depends on HOTPLUG_PCI_CPCI && X86 && PCI_LEGACY
 	help
 	help
 	  Say Y here if you have a CompactPCI system card that exposes the #ENUM
 	  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
 	  hotswap signal as a bit in a system register that can be read through

+ 9 - 0
drivers/pci/search.c

@@ -113,6 +113,8 @@ pci_find_next_bus(const struct pci_bus *from)
 	return b;
 	return b;
 }
 }
 
 
+#ifdef CONFIG_PCI_LEGACY
+
 /**
 /**
  * pci_find_slot - locate PCI device from a given PCI slot
  * pci_find_slot - locate PCI device from a given PCI slot
  * @bus: number of PCI bus on which desired PCI device resides
  * @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;
 	return NULL;
 }
 }
 
 
+#endif /* CONFIG_PCI_LEGACY */
+
 /**
 /**
  * pci_get_slot - locate PCI device for a given PCI slot
  * pci_get_slot - locate PCI device for a given PCI slot
  * @bus: PCI bus on which desired PCI device resides
  * @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;
 	return NULL;
 }
 }
 
 
+#ifdef CONFIG_PCI_LEGACY
 /**
 /**
  * pci_find_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id
  * 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
  * @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);
 	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
  * 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_dev_present);
 EXPORT_SYMBOL(pci_find_present);
 EXPORT_SYMBOL(pci_find_present);
 
 
+#ifdef CONFIG_PCI_LEGACY
 EXPORT_SYMBOL(pci_find_device);
 EXPORT_SYMBOL(pci_find_device);
 EXPORT_SYMBOL(pci_find_slot);
 EXPORT_SYMBOL(pci_find_slot);
+#endif /* CONFIG_PCI_LEGACY */
+
 /* For boot time work */
 /* For boot time work */
 EXPORT_SYMBOL(pci_find_bus);
 EXPORT_SYMBOL(pci_find_bus);
 EXPORT_SYMBOL(pci_find_next_bus);
 EXPORT_SYMBOL(pci_find_next_bus);

+ 1 - 1
drivers/scsi/Kconfig

@@ -725,7 +725,7 @@ config SCSI_FD_MCS
 
 
 config SCSI_GDTH
 config SCSI_GDTH
 	tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support"
 	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---
 	---help---
 	  Formerly called GDT SCSI Disk Array Controller Support.
 	  Formerly called GDT SCSI Disk Array Controller Support.
 
 

+ 3 - 0
include/linux/pci.h

@@ -488,8 +488,11 @@ extern void pci_sort_breadthfirst(void);
 
 
 /* Generic PCI functions exported to card drivers */
 /* 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_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);
 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_capability (struct pci_dev *dev, int cap);
 int pci_find_next_capability (struct pci_dev *dev, u8 pos, 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);
 int pci_find_ext_capability (struct pci_dev *dev, int cap);