and quite likely to cause trouble with
older/odd IDE drives.
- "hdx=biostimings" : driver will NOT attempt to tune interface speed
- (DMA/PIO) but always honour BIOS timings.
-
"hdx=slow" : insert a huge pause after each access to the data
port. Should be used only as a last resort.
This is the default for most chipsets,
except the cmd640.
- "idex=biostimings" : driver will NOT attempt to tune interface speed
- (DMA/PIO) but always honour BIOS timings.
-
"idex=serialize" : do not overlap operations on idex. Please note
that you will have to specify this option for
both the respecitve primary and secondary channel
if (hwif->chipset != ide_trm290) {
u8 dma_stat = hwif->INB(hwif->dma_status);
- printk(", BIOS settings: %s:%s%s, %s:%s%s",
+ printk(", BIOS settings: %s:%s, %s:%s",
hwif->drives[0].name, (dma_stat & 0x20) ? "DMA" : "pio",
- hwif->drives[0].autotune == IDE_TUNE_BIOS ?
- " (used)" : "",
- hwif->drives[1].name, (dma_stat & 0x40) ? "DMA" : "pio",
- hwif->drives[1].autotune == IDE_TUNE_BIOS ?
- " (used)" : "");
-
- if (hwif->drives[0].autotune == IDE_TUNE_BIOS)
- hwif->drives[0].using_dma = (dma_stat & 0x20);
- if (hwif->drives[1].autotune == IDE_TUNE_BIOS)
- hwif->drives[1].using_dma = (dma_stat & 0x40);
+ hwif->drives[1].name, (dma_stat & 0x40) ? "DMA" : "pio");
}
printk("\n");
* Not fully supported by all chipset types,
* and quite likely to cause trouble with
* older/odd IDE drives.
- * "hdx=biostimings" : driver will NOT attempt to tune interface speed
- * (DMA/PIO) but always honour BIOS timings.
* "hdx=slow" : insert a huge pause after each access to the data
* port. Should be used only as a last resort.
*
* "idex=noautotune" : driver will NOT attempt to tune interface speed
* This is the default for most chipsets,
* except the cmd640.
- * "idex=biostimings" : driver will NOT attempt to tune interface speed
- * (DMA/PIO) but always honour BIOS timings.
* "idex=serialize" : do not overlap operations on idex and ide(x^1)
* "idex=four" : four drives on idex and ide(x^1) share same ports
* "idex=reset" : reset interface before first use
const char *hd_words[] = {
"none", "noprobe", "nowerr", "cdrom", "serialize",
"autotune", "noautotune", "slow", "swapdata", "bswap",
- "flash", "remap", "remap63", "scsi", "biostimings",
- NULL };
+ "flash", "remap", "remap63", "scsi", NULL };
unit = s[2] - 'a';
hw = unit / MAX_DRIVES;
unit = unit % MAX_DRIVES;
case -14: /* "scsi" */
drive->scsi = 1;
goto done;
- case -15: /* "biostimings" */
- drive->autotune = IDE_TUNE_BIOS;
- goto done;
case 3: /* cyl,head,sect */
drive->media = ide_disk;
drive->cyl = drive->bios_cyl = vals[0];
if (s[3] >= '0' && s[3] <= max_hwif) {
/*
* Be VERY CAREFUL changing this: note hardcoded indexes below
- * -9,-10 : are reserved for future idex calls to ease the hardcoding.
+ * (-8, -9, -10) are reserved to ease the hardcoding.
*/
const char *ide_words[] = {
"noprobe", "serialize", "autotune", "noautotune",
- "reset", "dma", "ata66", "biostimings", "minus9",
+ "reset", "dma", "ata66", "minus8", "minus9",
"minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb",
"dtc2278", "umc8672", "ali14xx", "dc4030", NULL };
hw = s[3] - '0';
#endif /* CONFIG_BLK_DEV_4DRIVES */
case -10: /* minus10 */
case -9: /* minus9 */
+ case -8: /* minus8 */
goto bad_option;
- case -8: /* "biostimings" */
- hwif->drives[0].autotune = IDE_TUNE_BIOS;
- hwif->drives[1].autotune = IDE_TUNE_BIOS;
- goto done;
case -7: /* ata66 */
#ifdef CONFIG_BLK_DEV_IDEPCI
hwif->udma_four = 1;
int at_least_one_hwif_enabled = 0;
ide_hwif_t *hwif, *mate = NULL;
static int secondpdc = 0;
- int drive0_tune, drive1_tune;
u8 tmp;
index->all = 0xf0f0;
else
ide_hwif_setup_dma(dev, d, hwif);
bypass_legacy_dma:
-
- drive0_tune = hwif->drives[0].autotune;
- drive1_tune = hwif->drives[1].autotune;
-
if (d->init_hwif)
/* Call chipset-specific routine
* for each enabled hwif
*/
d->init_hwif(hwif);
- /*
- * This is in the wrong place. The driver may
- * do set up based on the autotune value and this
- * will then trash it. Torben please move it and
- * propagate the fixes into the drivers
- */
- if (drive0_tune == IDE_TUNE_BIOS) /* biostimings */
- hwif->drives[0].autotune = IDE_TUNE_BIOS;
- if (drive1_tune == IDE_TUNE_BIOS)
- hwif->drives[1].autotune = IDE_TUNE_BIOS;
-
mate = hwif;
at_least_one_hwif_enabled = 1;
}
/*
* Tune flags
*/
-#define IDE_TUNE_BIOS 3
#define IDE_TUNE_NOAUTO 2
#define IDE_TUNE_AUTO 1
#define IDE_TUNE_DEFAULT 0
unsigned nice0 : 1; /* give obvious excess bandwidth */
unsigned nice2 : 1; /* give a share in our own bandwidth */
unsigned doorlocking : 1; /* for removable only: door lock/unlock works */
- unsigned autotune : 3; /* 1=autotune, 2=noautotune,
- 3=biostimings, 0=default */
+ unsigned autotune : 2; /* 0=default, 1=autotune, 2=noautotune */
unsigned remap_0_to_1 : 1; /* 0=noremap, 1=remap 0->1 (for EZDrive) */
unsigned ata_flash : 1; /* 1=present, 0=default */
unsigned blocked : 1; /* 1=powermanagment told us not to do anything, so sleep nicely */