diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-05 17:08:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-05 17:08:00 -0500 |
commit | 5d66f151ac7cb5162f201fe2996c6e01f0323f37 (patch) | |
tree | 76b1ee15cb999a436b394b70a207dd47c0140ad6 /drivers | |
parent | 3131e530ac3faf09fb0878a9dc4cd6df0e35b6a3 (diff) | |
parent | bd3989e006ed1c88d47c3308746ae0330fc1bcf4 (diff) |
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"
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/isdn/hisax/Kconfig | 18 | ||||
-rw-r--r-- | drivers/isdn/hisax/avm_pci.c | 4 | ||||
-rw-r--r-- | drivers/isdn/hisax/diva.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/elsa.c | 4 | ||||
-rw-r--r-- | drivers/isdn/hisax/gazel.c | 4 | ||||
-rw-r--r-- | drivers/isdn/hisax/niccy.c | 7 | ||||
-rw-r--r-- | drivers/isdn/hisax/sedlbauer.c | 4 | ||||
-rw-r--r-- | drivers/net/tg3.c | 9 | ||||
-rw-r--r-- | drivers/pci/Kconfig | 11 | ||||
-rw-r--r-- | drivers/pci/hotplug/Kconfig | 6 | ||||
-rw-r--r-- | drivers/pci/hotplug/cpqphp_ctrl.c | 16 | ||||
-rw-r--r-- | drivers/pci/msi.c | 18 | ||||
-rw-r--r-- | drivers/pci/pci-driver.c | 5 | ||||
-rw-r--r-- | drivers/pci/quirks.c | 51 | ||||
-rw-r--r-- | drivers/pci/search.c | 9 | ||||
-rw-r--r-- | drivers/scsi/Kconfig | 2 | ||||
-rw-r--r-- | drivers/serial/8250_pci.c | 5 |
17 files changed, 121 insertions, 58 deletions
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig index a3b945ac3256..7832d8ba8e44 100644 --- a/drivers/isdn/hisax/Kconfig +++ b/drivers/isdn/hisax/Kconfig | |||
@@ -109,7 +109,7 @@ config HISAX_16_3 | |||
109 | 109 | ||
110 | config HISAX_TELESPCI | 110 | config HISAX_TELESPCI |
111 | bool "Teles PCI" | 111 | bool "Teles PCI" |
112 | depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) | 112 | depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) |
113 | help | 113 | help |
114 | This enables HiSax support for the Teles PCI. | 114 | This enables HiSax support for the Teles PCI. |
115 | See <file:Documentation/isdn/README.HiSax> on how to configure it. | 115 | See <file:Documentation/isdn/README.HiSax> on how to configure it. |
@@ -237,7 +237,7 @@ config HISAX_MIC | |||
237 | 237 | ||
238 | config HISAX_NETJET | 238 | config HISAX_NETJET |
239 | bool "NETjet card" | 239 | bool "NETjet card" |
240 | depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) | 240 | depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) |
241 | help | 241 | help |
242 | This enables HiSax support for the NetJet from Traverse | 242 | This enables HiSax support for the NetJet from Traverse |
243 | Technologies. | 243 | Technologies. |
@@ -248,7 +248,7 @@ config HISAX_NETJET | |||
248 | 248 | ||
249 | config HISAX_NETJET_U | 249 | config HISAX_NETJET_U |
250 | bool "NETspider U card" | 250 | bool "NETspider U card" |
251 | depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) | 251 | depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) |
252 | help | 252 | help |
253 | This enables HiSax support for the Netspider U interface ISDN card | 253 | This enables HiSax support for the Netspider U interface ISDN card |
254 | from Traverse Technologies. | 254 | from Traverse Technologies. |
@@ -287,7 +287,7 @@ config HISAX_HSTSAPHIR | |||
287 | 287 | ||
288 | config HISAX_BKM_A4T | 288 | config HISAX_BKM_A4T |
289 | bool "Telekom A4T card" | 289 | bool "Telekom A4T card" |
290 | depends on PCI | 290 | depends on PCI && PCI_LEGACY |
291 | help | 291 | help |
292 | This enables HiSax support for the Telekom A4T card. | 292 | This enables HiSax support for the Telekom A4T card. |
293 | 293 | ||
@@ -297,7 +297,7 @@ config HISAX_BKM_A4T | |||
297 | 297 | ||
298 | config HISAX_SCT_QUADRO | 298 | config HISAX_SCT_QUADRO |
299 | bool "Scitel Quadro card" | 299 | bool "Scitel Quadro card" |
300 | depends on PCI | 300 | depends on PCI && PCI_LEGACY |
301 | help | 301 | help |
302 | This enables HiSax support for the Scitel Quadro card. | 302 | This enables HiSax support for the Scitel Quadro card. |
303 | 303 | ||
@@ -316,7 +316,7 @@ config HISAX_GAZEL | |||
316 | 316 | ||
317 | config HISAX_HFC_PCI | 317 | config HISAX_HFC_PCI |
318 | bool "HFC PCI-Bus cards" | 318 | bool "HFC PCI-Bus cards" |
319 | depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) | 319 | depends on PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) |
320 | help | 320 | help |
321 | This enables HiSax support for the HFC-S PCI 2BDS0 based cards. | 321 | This enables HiSax support for the HFC-S PCI 2BDS0 based cards. |
322 | 322 | ||
@@ -325,7 +325,7 @@ config HISAX_HFC_PCI | |||
325 | 325 | ||
326 | config HISAX_W6692 | 326 | config HISAX_W6692 |
327 | bool "Winbond W6692 based cards" | 327 | bool "Winbond W6692 based cards" |
328 | depends on PCI | 328 | depends on PCI && PCI_LEGACY |
329 | help | 329 | help |
330 | This enables HiSax support for Winbond W6692 based PCI ISDN cards. | 330 | This enables HiSax support for Winbond W6692 based PCI ISDN cards. |
331 | 331 | ||
@@ -341,7 +341,7 @@ config HISAX_HFC_SX | |||
341 | 341 | ||
342 | config HISAX_ENTERNOW_PCI | 342 | config HISAX_ENTERNOW_PCI |
343 | bool "Formula-n enter:now PCI card" | 343 | bool "Formula-n enter:now PCI card" |
344 | depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) | 344 | depends on HISAX_NETJET && PCI && PCI_LEGACY && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV)) |
345 | help | 345 | help |
346 | This enables HiSax support for the Formula-n enter:now PCI | 346 | This enables HiSax support for the Formula-n enter:now PCI |
347 | ISDN card. | 347 | ISDN card. |
@@ -411,7 +411,7 @@ config HISAX_HFC4S8S | |||
411 | 411 | ||
412 | config HISAX_FRITZ_PCIPNP | 412 | config HISAX_FRITZ_PCIPNP |
413 | tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)" | 413 | tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)" |
414 | depends on PCI && EXPERIMENTAL | 414 | depends on PCI && PCI_LEGACY && EXPERIMENTAL |
415 | help | 415 | help |
416 | This enables the driver for the AVM Fritz!Card PCI, | 416 | This enables the driver for the AVM Fritz!Card PCI, |
417 | Fritz!Card PCI v2 and Fritz!Card PnP. | 417 | Fritz!Card PCI v2 and Fritz!Card PnP. |
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c index f8b79783c8b3..035d158779df 100644 --- a/drivers/isdn/hisax/avm_pci.c +++ b/drivers/isdn/hisax/avm_pci.c | |||
@@ -830,7 +830,7 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs) | |||
830 | 830 | ||
831 | #endif /* __ISAPNP__ */ | 831 | #endif /* __ISAPNP__ */ |
832 | 832 | ||
833 | #ifndef CONFIG_PCI | 833 | #ifndef CONFIG_PCI_LEGACY |
834 | 834 | ||
835 | static int __devinit avm_pci_setup(struct IsdnCardState *cs) | 835 | static int __devinit avm_pci_setup(struct IsdnCardState *cs) |
836 | { | 836 | { |
@@ -872,7 +872,7 @@ static int __devinit avm_pci_setup(struct IsdnCardState *cs) | |||
872 | return (1); | 872 | return (1); |
873 | } | 873 | } |
874 | 874 | ||
875 | #endif /* CONFIG_PCI */ | 875 | #endif /* CONFIG_PCI_LEGACY */ |
876 | 876 | ||
877 | int __devinit | 877 | int __devinit |
878 | setup_avm_pcipnp(struct IsdnCard *card) | 878 | setup_avm_pcipnp(struct IsdnCard *card) |
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c index 826745078746..2d670856d141 100644 --- a/drivers/isdn/hisax/diva.c +++ b/drivers/isdn/hisax/diva.c | |||
@@ -1148,7 +1148,7 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card) | |||
1148 | 1148 | ||
1149 | #endif /* ISAPNP */ | 1149 | #endif /* ISAPNP */ |
1150 | 1150 | ||
1151 | #ifdef CONFIG_PCI | 1151 | #ifdef CONFIG_PCI_LEGACY |
1152 | static struct pci_dev *dev_diva __devinitdata = NULL; | 1152 | static struct pci_dev *dev_diva __devinitdata = NULL; |
1153 | static struct pci_dev *dev_diva_u __devinitdata = NULL; | 1153 | static struct pci_dev *dev_diva_u __devinitdata = NULL; |
1154 | static struct pci_dev *dev_diva201 __devinitdata = NULL; | 1154 | static struct pci_dev *dev_diva201 __devinitdata = NULL; |
@@ -1229,14 +1229,14 @@ static int __devinit setup_diva_pci(struct IsdnCard *card) | |||
1229 | return (1); /* card found */ | 1229 | return (1); /* card found */ |
1230 | } | 1230 | } |
1231 | 1231 | ||
1232 | #else /* if !CONFIG_PCI */ | 1232 | #else /* if !CONFIG_PCI_LEGACY */ |
1233 | 1233 | ||
1234 | static int __devinit setup_diva_pci(struct IsdnCard *card) | 1234 | static int __devinit setup_diva_pci(struct IsdnCard *card) |
1235 | { | 1235 | { |
1236 | return (-1); /* card not found; continue search */ | 1236 | return (-1); /* card not found; continue search */ |
1237 | } | 1237 | } |
1238 | 1238 | ||
1239 | #endif /* CONFIG_PCI */ | 1239 | #endif /* CONFIG_PCI_LEGACY */ |
1240 | 1240 | ||
1241 | int __devinit | 1241 | int __devinit |
1242 | setup_diva(struct IsdnCard *card) | 1242 | setup_diva(struct IsdnCard *card) |
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c index 948a9b290fd1..2b2677ba0230 100644 --- a/drivers/isdn/hisax/elsa.c +++ b/drivers/isdn/hisax/elsa.c | |||
@@ -1025,7 +1025,7 @@ setup_elsa_pcmcia(struct IsdnCard *card) | |||
1025 | cs->irq); | 1025 | cs->irq); |
1026 | } | 1026 | } |
1027 | 1027 | ||
1028 | #ifdef CONFIG_PCI | 1028 | #ifdef CONFIG_PCI_LEGACY |
1029 | static struct pci_dev *dev_qs1000 __devinitdata = NULL; | 1029 | static struct pci_dev *dev_qs1000 __devinitdata = NULL; |
1030 | static struct pci_dev *dev_qs3000 __devinitdata = NULL; | 1030 | static struct pci_dev *dev_qs3000 __devinitdata = NULL; |
1031 | 1031 | ||
@@ -1093,7 +1093,7 @@ setup_elsa_pci(struct IsdnCard *card) | |||
1093 | { | 1093 | { |
1094 | return (1); | 1094 | return (1); |
1095 | } | 1095 | } |
1096 | #endif /* CONFIG_PCI */ | 1096 | #endif /* CONFIG_PCI_LEGACY */ |
1097 | 1097 | ||
1098 | static int __devinit | 1098 | static int __devinit |
1099 | setup_elsa_common(struct IsdnCard *card) | 1099 | setup_elsa_common(struct IsdnCard *card) |
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c index 3efa719b6d29..f66620ad8e7c 100644 --- a/drivers/isdn/hisax/gazel.c +++ b/drivers/isdn/hisax/gazel.c | |||
@@ -532,6 +532,7 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs) | |||
532 | return (0); | 532 | return (0); |
533 | } | 533 | } |
534 | 534 | ||
535 | #ifdef CONFIG_PCI_LEGACY | ||
535 | static struct pci_dev *dev_tel __devinitdata = NULL; | 536 | static struct pci_dev *dev_tel __devinitdata = NULL; |
536 | 537 | ||
537 | static int __devinit | 538 | static int __devinit |
@@ -620,6 +621,7 @@ setup_gazelpci(struct IsdnCardState *cs) | |||
620 | 621 | ||
621 | return (0); | 622 | return (0); |
622 | } | 623 | } |
624 | #endif /* CONFIG_PCI_LEGACY */ | ||
623 | 625 | ||
624 | int __devinit | 626 | int __devinit |
625 | setup_gazel(struct IsdnCard *card) | 627 | setup_gazel(struct IsdnCard *card) |
@@ -639,7 +641,7 @@ setup_gazel(struct IsdnCard *card) | |||
639 | return (0); | 641 | return (0); |
640 | } else { | 642 | } else { |
641 | 643 | ||
642 | #ifdef CONFIG_PCI | 644 | #ifdef CONFIG_PCI_LEGACY |
643 | if (setup_gazelpci(cs)) | 645 | if (setup_gazelpci(cs)) |
644 | return (0); | 646 | return (0); |
645 | #else | 647 | #else |
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c index e5918c6fe73d..bd9921128aa8 100644 --- a/drivers/isdn/hisax/niccy.c +++ b/drivers/isdn/hisax/niccy.c | |||
@@ -223,7 +223,6 @@ static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
223 | return 0; | 223 | return 0; |
224 | } | 224 | } |
225 | 225 | ||
226 | static struct pci_dev *niccy_dev __devinitdata = NULL; | ||
227 | #ifdef __ISAPNP__ | 226 | #ifdef __ISAPNP__ |
228 | static struct pnp_card *pnp_c __devinitdata = NULL; | 227 | static struct pnp_card *pnp_c __devinitdata = NULL; |
229 | #endif | 228 | #endif |
@@ -299,7 +298,9 @@ int __devinit setup_niccy(struct IsdnCard *card) | |||
299 | return 0; | 298 | return 0; |
300 | } | 299 | } |
301 | } else { | 300 | } else { |
302 | #ifdef CONFIG_PCI | 301 | #ifdef CONFIG_PCI_LEGACY |
302 | static struct pci_dev *niccy_dev __devinitdata; | ||
303 | |||
303 | u_int pci_ioaddr; | 304 | u_int pci_ioaddr; |
304 | cs->subtyp = 0; | 305 | cs->subtyp = 0; |
305 | if ((niccy_dev = pci_find_device(PCI_VENDOR_ID_SATSAGEM, | 306 | if ((niccy_dev = pci_find_device(PCI_VENDOR_ID_SATSAGEM, |
@@ -356,7 +357,7 @@ int __devinit setup_niccy(struct IsdnCard *card) | |||
356 | printk(KERN_WARNING "Niccy: io0 0 and NO_PCI_BIOS\n"); | 357 | printk(KERN_WARNING "Niccy: io0 0 and NO_PCI_BIOS\n"); |
357 | printk(KERN_WARNING "Niccy: unable to config NICCY PCI\n"); | 358 | printk(KERN_WARNING "Niccy: unable to config NICCY PCI\n"); |
358 | return 0; | 359 | return 0; |
359 | #endif /* CONFIG_PCI */ | 360 | #endif /* CONFIG_PCI_LEGACY */ |
360 | } | 361 | } |
361 | printk(KERN_INFO "HiSax: %s %s config irq:%d data:0x%X ale:0x%X\n", | 362 | printk(KERN_INFO "HiSax: %s %s config irq:%d data:0x%X ale:0x%X\n", |
362 | CardType[cs->typ], (cs->subtyp == 1) ? "PnP" : "PCI", | 363 | CardType[cs->typ], (cs->subtyp == 1) ? "PnP" : "PCI", |
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c index 03dfc32166a0..95425f3d2220 100644 --- a/drivers/isdn/hisax/sedlbauer.c +++ b/drivers/isdn/hisax/sedlbauer.c | |||
@@ -600,7 +600,7 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) | |||
600 | } | 600 | } |
601 | #endif /* __ISAPNP__ */ | 601 | #endif /* __ISAPNP__ */ |
602 | 602 | ||
603 | #ifdef CONFIG_PCI | 603 | #ifdef CONFIG_PCI_LEGACY |
604 | static struct pci_dev *dev_sedl __devinitdata = NULL; | 604 | static struct pci_dev *dev_sedl __devinitdata = NULL; |
605 | 605 | ||
606 | static int __devinit | 606 | static int __devinit |
@@ -675,7 +675,7 @@ setup_sedlbauer_pci(struct IsdnCard *card) | |||
675 | return (1); | 675 | return (1); |
676 | } | 676 | } |
677 | 677 | ||
678 | #endif /* CONFIG_PCI */ | 678 | #endif /* CONFIG_PCI_LEGACY */ |
679 | 679 | ||
680 | int __devinit | 680 | int __devinit |
681 | setup_sedlbauer(struct IsdnCard *card) | 681 | setup_sedlbauer(struct IsdnCard *card) |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 09440d783e65..cad519910767 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -7365,10 +7365,6 @@ static int tg3_open(struct net_device *dev) | |||
7365 | } else if (pci_enable_msi(tp->pdev) == 0) { | 7365 | } else if (pci_enable_msi(tp->pdev) == 0) { |
7366 | u32 msi_mode; | 7366 | u32 msi_mode; |
7367 | 7367 | ||
7368 | /* Hardware bug - MSI won't work if INTX disabled. */ | ||
7369 | if (tp->tg3_flags2 & TG3_FLG2_5780_CLASS) | ||
7370 | pci_intx(tp->pdev, 1); | ||
7371 | |||
7372 | msi_mode = tr32(MSGINT_MODE); | 7368 | msi_mode = tr32(MSGINT_MODE); |
7373 | tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE); | 7369 | tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE); |
7374 | tp->tg3_flags2 |= TG3_FLG2_USING_MSI; | 7370 | tp->tg3_flags2 |= TG3_FLG2_USING_MSI; |
@@ -12681,11 +12677,6 @@ static int tg3_resume(struct pci_dev *pdev) | |||
12681 | if (err) | 12677 | if (err) |
12682 | return err; | 12678 | return err; |
12683 | 12679 | ||
12684 | /* Hardware bug - MSI won't work if INTX disabled. */ | ||
12685 | if ((tp->tg3_flags2 & TG3_FLG2_5780_CLASS) && | ||
12686 | (tp->tg3_flags2 & TG3_FLG2_USING_MSI)) | ||
12687 | pci_intx(tp->pdev, 1); | ||
12688 | |||
12689 | netif_device_attach(dev); | 12680 | netif_device_attach(dev); |
12690 | 12681 | ||
12691 | tg3_full_lock(tp, 0); | 12682 | tg3_full_lock(tp, 0); |
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 7a1d6d512837..e1ca42591ac4 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig | |||
@@ -21,6 +21,17 @@ config PCI_MSI | |||
21 | 21 | ||
22 | If you don't know what to do here, say N. | 22 | If you don't know what to do here, say N. |
23 | 23 | ||
24 | config PCI_LEGACY | ||
25 | bool "Enable deprecated pci_find_* API" | ||
26 | depends on PCI | ||
27 | default y | ||
28 | help | ||
29 | Say Y here if you want to include support for the deprecated | ||
30 | pci_find_slot() and pci_find_device() APIs. Most drivers have | ||
31 | been converted over to using the proper hotplug APIs, so this | ||
32 | option serves to include/exclude only a few drivers that are | ||
33 | still using this API. | ||
34 | |||
24 | config PCI_DEBUG | 35 | config PCI_DEBUG |
25 | bool "PCI Debugging" | 36 | bool "PCI Debugging" |
26 | depends on PCI && DEBUG_KERNEL | 37 | depends on PCI && DEBUG_KERNEL |
diff --git a/drivers/pci/hotplug/Kconfig b/drivers/pci/hotplug/Kconfig index 63d62752fb91..a64449d489d6 100644 --- a/drivers/pci/hotplug/Kconfig +++ b/drivers/pci/hotplug/Kconfig | |||
@@ -41,7 +41,7 @@ config HOTPLUG_PCI_FAKE | |||
41 | 41 | ||
42 | config HOTPLUG_PCI_COMPAQ | 42 | config HOTPLUG_PCI_COMPAQ |
43 | tristate "Compaq PCI Hotplug driver" | 43 | tristate "Compaq PCI Hotplug driver" |
44 | depends on X86 && PCI_BIOS | 44 | depends on X86 && PCI_BIOS && PCI_LEGACY |
45 | help | 45 | help |
46 | Say Y here if you have a motherboard with a Compaq PCI Hotplug | 46 | Say Y here if you have a motherboard with a Compaq PCI Hotplug |
47 | controller. | 47 | controller. |
@@ -63,7 +63,7 @@ config HOTPLUG_PCI_COMPAQ_NVRAM | |||
63 | 63 | ||
64 | config HOTPLUG_PCI_IBM | 64 | config HOTPLUG_PCI_IBM |
65 | tristate "IBM PCI Hotplug driver" | 65 | tristate "IBM PCI Hotplug driver" |
66 | depends on X86_IO_APIC && X86 && PCI_BIOS | 66 | depends on X86_IO_APIC && X86 && PCI_BIOS && PCI_LEGACY |
67 | help | 67 | help |
68 | Say Y here if you have a motherboard with a IBM PCI Hotplug | 68 | Say Y here if you have a motherboard with a IBM PCI Hotplug |
69 | controller. | 69 | controller. |
@@ -119,7 +119,7 @@ config HOTPLUG_PCI_CPCI_ZT5550 | |||
119 | 119 | ||
120 | config HOTPLUG_PCI_CPCI_GENERIC | 120 | config HOTPLUG_PCI_CPCI_GENERIC |
121 | tristate "Generic port I/O CompactPCI Hotplug driver" | 121 | tristate "Generic port I/O CompactPCI Hotplug driver" |
122 | depends on HOTPLUG_PCI_CPCI && X86 | 122 | depends on HOTPLUG_PCI_CPCI && X86 && PCI_LEGACY |
123 | help | 123 | help |
124 | Say Y here if you have a CompactPCI system card that exposes the #ENUM | 124 | Say Y here if you have a CompactPCI system card that exposes the #ENUM |
125 | hotswap signal as a bit in a system register that can be read through | 125 | hotswap signal as a bit in a system register that can be read through |
diff --git a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c index 3ef0a4875a62..856d57b4d604 100644 --- a/drivers/pci/hotplug/cpqphp_ctrl.c +++ b/drivers/pci/hotplug/cpqphp_ctrl.c | |||
@@ -1931,16 +1931,14 @@ void cpqhp_pushbutton_thread(unsigned long slot) | |||
1931 | return ; | 1931 | return ; |
1932 | } | 1932 | } |
1933 | 1933 | ||
1934 | if (func != NULL && ctrl != NULL) { | 1934 | if (cpqhp_process_SS(ctrl, func) != 0) { |
1935 | if (cpqhp_process_SS(ctrl, func) != 0) { | 1935 | amber_LED_on(ctrl, hp_slot); |
1936 | amber_LED_on (ctrl, hp_slot); | 1936 | green_LED_on(ctrl, hp_slot); |
1937 | green_LED_on (ctrl, hp_slot); | ||
1938 | |||
1939 | set_SOGO(ctrl); | ||
1940 | 1937 | ||
1941 | /* Wait for SOBS to be unset */ | 1938 | set_SOGO(ctrl); |
1942 | wait_for_ctrl_irq (ctrl); | 1939 | |
1943 | } | 1940 | /* Wait for SOBS to be unset */ |
1941 | wait_for_ctrl_irq(ctrl); | ||
1944 | } | 1942 | } |
1945 | 1943 | ||
1946 | p_slot->state = STATIC_STATE; | 1944 | p_slot->state = STATIC_STATE; |
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 87e01615053d..07c9f09c856d 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -224,6 +224,12 @@ static struct msi_desc* alloc_msi_entry(void) | |||
224 | return entry; | 224 | return entry; |
225 | } | 225 | } |
226 | 226 | ||
227 | static void pci_intx_for_msi(struct pci_dev *dev, int enable) | ||
228 | { | ||
229 | if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG)) | ||
230 | pci_intx(dev, enable); | ||
231 | } | ||
232 | |||
227 | #ifdef CONFIG_PM | 233 | #ifdef CONFIG_PM |
228 | static void __pci_restore_msi_state(struct pci_dev *dev) | 234 | static void __pci_restore_msi_state(struct pci_dev *dev) |
229 | { | 235 | { |
@@ -237,7 +243,7 @@ static void __pci_restore_msi_state(struct pci_dev *dev) | |||
237 | entry = get_irq_msi(dev->irq); | 243 | entry = get_irq_msi(dev->irq); |
238 | pos = entry->msi_attrib.pos; | 244 | pos = entry->msi_attrib.pos; |
239 | 245 | ||
240 | pci_intx(dev, 0); /* disable intx */ | 246 | pci_intx_for_msi(dev, 0); |
241 | msi_set_enable(dev, 0); | 247 | msi_set_enable(dev, 0); |
242 | write_msi_msg(dev->irq, &entry->msg); | 248 | write_msi_msg(dev->irq, &entry->msg); |
243 | if (entry->msi_attrib.maskbit) | 249 | if (entry->msi_attrib.maskbit) |
@@ -260,7 +266,7 @@ static void __pci_restore_msix_state(struct pci_dev *dev) | |||
260 | return; | 266 | return; |
261 | 267 | ||
262 | /* route the table */ | 268 | /* route the table */ |
263 | pci_intx(dev, 0); /* disable intx */ | 269 | pci_intx_for_msi(dev, 0); |
264 | msix_set_enable(dev, 0); | 270 | msix_set_enable(dev, 0); |
265 | 271 | ||
266 | list_for_each_entry(entry, &dev->msi_list, list) { | 272 | list_for_each_entry(entry, &dev->msi_list, list) { |
@@ -343,7 +349,7 @@ static int msi_capability_init(struct pci_dev *dev) | |||
343 | } | 349 | } |
344 | 350 | ||
345 | /* Set MSI enabled bits */ | 351 | /* Set MSI enabled bits */ |
346 | pci_intx(dev, 0); /* disable intx */ | 352 | pci_intx_for_msi(dev, 0); |
347 | msi_set_enable(dev, 1); | 353 | msi_set_enable(dev, 1); |
348 | dev->msi_enabled = 1; | 354 | dev->msi_enabled = 1; |
349 | 355 | ||
@@ -433,7 +439,7 @@ static int msix_capability_init(struct pci_dev *dev, | |||
433 | i++; | 439 | i++; |
434 | } | 440 | } |
435 | /* Set MSI-X enabled bits */ | 441 | /* Set MSI-X enabled bits */ |
436 | pci_intx(dev, 0); /* disable intx */ | 442 | pci_intx_for_msi(dev, 0); |
437 | msix_set_enable(dev, 1); | 443 | msix_set_enable(dev, 1); |
438 | dev->msix_enabled = 1; | 444 | dev->msix_enabled = 1; |
439 | 445 | ||
@@ -528,7 +534,7 @@ void pci_disable_msi(struct pci_dev* dev) | |||
528 | return; | 534 | return; |
529 | 535 | ||
530 | msi_set_enable(dev, 0); | 536 | msi_set_enable(dev, 0); |
531 | pci_intx(dev, 1); /* enable intx */ | 537 | pci_intx_for_msi(dev, 1); |
532 | dev->msi_enabled = 0; | 538 | dev->msi_enabled = 0; |
533 | 539 | ||
534 | BUG_ON(list_empty(&dev->msi_list)); | 540 | BUG_ON(list_empty(&dev->msi_list)); |
@@ -640,7 +646,7 @@ void pci_disable_msix(struct pci_dev* dev) | |||
640 | return; | 646 | return; |
641 | 647 | ||
642 | msix_set_enable(dev, 0); | 648 | msix_set_enable(dev, 0); |
643 | pci_intx(dev, 1); /* enable intx */ | 649 | pci_intx_for_msi(dev, 1); |
644 | dev->msix_enabled = 0; | 650 | dev->msix_enabled = 0; |
645 | 651 | ||
646 | msix_free_all_irqs(dev); | 652 | msix_free_all_irqs(dev); |
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 6e2760b6c20a..6d1a21611818 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c | |||
@@ -143,8 +143,8 @@ const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, | |||
143 | * system is in its list of supported devices. Returns the matching | 143 | * system is in its list of supported devices. Returns the matching |
144 | * pci_device_id structure or %NULL if there is no match. | 144 | * pci_device_id structure or %NULL if there is no match. |
145 | */ | 145 | */ |
146 | const struct pci_device_id *pci_match_device(struct pci_driver *drv, | 146 | static const struct pci_device_id *pci_match_device(struct pci_driver *drv, |
147 | struct pci_dev *dev) | 147 | struct pci_dev *dev) |
148 | { | 148 | { |
149 | struct pci_dynid *dynid; | 149 | struct pci_dynid *dynid; |
150 | 150 | ||
@@ -559,7 +559,6 @@ static int __init pci_driver_init(void) | |||
559 | postcore_initcall(pci_driver_init); | 559 | postcore_initcall(pci_driver_init); |
560 | 560 | ||
561 | EXPORT_SYMBOL(pci_match_id); | 561 | EXPORT_SYMBOL(pci_match_id); |
562 | EXPORT_SYMBOL(pci_match_device); | ||
563 | EXPORT_SYMBOL(__pci_register_driver); | 562 | EXPORT_SYMBOL(__pci_register_driver); |
564 | EXPORT_SYMBOL(pci_unregister_driver); | 563 | EXPORT_SYMBOL(pci_unregister_driver); |
565 | EXPORT_SYMBOL(pci_dev_driver); | 564 | EXPORT_SYMBOL(pci_dev_driver); |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index d0bb5b9d2120..26cc4dcf4f0e 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -1621,12 +1621,8 @@ static void __init quirk_disable_all_msi(struct pci_dev *dev) | |||
1621 | printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n"); | 1621 | printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n"); |
1622 | } | 1622 | } |
1623 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi); | 1623 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi); |
1624 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi); | ||
1625 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); | 1624 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); |
1626 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); | 1625 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); |
1627 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RD580, quirk_disable_all_msi); | ||
1628 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RX790, quirk_disable_all_msi); | ||
1629 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS690, quirk_disable_all_msi); | ||
1630 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); | 1626 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); |
1631 | 1627 | ||
1632 | /* Disable MSI on chipsets that are known to not support it */ | 1628 | /* 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) | |||
1678 | } | 1674 | } |
1679 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE, | 1675 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE, |
1680 | quirk_msi_ht_cap); | 1676 | quirk_msi_ht_cap); |
1677 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, | ||
1678 | PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, | ||
1679 | quirk_msi_ht_cap); | ||
1681 | 1680 | ||
1682 | /* The nVidia CK804 chipset may have 2 HT MSI mappings. | 1681 | /* The nVidia CK804 chipset may have 2 HT MSI mappings. |
1683 | * MSI are supported if the MSI capability set in any of these mappings. | 1682 | * 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) | |||
1705 | } | 1704 | } |
1706 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, | 1705 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, |
1707 | quirk_nvidia_ck804_msi_ht_cap); | 1706 | quirk_nvidia_ck804_msi_ht_cap); |
1707 | |||
1708 | static void __devinit quirk_msi_intx_disable_bug(struct pci_dev *dev) | ||
1709 | { | ||
1710 | dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG; | ||
1711 | } | ||
1712 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1713 | PCI_DEVICE_ID_TIGON3_5780, | ||
1714 | quirk_msi_intx_disable_bug); | ||
1715 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1716 | PCI_DEVICE_ID_TIGON3_5780S, | ||
1717 | quirk_msi_intx_disable_bug); | ||
1718 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1719 | PCI_DEVICE_ID_TIGON3_5714, | ||
1720 | quirk_msi_intx_disable_bug); | ||
1721 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1722 | PCI_DEVICE_ID_TIGON3_5714S, | ||
1723 | quirk_msi_intx_disable_bug); | ||
1724 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1725 | PCI_DEVICE_ID_TIGON3_5715, | ||
1726 | quirk_msi_intx_disable_bug); | ||
1727 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | ||
1728 | PCI_DEVICE_ID_TIGON3_5715S, | ||
1729 | quirk_msi_intx_disable_bug); | ||
1730 | |||
1731 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390, | ||
1732 | quirk_msi_intx_disable_bug); | ||
1733 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391, | ||
1734 | quirk_msi_intx_disable_bug); | ||
1735 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392, | ||
1736 | quirk_msi_intx_disable_bug); | ||
1737 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393, | ||
1738 | quirk_msi_intx_disable_bug); | ||
1739 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394, | ||
1740 | quirk_msi_intx_disable_bug); | ||
1741 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4395, | ||
1742 | quirk_msi_intx_disable_bug); | ||
1743 | |||
1744 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373, | ||
1745 | quirk_msi_intx_disable_bug); | ||
1746 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374, | ||
1747 | quirk_msi_intx_disable_bug); | ||
1748 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375, | ||
1749 | quirk_msi_intx_disable_bug); | ||
1750 | |||
1708 | #endif /* CONFIG_PCI_MSI */ | 1751 | #endif /* CONFIG_PCI_MSI */ |
diff --git a/drivers/pci/search.c b/drivers/pci/search.c index b001b5922e33..8541034021f0 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c | |||
@@ -113,6 +113,8 @@ pci_find_next_bus(const struct pci_bus *from) | |||
113 | return b; | 113 | return b; |
114 | } | 114 | } |
115 | 115 | ||
116 | #ifdef CONFIG_PCI_LEGACY | ||
117 | |||
116 | /** | 118 | /** |
117 | * pci_find_slot - locate PCI device from a given PCI slot | 119 | * pci_find_slot - locate PCI device from a given PCI slot |
118 | * @bus: number of PCI bus on which desired PCI device resides | 120 | * @bus: number of PCI bus on which desired PCI device resides |
@@ -137,6 +139,8 @@ pci_find_slot(unsigned int bus, unsigned int devfn) | |||
137 | return NULL; | 139 | return NULL; |
138 | } | 140 | } |
139 | 141 | ||
142 | #endif /* CONFIG_PCI_LEGACY */ | ||
143 | |||
140 | /** | 144 | /** |
141 | * pci_get_slot - locate PCI device for a given PCI slot | 145 | * pci_get_slot - locate PCI device for a given PCI slot |
142 | * @bus: PCI bus on which desired PCI device resides | 146 | * @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) | |||
200 | return NULL; | 204 | return NULL; |
201 | } | 205 | } |
202 | 206 | ||
207 | #ifdef CONFIG_PCI_LEGACY | ||
203 | /** | 208 | /** |
204 | * pci_find_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id | 209 | * pci_find_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id |
205 | * @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids | 210 | * @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 * | |||
278 | { | 283 | { |
279 | return pci_find_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); | 284 | return pci_find_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); |
280 | } | 285 | } |
286 | #endif /* CONFIG_PCI_LEGACY */ | ||
281 | 287 | ||
282 | /** | 288 | /** |
283 | * pci_get_subsys - begin or continue searching for a PCI device by vendor/subvendor/device/subdevice id | 289 | * 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) | |||
468 | EXPORT_SYMBOL(pci_dev_present); | 474 | EXPORT_SYMBOL(pci_dev_present); |
469 | EXPORT_SYMBOL(pci_find_present); | 475 | EXPORT_SYMBOL(pci_find_present); |
470 | 476 | ||
477 | #ifdef CONFIG_PCI_LEGACY | ||
471 | EXPORT_SYMBOL(pci_find_device); | 478 | EXPORT_SYMBOL(pci_find_device); |
472 | EXPORT_SYMBOL(pci_find_slot); | 479 | EXPORT_SYMBOL(pci_find_slot); |
480 | #endif /* CONFIG_PCI_LEGACY */ | ||
481 | |||
473 | /* For boot time work */ | 482 | /* For boot time work */ |
474 | EXPORT_SYMBOL(pci_find_bus); | 483 | EXPORT_SYMBOL(pci_find_bus); |
475 | EXPORT_SYMBOL(pci_find_next_bus); | 484 | EXPORT_SYMBOL(pci_find_next_bus); |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 86cf10efb0c1..a6676be87843 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -725,7 +725,7 @@ config SCSI_FD_MCS | |||
725 | 725 | ||
726 | config SCSI_GDTH | 726 | config SCSI_GDTH |
727 | tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" | 727 | tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" |
728 | depends on (ISA || EISA || PCI) && SCSI && ISA_DMA_API | 728 | depends on (ISA || EISA || PCI) && SCSI && ISA_DMA_API && PCI_LEGACY |
729 | ---help--- | 729 | ---help--- |
730 | Formerly called GDT SCSI Disk Array Controller Support. | 730 | Formerly called GDT SCSI Disk Array Controller Support. |
731 | 731 | ||
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 0e357562ce9e..ceb03c9e749f 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -1986,6 +1986,7 @@ static int pciserial_suspend_one(struct pci_dev *dev, pm_message_t state) | |||
1986 | 1986 | ||
1987 | static int pciserial_resume_one(struct pci_dev *dev) | 1987 | static int pciserial_resume_one(struct pci_dev *dev) |
1988 | { | 1988 | { |
1989 | int err; | ||
1989 | struct serial_private *priv = pci_get_drvdata(dev); | 1990 | struct serial_private *priv = pci_get_drvdata(dev); |
1990 | 1991 | ||
1991 | pci_set_power_state(dev, PCI_D0); | 1992 | pci_set_power_state(dev, PCI_D0); |
@@ -1995,7 +1996,9 @@ static int pciserial_resume_one(struct pci_dev *dev) | |||
1995 | /* | 1996 | /* |
1996 | * The device may have been disabled. Re-enable it. | 1997 | * The device may have been disabled. Re-enable it. |
1997 | */ | 1998 | */ |
1998 | pci_enable_device(dev); | 1999 | err = pci_enable_device(dev); |
2000 | if (err) | ||
2001 | return err; | ||
1999 | 2002 | ||
2000 | pciserial_resume_ports(priv); | 2003 | pciserial_resume_ports(priv); |
2001 | } | 2004 | } |