aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/atiixp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/atiixp.c')
-rw-r--r--drivers/ide/pci/atiixp.c22
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
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
322static ide_pci_device_t atiixp_pci_info[] __devinitdata = { 335static 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};
354MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); 374MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl);