aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAnatoli Antonovitch <antonovi@ati.com>2006-09-29 05:00:09 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-29 12:18:12 -0400
commit2b33b4dcbe5e09e683eef281f72aef951e17061c (patch)
treec933020feb873f274ee5d72fb5d9071865e64ecf /drivers
parent01d553d0fe9f90a132c5ff494872be8d4126be1e (diff)
[PATCH] atiixp: ATI SB600 IDE support for various modes
Support SB600 SATA legacy IDE (DMA enable). Signed-off-by: Anatoli Antonovitch <antonovi@ati.com> Cc: Jeff Garzik <jeff@garzik.org> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ide/pci/atiixp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/ide/pci/atiixp.c b/drivers/ide/pci/atiixp.c
index a574de5f0835..d55b938b1aeb 100644
--- a/drivers/ide/pci/atiixp.c
+++ b/drivers/ide/pci/atiixp.c
@@ -318,6 +318,20 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif)
318 hwif->drives[0].autodma = hwif->autodma; 318 hwif->drives[0].autodma = hwif->autodma;
319} 319}
320 320
321static void __devinit init_hwif_sb600_legacy(ide_hwif_t *hwif)
322{
323
324 hwif->atapi_dma = 1;
325 hwif->ultra_mask = 0x7f;
326 hwif->mwdma_mask = 0x07;
327 hwif->swdma_mask = 0x07;
328
329 if (!noautodma)
330 hwif->autodma = 1;
331 hwif->drives[0].autodma = hwif->autodma;
332 hwif->drives[1].autodma = hwif->autodma;
333}
334
321static ide_pci_device_t atiixp_pci_info[] __devinitdata = { 335static ide_pci_device_t atiixp_pci_info[] __devinitdata = {
322 { /* 0 */ 336 { /* 0 */
323 .name = "ATIIXP", 337 .name = "ATIIXP",
@@ -326,6 +340,12 @@ static ide_pci_device_t atiixp_pci_info[] __devinitdata = {
326 .autodma = AUTODMA, 340 .autodma = AUTODMA,
327 .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}}, 341 .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}},
328 .bootable = ON_BOARD, 342 .bootable = ON_BOARD,
343 },{ /* 1 */
344 .name = "ATI SB600 SATA Legacy IDE",
345 .init_hwif = init_hwif_sb600_legacy,
346 .channels = 2,
347 .autodma = AUTODMA,
348 .bootable = ON_BOARD,
329 } 349 }
330}; 350};
331 351
@@ -348,6 +368,7 @@ static struct pci_device_id atiixp_pci_tbl[] = {
348 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 368 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
349 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 369 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
350 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 370 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
371 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_SATA, PCI_ANY_ID, PCI_ANY_ID, (PCI_CLASS_STORAGE_IDE<<8)|0x8a, 0xffff05, 1},
351 { 0, }, 372 { 0, },
352}; 373};
353MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); 374MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl);