ide: register ports with non-present devices (for warm-plug)
PATCH 1/1 ide: register ports with non-present devices (for warm-plug)
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
---
goes before "ide: remove ide_hwif_release_regions()" patch
drivers/ide/ide-probe.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-)
drivers/ide/ide-probe.c +17 -20
@@ -1533,18 +1533,15 @@ int ide_device_add_all(u8 *idx, const stcontinue ; } -if (ide_probe_port (hwif) <0 ) { -ide_hwif_release_regions (hwif); -continue ; - } - - hwif->present =1 ; +if (ide_probe_port (hwif) ==0 ) + hwif->present =1 ;if (hwif->chipset != ide_4drives || !hwif->mate || !hwif->mate->present)ide_register_port (hwif); -ide_port_tune_devices (hwif); +if (hwif->present) +ide_port_tune_devices (hwif); }for (i =0 ; i <MAX_HWIFS ; i++) {
@@ -1553,9 +1550,6 @@ int ide_device_add_all(u8 *idx, const st hwif = &ide_hwifs[idx[i]]; -if (!hwif->present) -continue ; -if (hwif_init (hwif) ==0 ) {printk (KERN_INFO "%s: failed to initialize IDE " "interface\n" , hwif->name);
@@ -1564,10 +1558,13 @@ int ide_device_add_all(u8 *idx, const stcontinue ; } -ide_port_setup_devices (hwif); +if (hwif->present) +ide_port_setup_devices (hwif);ide_acpi_init (hwif); -ide_acpi_port_init_devices (hwif); + +if (hwif->present) +ide_acpi_port_init_devices (hwif); }for (i =0 ; i <MAX_HWIFS ; i++) {
@@ -1576,11 +1573,11 @@ int ide_device_add_all(u8 *idx, const st hwif = &ide_hwifs[idx[i]]; -if (hwif->present) { -if (hwif->chipset == ide_unknown) - hwif->chipset = ide_generic; +if (hwif->chipset == ide_unknown) + hwif->chipset = ide_generic; + +if (hwif->present)hwif_register_devices (hwif); - } }for (i =0 ; i <MAX_HWIFS ; i++) {
@@ -1589,11 +1586,11 @@ int ide_device_add_all(u8 *idx, const st hwif = &ide_hwifs[idx[i]]; -if (hwif->present) { -ide_sysfs_register_port (hwif); -ide_proc_register_port (hwif); +ide_sysfs_register_port (hwif); +ide_proc_register_port (hwif); + +if (hwif->present)ide_proc_port_register_devices (hwif); - } }return rc;