diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 22:13:06 +0300 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 22:13:06 +0300 |
commit | 8ac4ce742c66100931b6f2d7a36b0df08bc721fe (patch) | |
tree | bc44edb8d6ec9057d24aa4c986729e1ca9f3f860 /drivers/ide/legacy | |
parent | ac87e41116c229fc1efaac0d17fdbfb2185e4629 (diff) | |
download | linux-8ac4ce742c66100931b6f2d7a36b0df08bc721fe.tar.xz |
ide: fix host drivers depending on ide_generic to probe for interfaces (take 2)
* Add mpc8xx_ide_probe() to mpc8xx.c and call it from probe_for_hwifs().
* Convert ide_arm, ide-cris, ide-h8300, ide-pnp, buddha, falconide, gayle,
macide, q40ide, cmd640 and mpc8xx host drivers to use ide_device_add().
This removes dependency on ide_generic for these drivers so update
ide/Kconfig accordingly.
v2:
* ide_arm build fix (s/ide_device_idx/ide_device_add/)
(Thanks to Christoph Lameter <clameter@sgi.com> for reporting the problem).
Cc: Mikael Starvik <starvik@axis.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/legacy')
-rw-r--r-- | drivers/ide/legacy/buddha.c | 10 | ||||
-rw-r--r-- | drivers/ide/legacy/falconide.c | 3 | ||||
-rw-r--r-- | drivers/ide/legacy/gayle.c | 5 | ||||
-rw-r--r-- | drivers/ide/legacy/macide.c | 3 | ||||
-rw-r--r-- | drivers/ide/legacy/q40ide.c | 5 |
5 files changed, 24 insertions, 2 deletions
diff --git a/drivers/ide/legacy/buddha.c b/drivers/ide/legacy/buddha.c index 8b9cb39c961e..ba64c4b9f918 100644 --- a/drivers/ide/legacy/buddha.c +++ b/drivers/ide/legacy/buddha.c @@ -156,6 +156,8 @@ void __init buddha_init(void) while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { unsigned long board; + u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; + if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { buddha_num_hwifs = BUDDHA_NUM_HWIFS; type=BOARD_BUDDHA; @@ -233,8 +235,12 @@ fail_base2: printk("X-Surf"); break; } - printk(" IDE interface\n"); - } + printk(" IDE interface\n"); + + idx[i] = index; + } } + + ide_device_add(idx); } } diff --git a/drivers/ide/legacy/falconide.c b/drivers/ide/legacy/falconide.c index b861cfe25900..c1a84540beb1 100644 --- a/drivers/ide/legacy/falconide.c +++ b/drivers/ide/legacy/falconide.c @@ -75,10 +75,13 @@ void __init falconide_init(void) hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); if (hwif) { u8 index = hwif->index; + u8 idx[4] = { index, 0xff, 0xff, 0xff }; ide_init_port_data(hwif, index); ide_init_port_hw(hwif, &hw); printk("ide%d: Falcon IDE interface\n", index); + + ide_device_add(idx); } } diff --git a/drivers/ide/legacy/gayle.c b/drivers/ide/legacy/gayle.c index 705d0b8a3f5d..ec53dc9b483c 100644 --- a/drivers/ide/legacy/gayle.c +++ b/drivers/ide/legacy/gayle.c @@ -113,6 +113,7 @@ static int gayle_ack_intr_a1200(ide_hwif_t *hwif) void __init gayle_init(void) { int a4000, i; + u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; if (!MACH_IS_AMIGA) return; @@ -183,7 +184,11 @@ found: break; #endif /* CONFIG_BLK_DEV_IDEDOUBLER */ } + + idx[i] = index; } else release_mem_region(res_start, res_n); } + + ide_device_add(idx); } diff --git a/drivers/ide/legacy/macide.c b/drivers/ide/legacy/macide.c index 1840fede5216..c1b7881c280a 100644 --- a/drivers/ide/legacy/macide.c +++ b/drivers/ide/legacy/macide.c @@ -112,6 +112,7 @@ void __init macide_init(void) hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); if (hwif) { u8 index = hwif->index; + u8 idx[4] = { index, 0xff, 0xff, 0xff }; ide_init_port_data(hwif, index); ide_init_port_hw(hwif, &hw); @@ -135,5 +136,7 @@ void __init macide_init(void) printk(KERN_INFO "ide%d: Macintosh Powerbook Baboon IDE interface\n", index); else printk(KERN_INFO "ide%d: Unknown Macintosh IDE interface\n", index); + + ide_device_add(idx); } } diff --git a/drivers/ide/legacy/q40ide.c b/drivers/ide/legacy/q40ide.c index 31e54ffdfee4..2082e9c6efd9 100644 --- a/drivers/ide/legacy/q40ide.c +++ b/drivers/ide/legacy/q40ide.c @@ -116,6 +116,7 @@ void __init q40ide_init(void) int i; ide_hwif_t *hwif; const char *name; + u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; if (!MACH_IS_Q40) return ; @@ -146,7 +147,11 @@ void __init q40ide_init(void) ide_init_port_data(hwif, hwif->index); ide_init_port_hw(hwif, &hw); hwif->mmio = 1; + + idx[i] = hwif->index; } } + + ide_device_add(idx); } |