aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/mips/au1xxx-ide.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/mips/au1xxx-ide.c')
-rw-r--r--drivers/ide/mips/au1xxx-ide.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c
index 6e98662b1192..b80d77a260da 100644
--- a/drivers/ide/mips/au1xxx-ide.c
+++ b/drivers/ide/mips/au1xxx-ide.c
@@ -548,6 +548,16 @@ static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif)
548 *ata_regs = ahwif->regbase + (14 << AU1XXX_ATA_REG_OFFSET); 548 *ata_regs = ahwif->regbase + (14 << AU1XXX_ATA_REG_OFFSET);
549} 549}
550 550
551static const struct ide_port_info au1xxx_port_info = {
552 .host_flags = IDE_HFLAG_POST_SET_MODE |
553 IDE_HFLAG_NO_DMA | /* no SFF-style DMA */
554 IDE_HFLAG_UNMASK_IRQS,
555 .pio_mask = ATA_PIO4,
556#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
557 .mwdma_mask = ATA_MWDMA2,
558#endif
559};
560
551static int au_ide_probe(struct device *dev) 561static int au_ide_probe(struct device *dev)
552{ 562{
553 struct platform_device *pdev = to_platform_device(dev); 563 struct platform_device *pdev = to_platform_device(dev);
@@ -606,21 +616,6 @@ static int au_ide_probe(struct device *dev)
606 616
607 hwif->dev = dev; 617 hwif->dev = dev;
608 618
609 hwif->ultra_mask = 0x0; /* Disable Ultra DMA */
610#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
611 hwif->mwdma_mask = 0x07; /* Multimode-2 DMA */
612 hwif->swdma_mask = 0x00;
613#else
614 hwif->mwdma_mask = 0x0;
615 hwif->swdma_mask = 0x0;
616#endif
617
618 hwif->pio_mask = ATA_PIO4;
619 hwif->host_flags = IDE_HFLAG_POST_SET_MODE;
620
621 hwif->drives[0].unmask = 1;
622 hwif->drives[1].unmask = 1;
623
624 /* hold should be on in all cases */ 619 /* hold should be on in all cases */
625 hwif->hold = 1; 620 hwif->hold = 1;
626 621
@@ -651,13 +646,9 @@ static int au_ide_probe(struct device *dev)
651 hwif->ide_dma_test_irq = &auide_dma_test_irq; 646 hwif->ide_dma_test_irq = &auide_dma_test_irq;
652 hwif->dma_lost_irq = &auide_dma_lost_irq; 647 hwif->dma_lost_irq = &auide_dma_lost_irq;
653#endif 648#endif
654 hwif->channel = 0;
655 hwif->select_data = 0; /* no chipset-specific code */ 649 hwif->select_data = 0; /* no chipset-specific code */
656 hwif->config_data = 0; /* no chipset-specific code */ 650 hwif->config_data = 0; /* no chipset-specific code */
657 651
658 hwif->drives[0].autotune = 1; /* 1=autotune, 2=noautotune, 0=default */
659 hwif->drives[1].autotune = 1;
660
661 hwif->no_io_32bit = 1; 652 hwif->no_io_32bit = 1;
662 653
663 auide_hwif.hwif = hwif; 654 auide_hwif.hwif = hwif;
@@ -670,7 +661,7 @@ static int au_ide_probe(struct device *dev)
670 661
671 idx[0] = hwif->index; 662 idx[0] = hwif->index;
672 663
673 ide_device_add(idx); 664 ide_device_add(idx, &au1xxx_port_info);
674 665
675 dev_set_drvdata(dev, hwif); 666 dev_set_drvdata(dev, hwif);
676 667