aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/ide/ide.txt2
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--drivers/ide/ide.c115
-rw-r--r--drivers/ide/legacy/ali14xx.c2
-rw-r--r--drivers/ide/legacy/dtc2278.c2
-rw-r--r--drivers/ide/legacy/ht6560b.c2
-rw-r--r--drivers/ide/legacy/ide-4drives.c2
-rw-r--r--drivers/ide/legacy/qd65xx.c2
-rw-r--r--drivers/ide/legacy/umc8672.c2
-rw-r--r--drivers/ide/pci/cmd640.c5
10 files changed, 8 insertions, 130 deletions
diff --git a/Documentation/ide/ide.txt b/Documentation/ide/ide.txt
index 53e5beda525c..af95fb33d1a1 100644
--- a/Documentation/ide/ide.txt
+++ b/Documentation/ide/ide.txt
@@ -186,8 +186,6 @@ Summary of ide driver parameters for kernel command line
186 186
187 "hdx=" is recognized for all "x" from "a" to "u", such as "hdc". 187 "hdx=" is recognized for all "x" from "a" to "u", such as "hdc".
188 188
189 "idex=" is recognized for all "x" from "0" to "9", such as "ide1".
190
191 "hdx=noprobe" : drive may be present, but do not probe for it 189 "hdx=noprobe" : drive may be present, but do not probe for it
192 190
193 "hdx=none" : drive is NOT present, ignore cmos and do not probe 191 "hdx=none" : drive is NOT present, ignore cmos and do not probe
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index bf6303ec0bde..e5f3d918316f 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -772,10 +772,6 @@ and is between 256 and 4096 characters. It is defined in the file
772 Format: ide=nodma or ide=doubler 772 Format: ide=nodma or ide=doubler
773 See Documentation/ide/ide.txt. 773 See Documentation/ide/ide.txt.
774 774
775 ide?= [HW] (E)IDE subsystem
776 Format: ide?=ata66 or chipset specific parameters.
777 See Documentation/ide/ide.txt.
778
779 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed 775 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed
780 See Documentation/ide/ide.txt. 776 See Documentation/ide/ide.txt.
781 777
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 7ccf99a11fb6..a33840d11770 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -837,16 +837,6 @@ static int __init match_parm (char *s, const char *keywords[], int vals[], int m
837 return 0; /* zero = nothing matched */ 837 return 0; /* zero = nothing matched */
838} 838}
839 839
840extern int probe_ali14xx;
841extern int probe_umc8672;
842extern int probe_dtc2278;
843extern int probe_ht6560b;
844extern int probe_qd65xx;
845extern int cmd640_vlb;
846extern int probe_4drives;
847
848static int __initdata is_chipset_set;
849
850/* 840/*
851 * ide_setup() gets called VERY EARLY during initialization, 841 * ide_setup() gets called VERY EARLY during initialization,
852 * to handle kernel "command line" strings beginning with "hdx=" or "ide". 842 * to handle kernel "command line" strings beginning with "hdx=" or "ide".
@@ -855,14 +845,12 @@ static int __initdata is_chipset_set;
855 */ 845 */
856static int __init ide_setup(char *s) 846static int __init ide_setup(char *s)
857{ 847{
858 int i, vals[3];
859 ide_hwif_t *hwif; 848 ide_hwif_t *hwif;
860 ide_drive_t *drive; 849 ide_drive_t *drive;
861 unsigned int hw, unit; 850 unsigned int hw, unit;
851 int vals[3];
862 const char max_drive = 'a' + ((MAX_HWIFS * MAX_DRIVES) - 1); 852 const char max_drive = 'a' + ((MAX_HWIFS * MAX_DRIVES) - 1);
863 const char max_hwif = '0' + (MAX_HWIFS - 1);
864 853
865
866 if (strncmp(s,"hd",2) == 0 && s[2] == '=') /* hd= is for hd.c */ 854 if (strncmp(s,"hd",2) == 0 && s[2] == '=') /* hd= is for hd.c */
867 return 0; /* driver and not us */ 855 return 0; /* driver and not us */
868 856
@@ -986,114 +974,13 @@ static int __init ide_setup(char *s)
986 printk(" -- BAD BUS SPEED! Expected value from 20 to 66"); 974 printk(" -- BAD BUS SPEED! Expected value from 20 to 66");
987 goto done; 975 goto done;
988 } 976 }
989 /*
990 * Look for interface options: "idex="
991 */
992 if (s[3] >= '0' && s[3] <= max_hwif) {
993 /*
994 * Be VERY CAREFUL changing this: note hardcoded indexes below
995 * (-8, -9, -10) are reserved to ease the hardcoding.
996 */
997 static const char *ide_words[] = {
998 "minus1", "minus2", "minus3", "minus4",
999 "minus5", "minus6", "ata66", "minus8", "minus9",
1000 "minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb",
1001 "dtc2278", "umc8672", "ali14xx", NULL };
1002
1003 hw = s[3] - '0';
1004 hwif = &ide_hwifs[hw];
1005 i = match_parm(&s[4], ide_words, vals, 3);
1006
1007 /*
1008 * Cryptic check to ensure chipset not already set for hwif.
1009 * Note: we can't depend on hwif->chipset here.
1010 */
1011 if (i >= -18 && i <= -11) {
1012 /* chipset already specified */
1013 if (is_chipset_set)
1014 goto bad_option;
1015 /* these drivers are for "ide0=" only */
1016 if (hw != 0)
1017 goto bad_hwif;
1018 is_chipset_set = 1;
1019 printk("\n");
1020 }
1021 977
1022 switch (i) {
1023#ifdef CONFIG_BLK_DEV_ALI14XX
1024 case -17: /* "ali14xx" */
1025 probe_ali14xx = 1;
1026 goto obsolete_option;
1027#endif
1028#ifdef CONFIG_BLK_DEV_UMC8672
1029 case -16: /* "umc8672" */
1030 probe_umc8672 = 1;
1031 goto obsolete_option;
1032#endif
1033#ifdef CONFIG_BLK_DEV_DTC2278
1034 case -15: /* "dtc2278" */
1035 probe_dtc2278 = 1;
1036 goto obsolete_option;
1037#endif
1038#ifdef CONFIG_BLK_DEV_CMD640
1039 case -14: /* "cmd640_vlb" */
1040 cmd640_vlb = 1;
1041 goto obsolete_option;
1042#endif
1043#ifdef CONFIG_BLK_DEV_HT6560B
1044 case -13: /* "ht6560b" */
1045 probe_ht6560b = 1;
1046 goto obsolete_option;
1047#endif
1048#ifdef CONFIG_BLK_DEV_QD65XX
1049 case -12: /* "qd65xx" */
1050 probe_qd65xx = 1;
1051 goto obsolete_option;
1052#endif
1053#ifdef CONFIG_BLK_DEV_4DRIVES
1054 case -11: /* "four" drives on one set of ports */
1055 probe_4drives = 1;
1056 goto obsolete_option;
1057#endif
1058 case -10: /* minus10 */
1059 case -9: /* minus9 */
1060 case -8: /* minus8 */
1061 case -6:
1062 case -4:
1063 case -3:
1064 goto bad_option;
1065 case -7: /* ata66 */
1066#ifdef CONFIG_BLK_DEV_IDEPCI
1067 /*
1068 * Use ATA_CBL_PATA40_SHORT so drive side
1069 * cable detection is also overriden.
1070 */
1071 hwif->cbl = ATA_CBL_PATA40_SHORT;
1072 goto obsolete_option;
1073#else
1074 goto bad_hwif;
1075#endif
1076 case -5:
1077 case -2:
1078 case -1:
1079 case 0:
1080 case 1:
1081 case 2:
1082 case 3:
1083 goto bad_option;
1084 default:
1085 printk(" -- SUPPORT NOT CONFIGURED IN THIS KERNEL\n");
1086 return 1;
1087 }
1088 }
1089bad_option: 978bad_option:
1090 printk(" -- BAD OPTION\n"); 979 printk(" -- BAD OPTION\n");
1091 return 1; 980 return 1;
1092obsolete_option: 981obsolete_option:
1093 printk(" -- OBSOLETE OPTION, WILL BE REMOVED SOON!\n"); 982 printk(" -- OBSOLETE OPTION, WILL BE REMOVED SOON!\n");
1094 return 1; 983 return 1;
1095bad_hwif:
1096 printk("-- NOT SUPPORTED ON ide%d", hw);
1097done: 984done:
1098 printk("\n"); 985 printk("\n");
1099 return 1; 986 return 1;
diff --git a/drivers/ide/legacy/ali14xx.c b/drivers/ide/legacy/ali14xx.c
index 6efbf947c6db..c6898639b799 100644
--- a/drivers/ide/legacy/ali14xx.c
+++ b/drivers/ide/legacy/ali14xx.c
@@ -220,7 +220,7 @@ static int __init ali14xx_probe(void)
220 return ide_legacy_device_add(&ali14xx_port_info, 0); 220 return ide_legacy_device_add(&ali14xx_port_info, 0);
221} 221}
222 222
223int probe_ali14xx; 223static int probe_ali14xx;
224 224
225module_param_named(probe, probe_ali14xx, bool, 0); 225module_param_named(probe, probe_ali14xx, bool, 0);
226MODULE_PARM_DESC(probe, "probe for ALI M14xx chipsets"); 226MODULE_PARM_DESC(probe, "probe for ALI M14xx chipsets");
diff --git a/drivers/ide/legacy/dtc2278.c b/drivers/ide/legacy/dtc2278.c
index f7c4ad1c57c0..581909ac1032 100644
--- a/drivers/ide/legacy/dtc2278.c
+++ b/drivers/ide/legacy/dtc2278.c
@@ -131,7 +131,7 @@ static int __init dtc2278_probe(void)
131 return ide_legacy_device_add(&dtc2278_port_info, 0); 131 return ide_legacy_device_add(&dtc2278_port_info, 0);
132} 132}
133 133
134int probe_dtc2278 = 0; 134static int probe_dtc2278;
135 135
136module_param_named(probe, probe_dtc2278, bool, 0); 136module_param_named(probe, probe_dtc2278, bool, 0);
137MODULE_PARM_DESC(probe, "probe for DTC2278xx chipsets"); 137MODULE_PARM_DESC(probe, "probe for DTC2278xx chipsets");
diff --git a/drivers/ide/legacy/ht6560b.c b/drivers/ide/legacy/ht6560b.c
index 702d8deb5780..8b2a5b484d9f 100644
--- a/drivers/ide/legacy/ht6560b.c
+++ b/drivers/ide/legacy/ht6560b.c
@@ -323,7 +323,7 @@ static void __init ht6560b_port_init_devs(ide_hwif_t *hwif)
323 hwif->drives[1].drive_data = t; 323 hwif->drives[1].drive_data = t;
324} 324}
325 325
326int probe_ht6560b = 0; 326static int probe_ht6560b;
327 327
328module_param_named(probe, probe_ht6560b, bool, 0); 328module_param_named(probe, probe_ht6560b, bool, 0);
329MODULE_PARM_DESC(probe, "probe for HT6560B chipset"); 329MODULE_PARM_DESC(probe, "probe for HT6560B chipset");
diff --git a/drivers/ide/legacy/ide-4drives.c b/drivers/ide/legacy/ide-4drives.c
index 17f94d0cb539..ecae916a3385 100644
--- a/drivers/ide/legacy/ide-4drives.c
+++ b/drivers/ide/legacy/ide-4drives.c
@@ -6,7 +6,7 @@
6 6
7#define DRV_NAME "ide-4drives" 7#define DRV_NAME "ide-4drives"
8 8
9int probe_4drives; 9static int probe_4drives;
10 10
11module_param_named(probe, probe_4drives, bool, 0); 11module_param_named(probe, probe_4drives, bool, 0);
12MODULE_PARM_DESC(probe, "probe for generic IDE chipset with 4 drives/port"); 12MODULE_PARM_DESC(probe, "probe for generic IDE chipset with 4 drives/port");
diff --git a/drivers/ide/legacy/qd65xx.c b/drivers/ide/legacy/qd65xx.c
index 15a99aae0cf9..61d5889834e4 100644
--- a/drivers/ide/legacy/qd65xx.c
+++ b/drivers/ide/legacy/qd65xx.c
@@ -399,7 +399,7 @@ static int __init qd_probe(int base)
399 return rc; 399 return rc;
400} 400}
401 401
402int probe_qd65xx = 0; 402static int probe_qd65xx;
403 403
404module_param_named(probe, probe_qd65xx, bool, 0); 404module_param_named(probe, probe_qd65xx, bool, 0);
405MODULE_PARM_DESC(probe, "probe for QD65xx chipsets"); 405MODULE_PARM_DESC(probe, "probe for QD65xx chipsets");
diff --git a/drivers/ide/legacy/umc8672.c b/drivers/ide/legacy/umc8672.c
index 17d515329fe0..6f25f0f4da09 100644
--- a/drivers/ide/legacy/umc8672.c
+++ b/drivers/ide/legacy/umc8672.c
@@ -158,7 +158,7 @@ static int __init umc8672_probe(void)
158 return ide_legacy_device_add(&umc8672_port_info, 0); 158 return ide_legacy_device_add(&umc8672_port_info, 0);
159} 159}
160 160
161int probe_umc8672; 161static int probe_umc8672;
162 162
163module_param_named(probe, probe_umc8672, bool, 0); 163module_param_named(probe, probe_umc8672, bool, 0);
164MODULE_PARM_DESC(probe, "probe for UMC8672 chipset"); 164MODULE_PARM_DESC(probe, "probe for UMC8672 chipset");
diff --git a/drivers/ide/pci/cmd640.c b/drivers/ide/pci/cmd640.c
index 25c2f1bd175f..0f6f11e69807 100644
--- a/drivers/ide/pci/cmd640.c
+++ b/drivers/ide/pci/cmd640.c
@@ -111,10 +111,7 @@
111 111
112#define DRV_NAME "cmd640" 112#define DRV_NAME "cmd640"
113 113
114/* 114static int cmd640_vlb;
115 * This flag is set in ide.c by the parameter: ide0=cmd640_vlb
116 */
117int cmd640_vlb;
118 115
119/* 116/*
120 * CMD640 specific registers definition. 117 * CMD640 specific registers definition.