diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:06 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:06 -0500 |
commit | 8ac4ce742c66100931b6f2d7a36b0df08bc721fe (patch) | |
tree | bc44edb8d6ec9057d24aa4c986729e1ca9f3f860 /drivers/ide/legacy | |
parent | ac87e41116c229fc1efaac0d17fdbfb2185e4629 (diff) |
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) | |||
156 | 156 | ||
157 | while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { | 157 | while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { |
158 | unsigned long board; | 158 | unsigned long board; |
159 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
160 | |||
159 | if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { | 161 | if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { |
160 | buddha_num_hwifs = BUDDHA_NUM_HWIFS; | 162 | buddha_num_hwifs = BUDDHA_NUM_HWIFS; |
161 | type=BOARD_BUDDHA; | 163 | type=BOARD_BUDDHA; |
@@ -233,8 +235,12 @@ fail_base2: | |||
233 | printk("X-Surf"); | 235 | printk("X-Surf"); |
234 | break; | 236 | break; |
235 | } | 237 | } |
236 | printk(" IDE interface\n"); | 238 | printk(" IDE interface\n"); |
237 | } | 239 | |
240 | idx[i] = index; | ||
241 | } | ||
238 | } | 242 | } |
243 | |||
244 | ide_device_add(idx); | ||
239 | } | 245 | } |
240 | } | 246 | } |
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) | |||
75 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 75 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
76 | if (hwif) { | 76 | if (hwif) { |
77 | u8 index = hwif->index; | 77 | u8 index = hwif->index; |
78 | u8 idx[4] = { index, 0xff, 0xff, 0xff }; | ||
78 | 79 | ||
79 | ide_init_port_data(hwif, index); | 80 | ide_init_port_data(hwif, index); |
80 | ide_init_port_hw(hwif, &hw); | 81 | ide_init_port_hw(hwif, &hw); |
81 | 82 | ||
82 | printk("ide%d: Falcon IDE interface\n", index); | 83 | printk("ide%d: Falcon IDE interface\n", index); |
84 | |||
85 | ide_device_add(idx); | ||
83 | } | 86 | } |
84 | } | 87 | } |
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) | |||
113 | void __init gayle_init(void) | 113 | void __init gayle_init(void) |
114 | { | 114 | { |
115 | int a4000, i; | 115 | int a4000, i; |
116 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
116 | 117 | ||
117 | if (!MACH_IS_AMIGA) | 118 | if (!MACH_IS_AMIGA) |
118 | return; | 119 | return; |
@@ -183,7 +184,11 @@ found: | |||
183 | break; | 184 | break; |
184 | #endif /* CONFIG_BLK_DEV_IDEDOUBLER */ | 185 | #endif /* CONFIG_BLK_DEV_IDEDOUBLER */ |
185 | } | 186 | } |
187 | |||
188 | idx[i] = index; | ||
186 | } else | 189 | } else |
187 | release_mem_region(res_start, res_n); | 190 | release_mem_region(res_start, res_n); |
188 | } | 191 | } |
192 | |||
193 | ide_device_add(idx); | ||
189 | } | 194 | } |
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) | |||
112 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 112 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
113 | if (hwif) { | 113 | if (hwif) { |
114 | u8 index = hwif->index; | 114 | u8 index = hwif->index; |
115 | u8 idx[4] = { index, 0xff, 0xff, 0xff }; | ||
115 | 116 | ||
116 | ide_init_port_data(hwif, index); | 117 | ide_init_port_data(hwif, index); |
117 | ide_init_port_hw(hwif, &hw); | 118 | ide_init_port_hw(hwif, &hw); |
@@ -135,5 +136,7 @@ void __init macide_init(void) | |||
135 | printk(KERN_INFO "ide%d: Macintosh Powerbook Baboon IDE interface\n", index); | 136 | printk(KERN_INFO "ide%d: Macintosh Powerbook Baboon IDE interface\n", index); |
136 | else | 137 | else |
137 | printk(KERN_INFO "ide%d: Unknown Macintosh IDE interface\n", index); | 138 | printk(KERN_INFO "ide%d: Unknown Macintosh IDE interface\n", index); |
139 | |||
140 | ide_device_add(idx); | ||
138 | } | 141 | } |
139 | } | 142 | } |
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) | |||
116 | int i; | 116 | int i; |
117 | ide_hwif_t *hwif; | 117 | ide_hwif_t *hwif; |
118 | const char *name; | 118 | const char *name; |
119 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
119 | 120 | ||
120 | if (!MACH_IS_Q40) | 121 | if (!MACH_IS_Q40) |
121 | return ; | 122 | return ; |
@@ -146,7 +147,11 @@ void __init q40ide_init(void) | |||
146 | ide_init_port_data(hwif, hwif->index); | 147 | ide_init_port_data(hwif, hwif->index); |
147 | ide_init_port_hw(hwif, &hw); | 148 | ide_init_port_hw(hwif, &hw); |
148 | hwif->mmio = 1; | 149 | hwif->mmio = 1; |
150 | |||
151 | idx[i] = hwif->index; | ||
149 | } | 152 | } |
150 | } | 153 | } |
154 | |||
155 | ide_device_add(idx); | ||
151 | } | 156 | } |
152 | 157 | ||