aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/legacy
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:06 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:06 -0500
commit8ac4ce742c66100931b6f2d7a36b0df08bc721fe (patch)
treebc44edb8d6ec9057d24aa4c986729e1ca9f3f860 /drivers/ide/legacy
parentac87e41116c229fc1efaac0d17fdbfb2185e4629 (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.c10
-rw-r--r--drivers/ide/legacy/falconide.c3
-rw-r--r--drivers/ide/legacy/gayle.c5
-rw-r--r--drivers/ide/legacy/macide.c3
-rw-r--r--drivers/ide/legacy/q40ide.c5
5 files changed, 24 insertions, 2 deletions
diff --git a/drivers/ide/legacy/buddha.c b/drivers/ide/legacy/buddha.c
index 8b9cb39c961..ba64c4b9f91 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 b861cfe2590..c1a84540beb 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 705d0b8a3f5..ec53dc9b483 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)
113void __init gayle_init(void) 113void __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 1840fede521..c1b7881c280 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 31e54ffdfee..2082e9c6efd 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