aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/legacy
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/legacy')
-rw-r--r--drivers/ide/legacy/ali14xx.c9
-rw-r--r--drivers/ide/legacy/dtc2278.c12
-rw-r--r--drivers/ide/legacy/ht6560b.c8
-rw-r--r--drivers/ide/legacy/qd65xx.c8
-rw-r--r--drivers/ide/legacy/umc8672.c15
5 files changed, 47 insertions, 5 deletions
diff --git a/drivers/ide/legacy/ali14xx.c b/drivers/ide/legacy/ali14xx.c
index f9f5b8d54d6d..91961aa03047 100644
--- a/drivers/ide/legacy/ali14xx.c
+++ b/drivers/ide/legacy/ali14xx.c
@@ -228,9 +228,17 @@ static int __init ali14xx_probe(void)
228 return 0; 228 return 0;
229} 229}
230 230
231int probe_ali14xx = 0;
232
233module_param_named(probe, probe_ali14xx, bool, 0);
234MODULE_PARM_DESC(probe, "probe for ALI M14xx chipsets");
235
231/* Can be called directly from ide.c. */ 236/* Can be called directly from ide.c. */
232int __init ali14xx_init(void) 237int __init ali14xx_init(void)
233{ 238{
239 if (probe_ali14xx == 0)
240 goto out;
241
234 /* auto-detect IDE controller port */ 242 /* auto-detect IDE controller port */
235 if (findPort()) { 243 if (findPort()) {
236 if (ali14xx_probe()) 244 if (ali14xx_probe())
@@ -238,6 +246,7 @@ int __init ali14xx_init(void)
238 return 0; 246 return 0;
239 } 247 }
240 printk(KERN_ERR "ali14xx: not found.\n"); 248 printk(KERN_ERR "ali14xx: not found.\n");
249out:
241 return -ENODEV; 250 return -ENODEV;
242} 251}
243 252
diff --git a/drivers/ide/legacy/dtc2278.c b/drivers/ide/legacy/dtc2278.c
index f2903b6e43c0..0219ffa64db6 100644
--- a/drivers/ide/legacy/dtc2278.c
+++ b/drivers/ide/legacy/dtc2278.c
@@ -92,7 +92,7 @@ static void tune_dtc2278 (ide_drive_t *drive, u8 pio)
92 HWIF(drive)->drives[!drive->select.b.unit].io_32bit = 1; 92 HWIF(drive)->drives[!drive->select.b.unit].io_32bit = 1;
93} 93}
94 94
95static int __init probe_dtc2278(void) 95static int __init dtc2278_probe(void)
96{ 96{
97 unsigned long flags; 97 unsigned long flags;
98 ide_hwif_t *hwif, *mate; 98 ide_hwif_t *hwif, *mate;
@@ -143,10 +143,18 @@ static int __init probe_dtc2278(void)
143 return 0; 143 return 0;
144} 144}
145 145
146int probe_dtc2278 = 0;
147
148module_param_named(probe, probe_dtc2278, bool, 0);
149MODULE_PARM_DESC(probe, "probe for DTC2278xx chipsets");
150
146/* Can be called directly from ide.c. */ 151/* Can be called directly from ide.c. */
147int __init dtc2278_init(void) 152int __init dtc2278_init(void)
148{ 153{
149 if (probe_dtc2278()) { 154 if (probe_dtc2278 == 0)
155 return -ENODEV;
156
157 if (dtc2278_probe()) {
150 printk(KERN_ERR "dtc2278: ide interfaces already in use!\n"); 158 printk(KERN_ERR "dtc2278: ide interfaces already in use!\n");
151 return -EBUSY; 159 return -EBUSY;
152 } 160 }
diff --git a/drivers/ide/legacy/ht6560b.c b/drivers/ide/legacy/ht6560b.c
index 02d5e20791e3..a2832643c522 100644
--- a/drivers/ide/legacy/ht6560b.c
+++ b/drivers/ide/legacy/ht6560b.c
@@ -301,12 +301,20 @@ static void tune_ht6560b (ide_drive_t *drive, u8 pio)
301#endif 301#endif
302} 302}
303 303
304int probe_ht6560b = 0;
305
306module_param_named(probe, probe_ht6560b, bool, 0);
307MODULE_PARM_DESC(probe, "probe for HT6560B chipset");
308
304/* Can be called directly from ide.c. */ 309/* Can be called directly from ide.c. */
305int __init ht6560b_init(void) 310int __init ht6560b_init(void)
306{ 311{
307 ide_hwif_t *hwif, *mate; 312 ide_hwif_t *hwif, *mate;
308 int t; 313 int t;
309 314
315 if (probe_ht6560b == 0)
316 return -ENODEV;
317
310 hwif = &ide_hwifs[0]; 318 hwif = &ide_hwifs[0];
311 mate = &ide_hwifs[1]; 319 mate = &ide_hwifs[1];
312 320
diff --git a/drivers/ide/legacy/qd65xx.c b/drivers/ide/legacy/qd65xx.c
index ab482c85e415..2fb8f50f1293 100644
--- a/drivers/ide/legacy/qd65xx.c
+++ b/drivers/ide/legacy/qd65xx.c
@@ -488,9 +488,17 @@ static int __init qd_probe(int base)
488 return 1; 488 return 1;
489} 489}
490 490
491int probe_qd65xx = 0;
492
493module_param_named(probe, probe_qd65xx, bool, 0);
494MODULE_PARM_DESC(probe, "probe for QD65xx chipsets");
495
491/* Can be called directly from ide.c. */ 496/* Can be called directly from ide.c. */
492int __init qd65xx_init(void) 497int __init qd65xx_init(void)
493{ 498{
499 if (probe_qd65xx == 0)
500 return -ENODEV;
501
494 if (qd_probe(0x30)) 502 if (qd_probe(0x30))
495 qd_probe(0xb0); 503 qd_probe(0xb0);
496 if (ide_hwifs[0].chipset != ide_qd65xx && 504 if (ide_hwifs[0].chipset != ide_qd65xx &&
diff --git a/drivers/ide/legacy/umc8672.c b/drivers/ide/legacy/umc8672.c
index 6e2c58c5f6a2..ca7974455578 100644
--- a/drivers/ide/legacy/umc8672.c
+++ b/drivers/ide/legacy/umc8672.c
@@ -165,12 +165,21 @@ static int __init umc8672_probe(void)
165 return 0; 165 return 0;
166} 166}
167 167
168int probe_umc8672 = 0;
169
170module_param_named(probe, probe_umc8672, bool, 0);
171MODULE_PARM_DESC(probe, "probe for UMC8672 chipset");
172
168/* Can be called directly from ide.c. */ 173/* Can be called directly from ide.c. */
169int __init umc8672_init(void) 174int __init umc8672_init(void)
170{ 175{
171 if (umc8672_probe()) 176 if (probe_umc8672 == 0)
172 return -ENODEV; 177 goto out;
173 return 0; 178
179 if (umc8672_probe() == 0)
180 return 0;;
181out:
182 return -ENODEV;;
174} 183}
175 184
176#ifdef MODULE 185#ifdef MODULE