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>
Dieser Commit ist enthalten in:
Bartlomiej Zolnierkiewicz
2007-05-10 00:01:11 +02:00
Ursprung 869c56ee9d
Commit 5cbf79cdb3
18 geänderte Dateien mit 91 neuen und 55 gelöschten Zeilen

Datei anzeigen

@@ -347,10 +347,6 @@ static int ide_system_bus_speed(void)
return system_bus_speed;
}
#ifdef CONFIG_IDE_PROC_FS
struct proc_dir_entry *proc_ide_root;
#endif
static struct resource* hwif_request_region(ide_hwif_t *hwif,
unsigned long addr, int num)
{
@@ -594,7 +590,7 @@ void ide_unregister(unsigned int index)
spin_unlock_irq(&ide_lock);
destroy_proc_ide_interface(hwif);
ide_proc_unregister_port(hwif);
hwgroup = hwif->hwgroup;
/*
@@ -799,7 +795,7 @@ found:
if (!initializing) {
probe_hwif_init_with_fixup(hwif, fixup);
create_proc_ide_interfaces();
ide_proc_register_port(hwif);
}
if (hwifp)
@@ -1794,9 +1790,7 @@ static int __init ide_init(void)
init_ide_data();
#ifdef CONFIG_IDE_PROC_FS
proc_ide_root = proc_mkdir("ide", NULL);
#endif
proc_ide_create();
#ifdef CONFIG_BLK_DEV_ALI14XX
if (probe_ali14xx)
@@ -1822,8 +1816,6 @@ static int __init ide_init(void)
/* Probe for special PCI and other "known" interface chipsets. */
probe_for_hwifs();
proc_ide_create();
return 0;
}