diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-18 18:16:12 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-18 18:16:12 -0400 |
| commit | 91aa9fb573fcc50bc74d5ee64c7e9b36131f1804 (patch) | |
| tree | afa2160e4b611f2991c09a6d6dc6079e47105605 /drivers | |
| parent | 5fdf193b15a08f6c32ca4eb5913fa9be788e790e (diff) | |
| parent | 84f57fbc724e3b56dc87c37dddac89f82cf75ef6 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ide/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/ide/ide-floppy.c | 2 | ||||
| -rw-r--r-- | drivers/ide/pci/generic.c | 7 | ||||
| -rw-r--r-- | drivers/ide/pci/serverworks.c | 23 | ||||
| -rw-r--r-- | drivers/ide/ppc/pmac.c | 2 | ||||
| -rw-r--r-- | drivers/ide/setup-pci.c | 1 |
6 files changed, 34 insertions, 2 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 5f33df47aa74..1cadd2c3cadd 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
| @@ -764,6 +764,7 @@ config BLK_DEV_IDE_PMAC_ATA100FIRST | |||
| 764 | config BLK_DEV_IDEDMA_PMAC | 764 | config BLK_DEV_IDEDMA_PMAC |
| 765 | bool "PowerMac IDE DMA support" | 765 | bool "PowerMac IDE DMA support" |
| 766 | depends on BLK_DEV_IDE_PMAC | 766 | depends on BLK_DEV_IDE_PMAC |
| 767 | select BLK_DEV_IDEDMA_PCI | ||
| 767 | help | 768 | help |
| 768 | This option allows the driver for the built-in IDE controller on | 769 | This option allows the driver for the built-in IDE controller on |
| 769 | Power Macintoshes and PowerBooks to use DMA (direct memory access) | 770 | Power Macintoshes and PowerBooks to use DMA (direct memory access) |
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 9eab6426148e..29c22fc278c6 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
| @@ -317,7 +317,7 @@ typedef struct ide_floppy_obj { | |||
| 317 | unsigned long flags; | 317 | unsigned long flags; |
| 318 | } idefloppy_floppy_t; | 318 | } idefloppy_floppy_t; |
| 319 | 319 | ||
| 320 | #define IDEFLOPPY_TICKS_DELAY 3 /* default delay for ZIP 100 */ | 320 | #define IDEFLOPPY_TICKS_DELAY HZ/20 /* default delay for ZIP 100 (50ms) */ |
| 321 | 321 | ||
| 322 | /* | 322 | /* |
| 323 | * Floppy flag bits values. | 323 | * Floppy flag bits values. |
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c index da46577380f3..6e3ab0c38c4d 100644 --- a/drivers/ide/pci/generic.c +++ b/drivers/ide/pci/generic.c | |||
| @@ -173,6 +173,12 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = { | |||
| 173 | .channels = 2, | 173 | .channels = 2, |
| 174 | .autodma = NOAUTODMA, | 174 | .autodma = NOAUTODMA, |
| 175 | .bootable = ON_BOARD, | 175 | .bootable = ON_BOARD, |
| 176 | },{ /* 14 */ | ||
| 177 | .name = "Revolution", | ||
| 178 | .init_hwif = init_hwif_generic, | ||
| 179 | .channels = 2, | ||
| 180 | .autodma = AUTODMA, | ||
| 181 | .bootable = OFF_BOARD, | ||
| 176 | } | 182 | } |
| 177 | }; | 183 | }; |
| 178 | 184 | ||
| @@ -231,6 +237,7 @@ static struct pci_device_id generic_pci_tbl[] = { | |||
| 231 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11}, | 237 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11}, |
| 232 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, | 238 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, |
| 233 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, | 239 | { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, |
| 240 | { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, | ||
| 234 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ | 241 | /* Must come last. If you add entries adjust this table appropriately and the init_one code */ |
| 235 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, | 242 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, |
| 236 | { 0, }, | 243 | { 0, }, |
diff --git a/drivers/ide/pci/serverworks.c b/drivers/ide/pci/serverworks.c index c6f5fa4b4ca6..ff2e217a8c84 100644 --- a/drivers/ide/pci/serverworks.c +++ b/drivers/ide/pci/serverworks.c | |||
| @@ -21,6 +21,9 @@ | |||
| 21 | * | 21 | * |
| 22 | * CSB6: `Champion South Bridge' IDE Interface (optional: third channel) | 22 | * CSB6: `Champion South Bridge' IDE Interface (optional: third channel) |
| 23 | * | 23 | * |
| 24 | * HT1000: AKA BCM5785 - Hypertransport Southbridge for Opteron systems. IDE | ||
| 25 | * controller same as the CSB6. Single channel ATA100 only. | ||
| 26 | * | ||
| 24 | * Documentation: | 27 | * Documentation: |
| 25 | * Available under NDA only. Errata info very hard to get. | 28 | * Available under NDA only. Errata info very hard to get. |
| 26 | * | 29 | * |
| @@ -71,6 +74,8 @@ static u8 svwks_ratemask (ide_drive_t *drive) | |||
| 71 | if (!svwks_revision) | 74 | if (!svwks_revision) |
| 72 | pci_read_config_byte(dev, PCI_REVISION_ID, &svwks_revision); | 75 | pci_read_config_byte(dev, PCI_REVISION_ID, &svwks_revision); |
| 73 | 76 | ||
| 77 | if (dev->device == PCI_DEVICE_ID_SERVERWORKS_HT1000IDE) | ||
| 78 | return 2; | ||
| 74 | if (dev->device == PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) { | 79 | if (dev->device == PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) { |
| 75 | u32 reg = 0; | 80 | u32 reg = 0; |
| 76 | if (isa_dev) | 81 | if (isa_dev) |
| @@ -109,6 +114,7 @@ static u8 svwks_csb_check (struct pci_dev *dev) | |||
| 109 | case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE: | 114 | case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE: |
| 110 | case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE: | 115 | case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE: |
| 111 | case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2: | 116 | case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2: |
| 117 | case PCI_DEVICE_ID_SERVERWORKS_HT1000IDE: | ||
| 112 | return 1; | 118 | return 1; |
| 113 | default: | 119 | default: |
| 114 | break; | 120 | break; |
| @@ -438,6 +444,13 @@ static unsigned int __devinit init_chipset_svwks (struct pci_dev *dev, const cha | |||
| 438 | btr |= (svwks_revision >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2; | 444 | btr |= (svwks_revision >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2; |
| 439 | pci_write_config_byte(dev, 0x5A, btr); | 445 | pci_write_config_byte(dev, 0x5A, btr); |
| 440 | } | 446 | } |
| 447 | /* Setup HT1000 SouthBridge Controller - Single Channel Only */ | ||
| 448 | else if (dev->device == PCI_DEVICE_ID_SERVERWORKS_HT1000IDE) { | ||
| 449 | pci_read_config_byte(dev, 0x5A, &btr); | ||
| 450 | btr &= ~0x40; | ||
| 451 | btr |= 0x3; | ||
| 452 | pci_write_config_byte(dev, 0x5A, btr); | ||
| 453 | } | ||
| 441 | 454 | ||
| 442 | return (dev->irq) ? dev->irq : 0; | 455 | return (dev->irq) ? dev->irq : 0; |
| 443 | } | 456 | } |
| @@ -629,6 +642,15 @@ static ide_pci_device_t serverworks_chipsets[] __devinitdata = { | |||
| 629 | .channels = 1, /* 2 */ | 642 | .channels = 1, /* 2 */ |
| 630 | .autodma = AUTODMA, | 643 | .autodma = AUTODMA, |
| 631 | .bootable = ON_BOARD, | 644 | .bootable = ON_BOARD, |
| 645 | },{ /* 4 */ | ||
| 646 | .name = "SvrWks HT1000", | ||
| 647 | .init_setup = init_setup_svwks, | ||
| 648 | .init_chipset = init_chipset_svwks, | ||
| 649 | .init_hwif = init_hwif_svwks, | ||
| 650 | .init_dma = init_dma_svwks, | ||
| 651 | .channels = 1, /* 2 */ | ||
| 652 | .autodma = AUTODMA, | ||
| 653 | .bootable = ON_BOARD, | ||
| 632 | } | 654 | } |
| 633 | }; | 655 | }; |
| 634 | 656 | ||
| @@ -653,6 +675,7 @@ static struct pci_device_id svwks_pci_tbl[] = { | |||
| 653 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, | 675 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, |
| 654 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2}, | 676 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2}, |
| 655 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3}, | 677 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3}, |
| 678 | { PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4}, | ||
| 656 | { 0, }, | 679 | { 0, }, |
| 657 | }; | 680 | }; |
| 658 | MODULE_DEVICE_TABLE(pci, svwks_pci_tbl); | 681 | MODULE_DEVICE_TABLE(pci, svwks_pci_tbl); |
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c index be0fcc8f4b15..ea65b070a367 100644 --- a/drivers/ide/ppc/pmac.c +++ b/drivers/ide/ppc/pmac.c | |||
| @@ -1664,7 +1664,7 @@ static struct macio_driver pmac_ide_macio_driver = | |||
| 1664 | }; | 1664 | }; |
| 1665 | 1665 | ||
| 1666 | static struct pci_device_id pmac_ide_pci_match[] = { | 1666 | static struct pci_device_id pmac_ide_pci_match[] = { |
| 1667 | { PCI_VENDOR_ID_APPLE, PCI_DEVIEC_ID_APPLE_UNI_N_ATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 1667 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
| 1668 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 1668 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
| 1669 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 1669 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
| 1670 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_SH_ATA, | 1670 | { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_SH_ATA, |
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index 77da827b2898..18ed7765417c 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
| @@ -229,6 +229,7 @@ second_chance_to_dma: | |||
| 229 | case PCI_DEVICE_ID_AMD_VIPER_7409: | 229 | case PCI_DEVICE_ID_AMD_VIPER_7409: |
| 230 | case PCI_DEVICE_ID_CMD_643: | 230 | case PCI_DEVICE_ID_CMD_643: |
| 231 | case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE: | 231 | case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE: |
| 232 | case PCI_DEVICE_ID_REVOLUTION: | ||
| 232 | simplex_stat = hwif->INB(dma_base + 2); | 233 | simplex_stat = hwif->INB(dma_base + 2); |
| 233 | hwif->OUTB((simplex_stat&0x60),(dma_base + 2)); | 234 | hwif->OUTB((simplex_stat&0x60),(dma_base + 2)); |
| 234 | simplex_stat = hwif->INB(dma_base + 2); | 235 | simplex_stat = hwif->INB(dma_base + 2); |
