ide: remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters (take 2)
Bartlomiej Zolnierkiewicz [Thu, 17 Apr 2008 22:46:24 +0000 (00:46 +0200)]
* Remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters
  and update Documentation/ide/ide.txt.

* Remove no longer needed ide_forced chipset type.

v2:
* is_chipset_set[] -> is_chipset_set in ide.c.

* Documentation/ide/ide.txt fix.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

Documentation/ide/ide.txt
drivers/ide/ide-generic.c
drivers/ide/ide-probe.c
drivers/ide/ide-proc.c
drivers/ide/ide.c
drivers/ide/pci/cmd640.c
drivers/ide/setup-pci.c
include/linux/ide.h

index ae4f4f4..18c02df 100644 (file)
@@ -71,29 +71,6 @@ This driver automatically probes for most IDE interfaces (including all PCI
 ones), for the drives/geometries attached to those interfaces, and for the IRQ
 lines being used by the interfaces (normally 14, 15 for ide0/ide1).
 
-For special cases, interfaces may be specified using kernel "command line"
-options.  For example,
-
-       ide3=0x168,0x36e,10     /* ioports 0x168-0x16f,0x36e, irq 10 */
-
-Normally the irq number need not be specified, as ide.c will probe for it:
-
-       ide3=0x168,0x36e        /* ioports 0x168-0x16f,0x36e */
-
-The standard port, and irq values are these:
-
-       ide0=0x1f0,0x3f6,14
-       ide1=0x170,0x376,15
-       ide2=0x1e8,0x3ee,11
-       ide3=0x168,0x36e,10
-
-Note that the first parameter reserves 8 contiguous ioports, whereas the
-second value denotes a single ioport. If in doubt, do a 'cat /proc/ioports'.
-
-In all probability the device uses these ports and IRQs if it is attached
-to the appropriate ide channel.  Pass the parameter for the correct ide
-channel to the kernel, as explained above.
-
 Any number of interfaces may share a single IRQ if necessary, at a slight
 performance penalty, whether on separate cards or a single VLB card.
 The IDE driver automatically detects and handles this.  However, this may
@@ -199,7 +176,7 @@ When ide.c is used as a module, you can pass command line parameters to the
 driver using the "options=" keyword to insmod, while replacing any ',' with
 ';'.  For example:
 
-       insmod ide.o options="ide0=serialize ide1=serialize ide2=0x1e8;0x3ee;11"
+       insmod ide.o options="hda=nodma hdb=nodma"
 
 
 ================================================================================
@@ -240,14 +217,6 @@ Summary of ide driver parameters for kernel command line
                          As for VLB, it is safest to not specify it.
                          Bigger values are safer than smaller ones.
 
- "idex=base"           : probe for an interface at the addr specified,
-                         where "base" is usually 0x1f0 or 0x170
-                         and "ctl" is assumed to be "base"+0x206
-
- "idex=base,ctl"       : specify both base and ctl
-
- "idex=base,ctl,irq"   : specify base, ctl, and irq number
-
  "idex=serialize"      : do not overlap operations on idex. Please note
                          that you will have to specify this option for
                          both the respective primary and secondary channel
index 387574f..bae4145 100644 (file)
@@ -93,8 +93,7 @@ static int __init ide_generic_init(void)
                ide_hwif_t *hwif = &ide_hwifs[i];
 
                if (hwif->io_ports[IDE_DATA_OFFSET] &&
-                   (hwif->chipset == ide_unknown ||
-                    hwif->chipset == ide_forced))
+                   hwif->chipset == ide_unknown)
                        idx[i] = i;
                else
                        idx[i] = 0xff;
index 8ef5194..33cb5e5 100644 (file)
@@ -1519,8 +1519,7 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d)
                hwif = &ide_hwifs[idx[i]];
 
                if (hwif->present) {
-                       if (hwif->chipset == ide_unknown ||
-                           hwif->chipset == ide_forced)
+                       if (hwif->chipset == ide_unknown)
                                hwif->chipset = ide_generic;
                        hwif_register_devices(hwif);
                }
index 77025d1..edd7f18 100644 (file)
@@ -46,9 +46,6 @@ static int proc_ide_read_imodel
        int             len;
        const char      *name;
 
