aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide.c')
-rw-r--r--drivers/ide/ide.c39
1 files changed, 15 insertions, 24 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index b3c0818c5c6c..dfbd74458522 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -126,8 +126,6 @@
126#define REVISION "Revision: 7.00alpha2" 126#define REVISION "Revision: 7.00alpha2"
127#define VERSION "Id: ide.c 7.00a2 20020906" 127#define VERSION "Id: ide.c 7.00a2 20020906"
128 128
129#undef REALLY_SLOW_IO /* most systems can safely undef this */
130
131#define _IDE_C /* Tell ide.h it's really us */ 129#define _IDE_C /* Tell ide.h it's really us */
132 130
133#include <linux/module.h> 131#include <linux/module.h>
@@ -1486,23 +1484,23 @@ static int __init match_parm (char *s, const char *keywords[], int vals[], int m
1486} 1484}
1487 1485
1488#ifdef CONFIG_BLK_DEV_ALI14XX 1486#ifdef CONFIG_BLK_DEV_ALI14XX
1489static int __initdata probe_ali14xx; 1487extern int probe_ali14xx;
1490extern int ali14xx_init(void); 1488extern int ali14xx_init(void);
1491#endif 1489#endif
1492#ifdef CONFIG_BLK_DEV_UMC8672 1490#ifdef CONFIG_BLK_DEV_UMC8672
1493static int __initdata probe_umc8672; 1491extern int probe_umc8672;
1494extern int umc8672_init(void); 1492extern int umc8672_init(void);
1495#endif 1493#endif
1496#ifdef CONFIG_BLK_DEV_DTC2278 1494#ifdef CONFIG_BLK_DEV_DTC2278
1497static int __initdata probe_dtc2278; 1495extern int probe_dtc2278;
1498extern int dtc2278_init(void); 1496extern int dtc2278_init(void);
1499#endif 1497#endif
1500#ifdef CONFIG_BLK_DEV_HT6560B 1498#ifdef CONFIG_BLK_DEV_HT6560B
1501static int __initdata probe_ht6560b; 1499extern int probe_ht6560b;
1502extern int ht6560b_init(void); 1500extern int ht6560b_init(void);
1503#endif 1501#endif
1504#ifdef CONFIG_BLK_DEV_QD65XX 1502#ifdef CONFIG_BLK_DEV_QD65XX
1505static int __initdata probe_qd65xx; 1503extern int probe_qd65xx;
1506extern int qd65xx_init(void); 1504extern int qd65xx_init(void);
1507#endif 1505#endif
1508 1506
@@ -1580,7 +1578,7 @@ static int __init ide_setup(char *s)
1580 */ 1578 */
1581 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) { 1579 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
1582 const char *hd_words[] = { 1580 const char *hd_words[] = {
1583 "none", "noprobe", "nowerr", "cdrom", "serialize", 1581 "none", "noprobe", "nowerr", "cdrom", "minus5",
1584 "autotune", "noautotune", "minus8", "swapdata", "bswap", 1582 "autotune", "noautotune", "minus8", "swapdata", "bswap",
1585 "noflush", "remap", "remap63", "scsi", NULL }; 1583 "noflush", "remap", "remap63", "scsi", NULL };
1586 unit = s[2] - 'a'; 1584 unit = s[2] - 'a';
@@ -1608,9 +1606,6 @@ static int __init ide_setup(char *s)
1608 drive->ready_stat = 0; 1606 drive->ready_stat = 0;
1609 hwif->noprobe = 0; 1607 hwif->noprobe = 0;
1610 goto done; 1608 goto done;
1611 case -5: /* "serialize" */
1612 printk(" -- USE \"ide%d=serialize\" INSTEAD", hw);
1613 goto do_serialize;
1614 case -6: /* "autotune" */ 1609 case -6: /* "autotune" */
1615 drive->autotune = IDE_TUNE_AUTO; 1610 drive->autotune = IDE_TUNE_AUTO;
1616 goto obsolete_option; 1611 goto obsolete_option;
@@ -1671,7 +1666,7 @@ static int __init ide_setup(char *s)
1671 * (-8, -9, -10) are reserved to ease the hardcoding. 1666 * (-8, -9, -10) are reserved to ease the hardcoding.
1672 */ 1667 */
1673 static const char *ide_words[] = { 1668 static const char *ide_words[] = {
1674 "noprobe", "serialize", "autotune", "noautotune", 1669 "noprobe", "serialize", "minus3", "minus4",
1675 "reset", "dma", "ata66", "minus8", "minus9", 1670 "reset", "dma", "ata66", "minus8", "minus9",
1676 "minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb", 1671 "minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb",
1677 "dtc2278", "umc8672", "ali14xx", NULL }; 1672 "dtc2278", "umc8672", "ali14xx", NULL };
@@ -1742,12 +1737,17 @@ static int __init ide_setup(char *s)
1742 hwif->chipset = mate->chipset = ide_4drives; 1737 hwif->chipset = mate->chipset = ide_4drives;
1743 mate->irq = hwif->irq; 1738 mate->irq = hwif->irq;
1744 memcpy(mate->io_ports, hwif->io_ports, sizeof(hwif->io_ports)); 1739 memcpy(mate->io_ports, hwif->io_ports, sizeof(hwif->io_ports));
1745 goto do_serialize; 1740 hwif->mate = mate;
1741 mate->mate = hwif;
1742 hwif->serialized = mate->serialized = 1;
1743 goto obsolete_option;
1746 } 1744 }
1747#endif /* CONFIG_BLK_DEV_4DRIVES */ 1745#endif /* CONFIG_BLK_DEV_4DRIVES */
1748 case -10: /* minus10 */ 1746 case -10: /* minus10 */
1749 case -9: /* minus9 */ 1747 case -9: /* minus9 */
1750 case -8: /* minus8 */ 1748 case -8: /* minus8 */
1749 case -4:
1750 case -3:
1751 goto bad_option; 1751 goto bad_option;
1752 case -7: /* ata66 */ 1752 case -7: /* ata66 */
1753#ifdef CONFIG_BLK_DEV_IDEPCI 1753#ifdef CONFIG_BLK_DEV_IDEPCI
@@ -1762,16 +1762,7 @@ static int __init ide_setup(char *s)
1762 case -5: /* "reset" */ 1762 case -5: /* "reset" */
1763 hwif->reset = 1; 1763 hwif->reset = 1;
1764 goto obsolete_option; 1764 goto obsolete_option;
1765 case -4: /* "noautotune" */
1766 hwif->drives[0].autotune = IDE_TUNE_NOAUTO;
1767 hwif->drives[1].autotune = IDE_TUNE_NOAUTO;
1768 goto obsolete_option;
1769 case -3: /* "autotune" */
1770 hwif->drives[0].autotune = IDE_TUNE_AUTO;
1771 hwif->drives[1].autotune = IDE_TUNE_AUTO;
1772 goto obsolete_option;
1773 case -2: /* "serialize" */ 1765 case -2: /* "serialize" */
1774 do_serialize:
1775 hwif->mate = &ide_hwifs[hw^1]; 1766 hwif->mate = &ide_hwifs[hw^1];
1776 hwif->mate->mate = hwif; 1767 hwif->mate->mate = hwif;
1777 hwif->serialized = hwif->mate->serialized = 1; 1768 hwif->serialized = hwif->mate->serialized = 1;
@@ -1840,8 +1831,8 @@ static void __init probe_for_hwifs (void)
1840#endif /* CONFIG_BLK_DEV_CMD640 */ 1831#endif /* CONFIG_BLK_DEV_CMD640 */
1841#ifdef CONFIG_BLK_DEV_IDE_PMAC 1832#ifdef CONFIG_BLK_DEV_IDE_PMAC
1842 { 1833 {
1843 extern void pmac_ide_probe(void); 1834 extern int pmac_ide_probe(void);
1844 pmac_ide_probe(); 1835 (void)pmac_ide_probe();
1845 } 1836 }
1846#endif /* CONFIG_BLK_DEV_IDE_PMAC */ 1837#endif /* CONFIG_BLK_DEV_IDE_PMAC */
1847#ifdef CONFIG_BLK_DEV_GAYLE 1838#ifdef CONFIG_BLK_DEV_GAYLE