ide: add ide_proc_register_port()
* create_proc_ide_interfaces() tries to add /proc entries for every probed and initialized IDE port, replace it by ide_proc_register_port() which does it only for the given port (also rename destroy_proc_ide_interface() to ide_proc_unregister_port() for consistency) * convert {create,destroy}_proc_ide_interface[s]() users to use new functions * pmac driver depended on proc_ide_create() to add /proc port entries, fix it * au1xxx-ide, swarm and cs5520 drivers depended indirectly on ide-generic driver (CONFIG_IDE_GENERIC=y) to add port /proc entries, fix them * there is now no need to add /proc entries for IDE ports in proc_ide_create() so don't do it * proc_ide_create() needs now to be called before drivers are probed - fix it, while at it make proc_ide_create() create /proc "ide" directory Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@ -702,6 +702,7 @@ out:
|
||||
|
||||
int ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t *d)
|
||||
{
|
||||
ide_hwif_t *hwif = NULL, *mate = NULL;
|
||||
ata_index_t index_list;
|
||||
int ret;
|
||||
|
||||
@ -710,11 +711,19 @@ int ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t *d)
|
||||
goto out;
|
||||
|
||||
if ((index_list.b.low & 0xf0) != 0xf0)
|
||||
probe_hwif_init_with_fixup(&ide_hwifs[index_list.b.low], d->fixup);
|
||||
hwif = &ide_hwifs[index_list.b.low];
|
||||
if ((index_list.b.high & 0xf0) != 0xf0)
|
||||
probe_hwif_init_with_fixup(&ide_hwifs[index_list.b.high], d->fixup);
|
||||
mate = &ide_hwifs[index_list.b.high];
|
||||
|
||||
create_proc_ide_interfaces();
|
||||
if (hwif)
|
||||
probe_hwif_init_with_fixup(hwif, d->fixup);
|
||||
if (mate)
|
||||
probe_hwif_init_with_fixup(mate, d->fixup);
|
||||
|
||||
if (hwif)
|
||||
ide_proc_register_port(hwif);
|
||||
if (mate)
|
||||
ide_proc_register_port(mate);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
@ -748,7 +757,15 @@ int ide_setup_pci_devices(struct pci_dev *dev1, struct pci_dev *dev2,
|
||||
}
|
||||
}
|
||||
|
||||
create_proc_ide_interfaces();
|
||||
for (i = 0; i < 2; i++) {
|
||||
u8 idx[2] = { index_list[i].b.low, index_list[i].b.high };
|
||||
int j;
|
||||
|
||||
for (j = 0; j < 2; j++) {
|
||||
if ((idx[j] & 0xf0) != 0xf0)
|
||||
ide_proc_register_port(ide_hwifs + idx[j]);
|
||||
}
|
||||
}
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user