-       /*
-        * Neither ide_unknown nor ide_forced should be set at this point.
-        */
        switch (hwif->chipset) {
                case ide_generic:       name = "generic";       break;
                case ide_pci:           name = "pci";           break;
index 96126b3..7e789c9 100644 (file)
@@ -1170,7 +1170,7 @@ extern int probe_ht6560b;
 extern int probe_qd65xx;
 extern int cmd640_vlb;
 
-static int __initdata is_chipset_set[MAX_HWIFS];
+static int __initdata is_chipset_set;
 
 /*
  * ide_setup() gets called VERY EARLY during initialization,
@@ -1328,8 +1328,6 @@ static int __init ide_setup(char *s)
                        "minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb",
                        "dtc2278", "umc8672", "ali14xx", NULL };
 
-               hw_regs_t hwregs;
-
                hw = s[3] - '0';
                hwif = &ide_hwifs[hw];
                i = match_parm(&s[4], ide_words, vals, 3);
@@ -1338,19 +1336,14 @@ static int __init ide_setup(char *s)
                 * Cryptic check to ensure chipset not already set for hwif.
                 * Note: we can't depend on hwif->chipset here.
                 */
-               if ((i >= -18 && i <= -11) || (i > 0 && i <= 3)) {
+               if (i >= -18 && i <= -11) {
                        /* chipset already specified */
-                       if (is_chipset_set[hw])
+                       if (is_chipset_set)
                                goto bad_option;
-                       if (i > -18 && i <= -11) {
-                               /* these drivers are for "ide0=" only */
-                               if (hw != 0)
-                                       goto bad_hwif;
-                               /* chipset already specified for 2nd port */
-                               if (is_chipset_set[hw+1])
-                                       goto bad_option;
-                       }
-                       is_chipset_set[hw] = 1;
+                       /* these drivers are for "ide0=" only */
+                       if (hw != 0)
+                               goto bad_hwif;
+                       is_chipset_set = 1;
                        printk("\n");
                }
 
@@ -1430,21 +1423,11 @@ static int __init ide_setup(char *s)
                        case -1: /* "noprobe" */
                                hwif->noprobe = 1;
                                goto obsolete_option;
-
-                       case 1: /* base */
-                               vals[1] = vals[0] + 0x206; /* default ctl */
-                       case 2: /* base,ctl */
-                               vals[2] = 0;    /* default irq = probe for it */
-                       case 3: /* base,ctl,irq */
-                               memset(&hwregs, 0, sizeof(hwregs));
-                               ide_init_hwif_ports(&hwregs, vals[0], vals[1], &hwif->irq);
-                               memcpy(hwif->io_ports, hwregs.io_ports, sizeof(hwif->io_ports));
-                               hwif->irq      = vals[2];
-                               hwif->noprobe  = 0;
-                               hwif->chipset  = ide_forced;
-                               goto obsolete_option;
-
-                       case 0: goto bad_option;
+                       case 0:
+                       case 1:
+                       case 2:
+                       case 3:
+                               goto bad_option;
                        default:
                                printk(" -- SUPPORT NOT CONFIGURED IN THIS KERNEL\n");
                                return 1;
index 29fbc5e..58a95f6 100644 (file)
@@ -415,7 +415,7 @@ static void __init setup_device_ptrs (void)
        cmd_hwif1 = &ide_hwifs[1]; /* default, if not found below */
        for (i = 0; i < MAX_HWIFS; i++) {
                ide_hwif_t *hwif = &ide_hwifs[i];
-               if (hwif->chipset == ide_unknown || hwif->chipset == ide_forced) {
+               if (hwif->chipset == ide_unknown) {
                        if (hwif->io_ports[IDE_DATA_OFFSET] == 0x1f0)
                                cmd_hwif0 = hwif;
                        else if (hwif->io_ports[IDE_DATA_OFFSET] == 0x170)
index 634e3f6..ea66c99 100644 (file)
@@ -41,17 +41,6 @@ static ide_hwif_t *ide_match_hwif(unsigned long io_base, u8 bootable, const char
        ide_hwif_t *hwif;
 
        /*
-        * Look for a hwif with matching io_base specified using
-        * parameters to ide_setup().
-        */
-       for (h = 0; h < MAX_HWIFS; ++h) {
-               hwif = &ide_hwifs[h];
-               if (hwif->io_ports[IDE_DATA_OFFSET] == io_base) {
-                       if (hwif->chipset == ide_forced)
-                               return hwif; /* a perfect match */
-               }
-       }
-       /*
         * Look for a hwif with matching io_base default value.
         * If chipset is "ide_unknown", then claim that hwif slot.
         * Otherwise, some other chipset has already claimed it..  :(
index 9cebf30..67f83c6 100644 (file)
@@ -169,7 +169,7 @@ enum {              ide_unknown,    ide_generic,    ide_pci,
                ide_rz1000,     ide_trm290,
                ide_cmd646,     ide_cy82c693,   ide_4drives,
                ide_pmac,       ide_etrax100,   ide_acorn,
-               ide_au1xxx,     ide_palm3710,   ide_forced
+               ide_au1xxx,     ide_palm3710
 };
 
 typedef u8 hwif_chipset_t;