diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:07 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:07 -0500 |
commit | ade2daf9c6e57845fe83a24e0a9fa1c03c6e91b1 (patch) | |
tree | 68070062d6306442caee50630c4213c911eb9064 /drivers/ide/setup-pci.c | |
parent | 8ac4ce742c66100931b6f2d7a36b0df08bc721fe (diff) |
ide: make remaining built-in only IDE host drivers modular (take 2)
* Make remaining built-in only IDE host drivers modular, add ide-scan-pci.c
file for probing PCI host drivers registered with IDE core (special case
for built-in IDE and CONFIG_IDEPCI_PCIBUS_ORDER=y) and then take care of
the ordering in which all IDE host drivers are probed when IDE is built-in
during link time.
* Move probing of gayle, falconide, macide, q40ide and buddha (m68k arch
specific) host drivers, before PCI ones (no PCI on m68k), ide-cris (cris
arch specific), cmd640 (x86 arch specific) and pmac (ppc arch specific).
* Move probing of ide-cris (cris arch specific) host driver before cmd640
(x86 arch specific).
* Move probing of mpc8xx (ppc specific) host driver before ide-pnp (depends
on ISA and none of ppc platform that use mpc8xx supports ISA) and ide-h8300
(h8300 arch specific).
* Add "probe_vlb" kernel parameter to cmd640 host driver and update
Documentation/ide.txt accordingly.
* Make IDE_ARM config option visible so it can also be disabled if needed.
* Remove bogus comment from ide.c while at it.
v2:
* Fix two issues spotted by Sergei:
- replace ENOMEM error value by ENOENT in ide-h8300 host driver
- fix MODULE_PARM_DESC() in cmd640 host driver
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/setup-pci.c')
-rw-r--r-- | drivers/ide/setup-pci.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index d89f84d41b08..63ef8aaa7b90 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
@@ -766,21 +766,20 @@ static int __init ide_scan_pcidev(struct pci_dev *dev) | |||
766 | 766 | ||
767 | /** | 767 | /** |
768 | * ide_scan_pcibus - perform the initial IDE driver scan | 768 | * ide_scan_pcibus - perform the initial IDE driver scan |
769 | * @scan_direction: set for reverse order scanning | ||
770 | * | 769 | * |
771 | * Perform the initial bus rather than driver ordered scan of the | 770 | * Perform the initial bus rather than driver ordered scan of the |
772 | * PCI drivers. After this all IDE pci handling becomes standard | 771 | * PCI drivers. After this all IDE pci handling becomes standard |
773 | * module ordering not traditionally ordered. | 772 | * module ordering not traditionally ordered. |
774 | */ | 773 | */ |
775 | 774 | ||
776 | void __init ide_scan_pcibus (int scan_direction) | 775 | int __init ide_scan_pcibus(void) |
777 | { | 776 | { |
778 | struct pci_dev *dev = NULL; | 777 | struct pci_dev *dev = NULL; |
779 | struct pci_driver *d; | 778 | struct pci_driver *d; |
780 | struct list_head *l, *n; | 779 | struct list_head *l, *n; |
781 | 780 | ||
782 | pre_init = 0; | 781 | pre_init = 0; |
783 | if (!scan_direction) | 782 | if (!ide_scan_direction) |
784 | while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev))) | 783 | while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev))) |
785 | ide_scan_pcidev(dev); | 784 | ide_scan_pcidev(dev); |
786 | else | 785 | else |
@@ -801,5 +800,7 @@ void __init ide_scan_pcibus (int scan_direction) | |||
801 | printk(KERN_ERR "%s: failed to register %s driver\n", | 800 | printk(KERN_ERR "%s: failed to register %s driver\n", |
802 | __FUNCTION__, d->driver.mod_name); | 801 | __FUNCTION__, d->driver.mod_name); |
803 | } | 802 | } |
803 | |||
804 | return 0; | ||
804 | } | 805 | } |
805 | #endif | 806 | #endif |