diff options
| -rw-r--r-- | Documentation/ide.txt | 14 | ||||
| -rw-r--r-- | drivers/ide/Kconfig | 10 | ||||
| -rw-r--r-- | drivers/ide/ide.c | 10 | ||||
| -rw-r--r-- | drivers/ide/legacy/ali14xx.c | 9 | ||||
| -rw-r--r-- | drivers/ide/legacy/dtc2278.c | 12 | ||||
| -rw-r--r-- | drivers/ide/legacy/ht6560b.c | 8 | ||||
| -rw-r--r-- | drivers/ide/legacy/qd65xx.c | 8 | ||||
| -rw-r--r-- | drivers/ide/legacy/umc8672.c | 15 |
8 files changed, 66 insertions, 20 deletions
diff --git a/Documentation/ide.txt b/Documentation/ide.txt index 82349f5cd3d7..3bb9f9c98611 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide.txt | |||
| @@ -294,13 +294,8 @@ The following are valid ONLY on ide0, which usually corresponds | |||
| 294 | to the first ATA interface found on the particular host, and the defaults for | 294 | to the first ATA interface found on the particular host, and the defaults for |
| 295 | the base,ctl ports must not be altered. | 295 | the base,ctl ports must not be altered. |
| 296 | 296 | ||
| 297 | "ide0=dtc2278" : probe/support DTC2278 interface | ||
| 298 | "ide0=ht6560b" : probe/support HT6560B interface | ||
| 299 | "ide0=cmd640_vlb" : *REQUIRED* for VLB cards with the CMD640 chip | 297 | "ide0=cmd640_vlb" : *REQUIRED* for VLB cards with the CMD640 chip |
| 300 | (not for PCI -- automatically detected) | 298 | (not for PCI -- automatically detected) |
| 301 | "ide0=qd65xx" : probe/support qd65xx interface | ||
| 302 | "ide0=ali14xx" : probe/support ali14xx chipsets (ALI M1439/M1443/M1445) | ||
| 303 | "ide0=umc8672" : probe/support umc8672 chipsets | ||
| 304 | 299 | ||
| 305 | "ide=doubler" : probe/support IDE doublers on Amiga | 300 | "ide=doubler" : probe/support IDE doublers on Amiga |
| 306 | 301 | ||
| @@ -308,6 +303,15 @@ There may be more options than shown -- use the source, Luke! | |||
| 308 | 303 | ||
| 309 | Everything else is rejected with a "BAD OPTION" message. | 304 | Everything else is rejected with a "BAD OPTION" message. |
| 310 | 305 | ||
| 306 | For legacy IDE VLB host drivers (ali14xx/dtc2278/ht6560b/qd65xx/umc8672) | ||
| 307 | you need to explicitly enable probing by using "probe" kernel parameter, | ||
| 308 | i.e. to enable probing for ALI M14xx chipsets (ali14xx host driver) use: | ||
| 309 | |||
| 310 | * "ali14xx.probe" boot option when ali14xx driver is built-in the kernel | ||
| 311 | |||
| 312 | * "probe" module parameter when ali14xx driver is compiled as module | ||
| 313 | ("modprobe ali14xx probe") | ||
| 314 | |||
| 311 | ================================================================================ | 315 | ================================================================================ |
| 312 | 316 | ||
| 313 | IDE ATAPI streaming tape driver | 317 | IDE ATAPI streaming tape driver |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 49234e32fd16..5d134bb75ba1 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
| @@ -1023,7 +1023,7 @@ config BLK_DEV_4DRIVES | |||
| 1023 | config BLK_DEV_ALI14XX | 1023 | config BLK_DEV_ALI14XX |
| 1024 | tristate "ALI M14xx support" | 1024 | tristate "ALI M14xx support" |
| 1025 | help | 1025 | help |
| 1026 | This driver is enabled at runtime using the "ide0=ali14xx" kernel | 1026 | This driver is enabled at runtime using the "ali14xx.probe" kernel |
| 1027 | boot parameter. It enables support for the secondary IDE interface | 1027 | boot parameter. It enables support for the secondary IDE interface |
| 1028 | of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster | 1028 | of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster |
| 1029 | I/O speeds to be set as well. See the files | 1029 | I/O speeds to be set as well. See the files |
| @@ -1033,7 +1033,7 @@ config BLK_DEV_ALI14XX | |||
| 1033 | config BLK_DEV_DTC2278 | 1033 | config BLK_DEV_DTC2278 |
| 1034 | tristate "DTC-2278 support" | 1034 | tristate "DTC-2278 support" |
| 1035 | help | 1035 | help |
| 1036 | This driver is enabled at runtime using the "ide0=dtc2278" kernel | 1036 | This driver is enabled at runtime using the "dtc2278.probe" kernel |
| 1037 | boot parameter. It enables support for the secondary IDE interface | 1037 | boot parameter. It enables support for the secondary IDE interface |
| 1038 | of the DTC-2278 card, and permits faster I/O speeds to be set as | 1038 | of the DTC-2278 card, and permits faster I/O speeds to be set as |
| 1039 | well. See the <file:Documentation/ide.txt> and | 1039 | well. See the <file:Documentation/ide.txt> and |
| @@ -1042,7 +1042,7 @@ config BLK_DEV_DTC2278 | |||
| 1042 | config BLK_DEV_HT6560B | 1042 | config BLK_DEV_HT6560B |
| 1043 | tristate "Holtek HT6560B support" | 1043 | tristate "Holtek HT6560B support" |
| 1044 | help | 1044 | help |
| 1045 | This driver is enabled at runtime using the "ide0=ht6560b" kernel | 1045 | This driver is enabled at runtime using the "ht6560b.probe" kernel |
| 1046 | boot parameter. It enables support for the secondary IDE interface | 1046 | boot parameter. It enables support for the secondary IDE interface |
| 1047 | of the Holtek card, and permits faster I/O speeds to be set as well. | 1047 | of the Holtek card, and permits faster I/O speeds to be set as well. |
| 1048 | See the <file:Documentation/ide.txt> and | 1048 | See the <file:Documentation/ide.txt> and |
| @@ -1051,7 +1051,7 @@ config BLK_DEV_HT6560B | |||
| 1051 | config BLK_DEV_QD65XX | 1051 | config BLK_DEV_QD65XX |
| 1052 | tristate "QDI QD65xx support" | 1052 | tristate "QDI QD65xx support" |
| 1053 | help | 1053 | help |
| 1054 | This driver is enabled at runtime using the "ide0=qd65xx" kernel | 1054 | This driver is enabled at runtime using the "qd65xx.probe" kernel |
| 1055 | boot parameter. It permits faster I/O speeds to be set. See the | 1055 | boot parameter. It permits faster I/O speeds to be set. See the |
| 1056 | <file:Documentation/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> for | 1056 | <file:Documentation/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> for |
| 1057 | more info. | 1057 | more info. |
| @@ -1059,7 +1059,7 @@ config BLK_DEV_QD65XX | |||
| 1059 | config BLK_DEV_UMC8672 | 1059 | config BLK_DEV_UMC8672 |
| 1060 | tristate "UMC-8672 support" | 1060 | tristate "UMC-8672 support" |
| 1061 | help | 1061 | help |
| 1062 | This driver is enabled at runtime using the "ide0=umc8672" kernel | 1062 | This driver is enabled at runtime using the "umc8672.probe" kernel |
| 1063 | boot parameter. It enables support for the secondary IDE interface | 1063 | boot parameter. It enables support for the secondary IDE interface |
| 1064 | of the UMC-8672, and permits faster I/O speeds to be set as well. | 1064 | of the UMC-8672, and permits faster I/O speeds to be set as well. |
| 1065 | See the files <file:Documentation/ide.txt> and | 1065 | See the files <file:Documentation/ide.txt> and |
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index ac1a720f182a..dfbd74458522 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
| @@ -1484,23 +1484,23 @@ static int __init match_parm (char *s, const char *keywords[], int vals[], int m | |||
| 1484 | } | 1484 | } |
| 1485 | 1485 | ||
| 1486 | #ifdef CONFIG_BLK_DEV_ALI14XX | 1486 | #ifdef CONFIG_BLK_DEV_ALI14XX |
| 1487 | static int __initdata probe_ali14xx; | 1487 | extern int probe_ali14xx; |
| 1488 | extern int ali14xx_init(void); | 1488 | extern int ali14xx_init(void); |
| 1489 | #endif | 1489 | #endif |
| 1490 | #ifdef CONFIG_BLK_DEV_UMC8672 | 1490 | #ifdef CONFIG_BLK_DEV_UMC8672 |
| 1491 | static int __initdata probe_umc8672; | 1491 | extern int probe_umc8672; |
| 1492 | extern int umc8672_init(void); | 1492 | extern int umc8672_init(void); |
| 1493 | #endif | 1493 | #endif |
| 1494 | #ifdef CONFIG_BLK_DEV_DTC2278 | 1494 | #ifdef CONFIG_BLK_DEV_DTC2278 |
| 1495 | static int __initdata probe_dtc2278; | 1495 | extern int probe_dtc2278; |
| 1496 | extern int dtc2278_init(void); | 1496 | extern int dtc2278_init(void); |
| 1497 | #endif | 1497 | #endif |
| 1498 | #ifdef CONFIG_BLK_DEV_HT6560B | 1498 | #ifdef CONFIG_BLK_DEV_HT6560B |
| 1499 | static int __initdata probe_ht6560b; | 1499 | extern int probe_ht6560b; |
| 1500 | extern int ht6560b_init(void); | 1500 | extern int ht6560b_init(void); |
| 1501 | #endif | 1501 | #endif |
| 1502 | #ifdef CONFIG_BLK_DEV_QD65XX | 1502 | #ifdef CONFIG_BLK_DEV_QD65XX |
| 1503 | static int __initdata probe_qd65xx; | 1503 | extern int probe_qd65xx; |
| 1504 | extern int qd65xx_init(void); | 1504 | extern int qd65xx_init(void); |
| 1505 | #endif | 1505 | #endif |
| 1506 | 1506 | ||
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 | ||
| 231 | int probe_ali14xx = 0; | ||
| 232 | |||
| 233 | module_param_named(probe, probe_ali14xx, bool, 0); | ||
| 234 | MODULE_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. */ |
| 232 | int __init ali14xx_init(void) | 237 | int __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"); |
| 249 | out: | ||
| 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 | ||
| 95 | static int __init probe_dtc2278(void) | 95 | static 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 | ||
| 146 | int probe_dtc2278 = 0; | ||
| 147 | |||
| 148 | module_param_named(probe, probe_dtc2278, bool, 0); | ||
| 149 | MODULE_PARM_DESC(probe, "probe for DTC2278xx chipsets"); | ||
| 150 | |||
| 146 | /* Can be called directly from ide.c. */ | 151 | /* Can be called directly from ide.c. */ |
| 147 | int __init dtc2278_init(void) | 152 | int __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 | ||
| 304 | int probe_ht6560b = 0; | ||
| 305 | |||
| 306 | module_param_named(probe, probe_ht6560b, bool, 0); | ||
| 307 | MODULE_PARM_DESC(probe, "probe for HT6560B chipset"); | ||
| 308 | |||
| 304 | /* Can be called directly from ide.c. */ | 309 | /* Can be called directly from ide.c. */ |
| 305 | int __init ht6560b_init(void) | 310 | int __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 | ||
| 491 | int probe_qd65xx = 0; | ||
| 492 | |||
| 493 | module_param_named(probe, probe_qd65xx, bool, 0); | ||
| 494 | MODULE_PARM_DESC(probe, "probe for QD65xx chipsets"); | ||
| 495 | |||
| 491 | /* Can be called directly from ide.c. */ | 496 | /* Can be called directly from ide.c. */ |
| 492 | int __init qd65xx_init(void) | 497 | int __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 | ||
| 168 | int probe_umc8672 = 0; | ||
| 169 | |||
| 170 | module_param_named(probe, probe_umc8672, bool, 0); | ||
| 171 | MODULE_PARM_DESC(probe, "probe for UMC8672 chipset"); | ||
| 172 | |||
| 168 | /* Can be called directly from ide.c. */ | 173 | /* Can be called directly from ide.c. */ |
| 169 | int __init umc8672_init(void) | 174 | int __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;; | ||
| 181 | out: | ||
| 182 | return -ENODEV;; | ||
| 174 | } | 183 | } |
| 175 | 184 | ||
| 176 | #ifdef MODULE | 185 | #ifdef MODULE |
