]> git.hungrycats.org Git - linux/commitdiff
[PATCH] remove "biostimings" boot options
authorBartlomiej Zolnierkiewicz <b.zolnierkiewicz@elka.pw.edu.pl>
Fri, 17 Oct 2003 03:49:21 +0000 (20:49 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Fri, 17 Oct 2003 03:49:21 +0000 (20:49 -0700)
They were added by Torben to workaround ServerWorks driver problems
(fixed by previous patch), but depending on BIOS can be dangerous on
other chipsets and it is always better to fix specific driver.

Removal of these options was acked by Torben.

Documentation/ide.txt
drivers/ide/ide-dma.c
drivers/ide/ide.c
drivers/ide/setup-pci.c
include/linux/ide.h

index 2bb5dd1632812c92856e2803b369b06cbf09c0e7..d54e17f666b2b5c82fba35519fafe38e5ad9d691 100644 (file)
@@ -242,9 +242,6 @@ Summary of ide driver parameters for kernel command line
                          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.
 
@@ -293,9 +290,6 @@ Summary of ide driver parameters for kernel command line
                          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
index bf08b73c6aa1a99fd0221f6a92e0f46c5dbc85d4..10b5b3ad9b348e4fd984cfc414036aa9a7d2d1d1 100644 (file)
@@ -1105,18 +1105,9 @@ void ide_setup_dma (ide_hwif_t *hwif, unsigned long dma_base, unsigned int num_p
 
        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");
 
index 9a5525d7d67651308bea963af7eb735aba68c272..150eddf50438c9ecf12c402e6643fd7b36364fac 100644 (file)
@@ -1846,8 +1846,6 @@ static int __initdata is_chipset_set[MAX_HWIFS];
  *                             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.
  *
@@ -1884,8 +1882,6 @@ static int __initdata is_chipset_set[MAX_HWIFS];
  * "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
@@ -1961,8 +1957,7 @@ int __init ide_setup (char *s)
                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;
@@ -2028,9 +2023,6 @@ int __init ide_setup (char *s)
                        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];
@@ -2065,11 +2057,11 @@ int __init ide_setup (char *s)
        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';
@@ -2149,11 +2141,8 @@ int __init ide_setup (char *s)
 #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;
index d1de94267ce5b910e678bafb35f2efa01e8c6590..a1bf1ae9bfd5fbbda8bb313d4f81abebd419434d 100644 (file)
@@ -587,7 +587,6 @@ void ide_pci_setup_ports(struct pci_dev *dev, ide_pci_device_t *d, int autodma,
        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;
@@ -648,27 +647,12 @@ controller_ok:
                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;
        }
index bda3346af22f71fb4c1efb211bf7cf268dcdc19e..fe10ca8d3dd83eda6300a58509e33f4c5e72d718 100644 (file)
@@ -107,7 +107,6 @@ typedef unsigned char       byte;   /* used everywhere */
 /*
  * Tune flags
  */
-#define IDE_TUNE_BIOS          3
 #define IDE_TUNE_NOAUTO                2
 #define IDE_TUNE_AUTO          1
 #define IDE_TUNE_DEFAULT       0
@@ -722,8 +721,7 @@ typedef struct ide_drive_s {
        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 */