diff options
| author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 20:13:09 +0100 | 
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 20:13:09 +0100 | 
| commit | 9ac59226ca95889ad620b0e63c0f700679fee5dd (patch) | |
| tree | 54771bd08c565fba88e1257482f7cfb32de747ef /drivers/ide/setup-pci.c | |
| parent | c99c92c58757985096e2d195dc1631246d99d686 (diff) | |
| download | olio-linux-3.10-9ac59226ca95889ad620b0e63c0f700679fee5dd.tar.xz olio-linux-3.10-9ac59226ca95889ad620b0e63c0f700679fee5dd.zip  | |
ide: move CONFIG_IDEPCI_PCIBUS_ORDER code to ide-scan-pci.c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/setup-pci.c')
| -rw-r--r-- | drivers/ide/setup-pci.c | 103 | 
1 files changed, 0 insertions, 103 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index be9ae5a38cc..676c66e7288 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c @@ -698,106 +698,3 @@ out:  }  EXPORT_SYMBOL_GPL(ide_setup_pci_devices); - -#ifdef CONFIG_IDEPCI_PCIBUS_ORDER -/* - *	Module interfaces - */ - -static int pre_init = 1;		/* Before first ordered IDE scan */ -static LIST_HEAD(ide_pci_drivers); - -/* - *	__ide_pci_register_driver	-	attach IDE driver - *	@driver: pci driver - *	@module: owner module of the driver - * - *	Registers a driver with the IDE layer. The IDE layer arranges that - *	boot time setup is done in the expected device order and then - *	hands the controllers off to the core PCI code to do the rest of - *	the work. - * - *	Returns are the same as for pci_register_driver - */ - -int __ide_pci_register_driver(struct pci_driver *driver, struct module *module, -			      const char *mod_name) -{ -	if (!pre_init) -		return __pci_register_driver(driver, module, mod_name); -	driver->driver.owner = module; -	list_add_tail(&driver->node, &ide_pci_drivers); -	return 0; -} -EXPORT_SYMBOL_GPL(__ide_pci_register_driver); - -/** - *	ide_scan_pcidev		-	find an IDE driver for a device - *	@dev: PCI device to check - * - *	Look for an IDE driver to handle the device we are considering. - *	This is only used during boot up to get the ordering correct. After - *	boot up the pci layer takes over the job. - */ - -static int __init ide_scan_pcidev(struct pci_dev *dev) -{ -	struct list_head *l; -	struct pci_driver *d; - -	list_for_each(l, &ide_pci_drivers) { -		d = list_entry(l, struct pci_driver, node); -		if (d->id_table) { -			const struct pci_device_id *id = -				pci_match_id(d->id_table, dev); - -			if (id != NULL && d->probe(dev, id) >= 0) { -				dev->driver = d; -				pci_dev_get(dev); -				return 1; -			} -		} -	} -	return 0; -} - -/** - *	ide_scan_pcibus		-	perform the initial IDE driver scan - * - *	Perform the initial bus rather than driver ordered scan of the - *	PCI drivers. After this all IDE pci handling becomes standard - *	module ordering not traditionally ordered. - */ - -int __init ide_scan_pcibus(void) -{ -	struct pci_dev *dev = NULL; -	struct pci_driver *d; -	struct list_head *l, *n; - -	pre_init = 0; -	if (!ide_scan_direction) -		while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev))) -			ide_scan_pcidev(dev); -	else -		while ((dev = pci_get_device_reverse(PCI_ANY_ID, PCI_ANY_ID, -						     dev))) -			ide_scan_pcidev(dev); - -	/* -	 *	Hand the drivers over to the PCI layer now we -	 *	are post init. -	 */ - -	list_for_each_safe(l, n, &ide_pci_drivers) { -		list_del(l); -		d = list_entry(l, struct pci_driver, node); -		if (__pci_register_driver(d, d->driver.owner, -					  d->driver.mod_name)) -			printk(KERN_ERR "%s: failed to register %s driver\n", -					__FUNCTION__, d->driver.mod_name); -	} - -	return 0; -} -#endif  |