Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a0e77f2 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters (take 2)



* 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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 80aa31cb
Loading
Loading
Loading
Loading
+1 −32
Original line number Diff line number Diff line
@@ -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
+1 −2
Original line number Diff line number Diff line
@@ -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;
+1 −2
Original line number Diff line number Diff line
@@ -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);
		}
+0 −3
Original line number Diff line number Diff line
@@ -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;
+12 −29
Original line number Diff line number Diff line
@@ -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;
			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;
Loading