diff options
author | Anatoli Antonovitch <antonovi@ati.com> | 2006-09-29 05:00:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-29 12:18:12 -0400 |
commit | 2b33b4dcbe5e09e683eef281f72aef951e17061c (patch) | |
tree | c933020feb873f274ee5d72fb5d9071865e64ecf /drivers/ide/pci | |
parent | 01d553d0fe9f90a132c5ff494872be8d4126be1e (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/ide/pci')
-rw-r--r-- | drivers/ide/pci/atiixp.c | 21 |
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 | ||
321 | static 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 | |||
321 | static ide_pci_device_t atiixp_pci_info[] __devinitdata = { | 335 | static 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 | }; |
353 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); | 374 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); |