]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ide: change CONFIG_IDEDISK_STOKE to a runtime option
authorBartlomiej Zolnierkiewicz <b.zolnierkiewicz@elka.pw.edu.pl>
Sat, 5 Jun 2004 06:00:55 +0000 (23:00 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 5 Jun 2004 06:00:55 +0000 (23:00 -0700)
From: Christoph Hellwig <hch@lst.de>

To be useful for distribution kernels it needs to be a runtime option.
The original patch is from Joerg Platte via the Debian kernel package,
with some adjustments from me (and me too - Bart).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/ide.txt
drivers/ide/Kconfig
drivers/ide/ide-disk.c
drivers/ide/ide.c
include/linux/ide.h

index 07811d2df55764172e126568ac435fb68fb12950..58853a4ef4f06b06ae41304136a095bdae9c7c83 100644 (file)
@@ -248,6 +248,13 @@ Summary of ide driver parameters for kernel command line
                          allowing ide-floppy, ide-tape, and ide-cdrom|writers
                          to use ide-scsi emulation on a device specific option.
 
+ "hdx=stroke"          : Should you have a system w/ an AWARD Bios and your
+                         drives are larger than 32GB and it will not boot,
+                         one is required to perform a few OEM operations first.
+                         The option is called "stroke" because it allows one
+                         to "soft clip" the drive to work around a barrier
+                         limit.
+
  "idebus=xx"           : inform IDE driver of VESA/PCI bus speed in MHz,
                          where "xx" is between 20 and 66 inclusive,
                          used when tuning chipset PIO modes.
index c43ac493de2514048d719dfa4aa7b06de3c5aa29..88cf3fa9a19c4ae9cced97b7dd52722187b85e5a 100644 (file)
@@ -157,20 +157,6 @@ config IDEDISK_MULTI_MODE
 
          If in doubt, say N.
 
-config IDEDISK_STROKE
-       bool "Auto-Geometry Resizing support"
-       depends on BLK_DEV_IDEDISK
-       help
-         Should you have a system w/ an AWARD Bios and your drives are larger
-         than 32GB and it will not boot, one is required to perform a few OEM
-         operations first.  The option is called "STROKE" because it allows
-         one to "soft clip" the drive to work around a barrier limit.  For
-         Maxtor drives it is called "jumpon.exe".  Please search Maxtor's
-         web-site for "JUMPON.EXE".  IBM has a similar tool at:
-         <http://www.storage.ibm.com/hdd/support/download.htm>.
-
-         If you are unsure, say N here.
-
 config BLK_DEV_IDECS
        tristate "PCMCIA IDE support"
        depends on PCMCIA
index 47761a0a5486154baf12ec16bc8455bda00f8618..c10cfe58981759ce886803c53c080cc0c8383f15 100644 (file)
@@ -963,7 +963,6 @@ static unsigned long long idedisk_read_native_max_address_ext(ide_drive_t *drive
        return addr;
 }
 
-#ifdef CONFIG_IDEDISK_STROKE
 /*
  * Sets maximum virtual LBA address of the drive.
  * Returns new maximum virtual LBA address (> 0) or 0 on failure.
@@ -1032,8 +1031,6 @@ static unsigned long long idedisk_set_max_address_ext(ide_drive_t *drive, unsign
        return addr_set;
 }
 
-#endif /* CONFIG_IDEDISK_STROKE */
-
 static unsigned long long sectors_to_MB(unsigned long long n)
 {
        n <<= 9;                /* make it bytes */
@@ -1080,7 +1077,10 @@ static inline void idedisk_check_hpa(ide_drive_t *drive)
                         drive->name,
                         capacity, sectors_to_MB(capacity),
                         set_max, sectors_to_MB(set_max));
-#ifdef CONFIG_IDEDISK_STROKE
+
+       if (!drive->stroke)
+               return;
+
        if (lba48)
                set_max = idedisk_set_max_address_ext(drive, set_max);
        else
@@ -1090,7 +1090,6 @@ static inline void idedisk_check_hpa(ide_drive_t *drive)
                printk(KERN_INFO "%s: Host Protected Area disabled.\n",
                                 drive->name);
        }
-#endif
 }
 
 /*
index bc60dfb78c0a9c475d7a40792d28f76f777aeee6..a140efb2110becbd858dd06b0ece1ec733aba548 100644 (file)
@@ -1806,7 +1806,7 @@ int __init ide_setup (char *s)
        if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
                const char *hd_words[] = {
                        "none", "noprobe", "nowerr", "cdrom", "serialize",
-                       "autotune", "noautotune", "minus8", "swapdata", "bswap",
+                       "autotune", "noautotune", "stroke", "swapdata", "bswap",
                        "minus11", "remap", "remap63", "scsi", NULL };
                unit = s[2] - 'a';
                hw   = unit / MAX_DRIVES;
@@ -1840,6 +1840,9 @@ int __init ide_setup (char *s)
                        case -7: /* "noautotune" */
                                drive->autotune = IDE_TUNE_NOAUTO;
                                goto done;
+                       case -8: /* stroke */
+                               drive->stroke = 1;
+                               goto done;
                        case -9: /* "swapdata" */
                        case -10: /* "bswap" */
                                drive->bswap = 1;
index 8a773de2c037875456bb917f562dbd0d42624c3a..25eedd92f0906aacac463247a29dc8bd84661928 100644 (file)
@@ -751,6 +751,7 @@ typedef struct ide_drive_s {
        unsigned remap_0_to_1   : 1;    /* 0=noremap, 1=remap 0->1 (for EZDrive) */
        unsigned blocked        : 1;    /* 1=powermanagment told us not to do anything, so sleep nicely */
        unsigned vdma           : 1;    /* 1=doing PIO over DMA 0=doing normal DMA */
+       unsigned stroke         : 1;    /* from:  hdx=stroke */
        unsigned addressing;            /*      : 3;
                                         *  0=28-bit
                                         *  1=48-bit