aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/setup-pci.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:07 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:07 -0500
commitade2daf9c6e57845fe83a24e0a9fa1c03c6e91b1 (patch)
tree68070062d6306442caee50630c4213c911eb9064 /drivers/ide/setup-pci.c
parent8ac4ce742c66100931b6f2d7a36b0df08bc721fe (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.c9
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
776void __init ide_scan_pcibus (int scan_direction) 775int __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