diff options
Diffstat (limited to 'drivers/ide/pci/atiixp.c')
-rw-r--r-- | drivers/ide/pci/atiixp.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/ide/pci/atiixp.c b/drivers/ide/pci/atiixp.c index 900efd1da587..d55b938b1aeb 100644 --- a/drivers/ide/pci/atiixp.c +++ b/drivers/ide/pci/atiixp.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
@@ -319,6 +318,20 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) | |||
319 | hwif->drives[0].autodma = hwif->autodma; | 318 | hwif->drives[0].autodma = hwif->autodma; |
320 | } | 319 | } |
321 | 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 | |||
322 | static ide_pci_device_t atiixp_pci_info[] __devinitdata = { | 335 | static ide_pci_device_t atiixp_pci_info[] __devinitdata = { |
323 | { /* 0 */ | 336 | { /* 0 */ |
324 | .name = "ATIIXP", | 337 | .name = "ATIIXP", |
@@ -327,6 +340,12 @@ static ide_pci_device_t atiixp_pci_info[] __devinitdata = { | |||
327 | .autodma = AUTODMA, | 340 | .autodma = AUTODMA, |
328 | .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}}, | 341 | .enablebits = {{0x48,0x01,0x00}, {0x48,0x08,0x00}}, |
329 | .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, | ||
330 | } | 349 | } |
331 | }; | 350 | }; |
332 | 351 | ||
@@ -349,6 +368,7 @@ static struct pci_device_id atiixp_pci_tbl[] = { | |||
349 | { 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}, |
350 | { 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}, |
351 | { 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}, | ||
352 | { 0, }, | 372 | { 0, }, |
353 | }; | 373 | }; |
354 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); | 374 | MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); |