forked from Minki/linux
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
This commit is contained in:
commit
91aa9fb573
@ -764,6 +764,7 @@ config BLK_DEV_IDE_PMAC_ATA100FIRST
|
|||||||
config BLK_DEV_IDEDMA_PMAC
|
config BLK_DEV_IDEDMA_PMAC
|
||||||
bool "PowerMac IDE DMA support"
|
bool "PowerMac IDE DMA support"
|
||||||
depends on BLK_DEV_IDE_PMAC
|
depends on BLK_DEV_IDE_PMAC
|
||||||
|
select BLK_DEV_IDEDMA_PCI
|
||||||
help
|
help
|
||||||
This option allows the driver for the built-in IDE controller on
|
This option allows the driver for the built-in IDE controller on
|
||||||
Power Macintoshes and PowerBooks to use DMA (direct memory access)
|
Power Macintoshes and PowerBooks to use DMA (direct memory access)
|
||||||
|
@ -317,7 +317,7 @@ typedef struct ide_floppy_obj {
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
} idefloppy_floppy_t;
|
} idefloppy_floppy_t;
|
||||||
|
|
||||||
#define IDEFLOPPY_TICKS_DELAY 3 /* default delay for ZIP 100 */
|
#define IDEFLOPPY_TICKS_DELAY HZ/20 /* default delay for ZIP 100 (50ms) */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Floppy flag bits values.
|
* Floppy flag bits values.
|
||||||
|
@ -173,6 +173,12 @@ static ide_pci_device_t generic_chipsets[] __devinitdata = {
|
|||||||
.channels = 2,
|
.channels = 2,
|
||||||
.autodma = NOAUTODMA,
|
.autodma = NOAUTODMA,
|
||||||
.bootable = ON_BOARD,
|
.bootable = ON_BOARD,
|
||||||
|
},{ /* 14 */
|
||||||
|
.name = "Revolution",
|
||||||
|
.init_hwif = init_hwif_generic,
|
||||||
|
.channels = 2,
|
||||||
|
.autodma = AUTODMA,
|
||||||
|
.bootable = OFF_BOARD,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -231,6 +237,7 @@ static struct pci_device_id generic_pci_tbl[] = {
|
|||||||
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
|
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
|
||||||
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
|
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
|
||||||
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},
|
{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},
|
||||||
|
{ PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14},
|
||||||
/* Must come last. If you add entries adjust this table appropriately and the init_one code */
|
/* Must come last. If you add entries adjust this table appropriately and the init_one code */
|
||||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0},
|
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0},
|
||||||
{ 0, },
|
{ 0, },
|
||||||
|
@ -21,6 +21,9 @@
|
|||||||
*
|
*
|
||||||
* CSB6: `Champion South Bridge' IDE Interface (optional: third channel)
|
* CSB6: `Champion South Bridge' IDE Interface (optional: third channel)
|
||||||
*
|
*
|
||||||
|
* HT1000: AKA BCM5785 - Hypertransport Southbridge for Opteron systems. IDE
|
||||||
|
* controller same as the CSB6. Single channel ATA100 only.
|
||||||
|
*
|
||||||
* Documentation:
|
* Documentation:
|
||||||
* Available under NDA only. Errata info very hard to get.
|
* Available under NDA only. Errata info very hard to get.
|
||||||
*
|
*
|
||||||
@ -71,6 +74,8 @@ static u8 svwks_ratemask (ide_drive_t *drive)
|
|||||||
if (!svwks_revision)
|
if (!svwks_revision)
|
||||||
pci_read_config_byte(dev, PCI_REVISION_ID, &svwks_revision);
|
pci_read_config_byte(dev, PCI_REVISION_ID, &svwks_revision);
|
||||||
|
|
||||||
|
if (dev->device == PCI_DEVICE_ID_SERVERWORKS_HT1000IDE)
|
||||||
|
return 2;
|
||||||
if (dev->device == PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) {
|
if (dev->device == PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) {
|
||||||
u32 reg = 0;
|
u32 reg = 0;
|
||||||
if (isa_dev)
|
if (isa_dev)
|
||||||
@ -109,6 +114,7 @@ static u8 svwks_csb_check (struct pci_dev *dev)
|
|||||||
case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
|
case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
|
||||||
case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE:
|
case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE:
|
||||||
case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2:
|
case PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2:
|
||||||
|
case PCI_DEVICE_ID_SERVERWORKS_HT1000IDE:
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -438,6 +444,13 @@ static unsigned int __devinit init_chipset_svwks (struct pci_dev *dev, const cha
|
|||||||
btr |= (svwks_revision >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2;
|
btr |= (svwks_revision >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2;
|
||||||
pci_write_config_byte(dev, 0x5A, btr);
|
pci_write_config_byte(dev, 0x5A, btr);
|
||||||
}
|
}
|
||||||
|
/* Setup HT1000 SouthBridge Controller - Single Channel Only */
|
||||||
|
else if (dev->device == PCI_DEVICE_ID_SERVERWORKS_HT1000IDE) {
|
||||||
|
pci_read_config_byte(dev, 0x5A, &btr);
|
||||||
|
btr &= ~0x40;
|
||||||
|
btr |= 0x3;
|
||||||
|
pci_write_config_byte(dev, 0x5A, btr);
|
||||||
|
}
|
||||||
|
|
||||||
return (dev->irq) ? dev->irq : 0;
|
return (dev->irq) ? dev->irq : 0;
|
||||||
}
|
}
|
||||||
@ -629,6 +642,15 @@ static ide_pci_device_t serverworks_chipsets[] __devinitdata = {
|
|||||||
.channels = 1, /* 2 */
|
.channels = 1, /* 2 */
|
||||||
.autodma = AUTODMA,
|
.autodma = AUTODMA,
|
||||||
.bootable = ON_BOARD,
|
.bootable = ON_BOARD,
|
||||||
|
},{ /* 4 */
|
||||||
|
.name = "SvrWks HT1000",
|
||||||
|
.init_setup = init_setup_svwks,
|
||||||
|
.init_chipset = init_chipset_svwks,
|
||||||
|
.init_hwif = init_hwif_svwks,
|
||||||
|
.init_dma = init_dma_svwks,
|
||||||
|
.channels = 1, /* 2 */
|
||||||
|
.autodma = AUTODMA,
|
||||||
|
.bootable = ON_BOARD,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -653,6 +675,7 @@ static struct pci_device_id svwks_pci_tbl[] = {
|
|||||||
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
|
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
|
||||||
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
|
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
|
||||||
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
|
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
|
||||||
|
{ PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4},
|
||||||
{ 0, },
|
{ 0, },
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, svwks_pci_tbl);
|
MODULE_DEVICE_TABLE(pci, svwks_pci_tbl);
|
||||||
|
@ -1664,7 +1664,7 @@ static struct macio_driver pmac_ide_macio_driver =
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct pci_device_id pmac_ide_pci_match[] = {
|
static struct pci_device_id pmac_ide_pci_match[] = {
|
||||||
{ PCI_VENDOR_ID_APPLE, PCI_DEVIEC_ID_APPLE_UNI_N_ATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
||||||
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
||||||
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
|
||||||
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_SH_ATA,
|
{ PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_SH_ATA,
|
||||||
|
@ -229,6 +229,7 @@ second_chance_to_dma:
|
|||||||
case PCI_DEVICE_ID_AMD_VIPER_7409:
|
case PCI_DEVICE_ID_AMD_VIPER_7409:
|
||||||
case PCI_DEVICE_ID_CMD_643:
|
case PCI_DEVICE_ID_CMD_643:
|
||||||
case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
|
case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
|
||||||
|
case PCI_DEVICE_ID_REVOLUTION:
|
||||||
simplex_stat = hwif->INB(dma_base + 2);
|
simplex_stat = hwif->INB(dma_base + 2);
|
||||||
hwif->OUTB((simplex_stat&0x60),(dma_base + 2));
|
hwif->OUTB((simplex_stat&0x60),(dma_base + 2));
|
||||||
simplex_stat = hwif->INB(dma_base + 2);
|
simplex_stat = hwif->INB(dma_base + 2);
|
||||||
|
@ -881,7 +881,7 @@
|
|||||||
#define PCI_DEVICE_ID_APPLE_UNI_N_PCI15 0x002e
|
#define PCI_DEVICE_ID_APPLE_UNI_N_PCI15 0x002e
|
||||||
#define PCI_DEVICE_ID_APPLE_UNI_N_FW2 0x0030
|
#define PCI_DEVICE_ID_APPLE_UNI_N_FW2 0x0030
|
||||||
#define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2 0x0032
|
#define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2 0x0032
|
||||||
#define PCI_DEVIEC_ID_APPLE_UNI_N_ATA 0x0033
|
#define PCI_DEVICE_ID_APPLE_UNI_N_ATA 0x0033
|
||||||
#define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034
|
#define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034
|
||||||
#define PCI_DEVICE_ID_APPLE_IPID_ATA100 0x003b
|
#define PCI_DEVICE_ID_APPLE_IPID_ATA100 0x003b
|
||||||
#define PCI_DEVICE_ID_APPLE_KEYLARGO_I 0x003e
|
#define PCI_DEVICE_ID_APPLE_KEYLARGO_I 0x003e
|
||||||
@ -1580,6 +1580,7 @@
|
|||||||
#define PCI_DEVICE_ID_SERVERWORKS_OSB4IDE 0x0211
|
#define PCI_DEVICE_ID_SERVERWORKS_OSB4IDE 0x0211
|
||||||
#define PCI_DEVICE_ID_SERVERWORKS_CSB5IDE 0x0212
|
#define PCI_DEVICE_ID_SERVERWORKS_CSB5IDE 0x0212
|
||||||
#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE 0x0213
|
#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE 0x0213
|
||||||
|
#define PCI_DEVICE_ID_SERVERWORKS_HT1000IDE 0x0214
|
||||||
#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2 0x0217
|
#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2 0x0217
|
||||||
#define PCI_DEVICE_ID_SERVERWORKS_OSB4USB 0x0220
|
#define PCI_DEVICE_ID_SERVERWORKS_OSB4USB 0x0220
|
||||||
#define PCI_DEVICE_ID_SERVERWORKS_CSB5USB PCI_DEVICE_ID_SERVERWORKS_OSB4USB
|
#define PCI_DEVICE_ID_SERVERWORKS_CSB5USB PCI_DEVICE_ID_SERVERWORKS_OSB4USB
|
||||||
@ -2184,6 +2185,9 @@
|
|||||||
#define PCI_VENDOR_ID_SIBYTE 0x166d
|
#define PCI_VENDOR_ID_SIBYTE 0x166d
|
||||||
#define PCI_DEVICE_ID_BCM1250_HT 0x0002
|
#define PCI_DEVICE_ID_BCM1250_HT 0x0002
|
||||||
|
|
||||||
|
#define PCI_VENDOR_ID_NETCELL 0x169c
|
||||||
|
#define PCI_DEVICE_ID_REVOLUTION 0x0044
|
||||||
|
|
||||||
#define PCI_VENDOR_ID_LINKSYS 0x1737
|
#define PCI_VENDOR_ID_LINKSYS 0x1737
|
||||||
#define PCI_DEVICE_ID_LINKSYS_EG1032 0x1032
|
#define PCI_DEVICE_ID_LINKSYS_EG1032 0x1032
|
||||||
#define PCI_DEVICE_ID_LINKSYS_EG1064 0x1064
|
#define PCI_DEVICE_ID_LINKSYS_EG1064 0x1064
|
||||||
|
Loading…
Reference in New Issue
Block a user