aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/mips
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/mips')
-rw-r--r--drivers/ide/mips/au1xxx-ide.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c
index c319f6163127..aebde49365d1 100644
--- a/drivers/ide/mips/au1xxx-ide.c
+++ b/drivers/ide/mips/au1xxx-ide.c
@@ -101,14 +101,7 @@ void auide_outsw(unsigned long port, void *addr, u32 count)
101 101
102static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio) 102static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio)
103{ 103{
104 int mem_sttime; 104 int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2);
105 int mem_stcfg;
106
107 if (ide_config_drive_speed(drive, pio + XFER_PIO_0))
108 return;
109
110 mem_sttime = 0;
111 mem_stcfg = au_readl(MEM_STCFG2);
112 105
113 /* set pio mode! */ 106 /* set pio mode! */
114 switch(pio) { 107 switch(pio) {
@@ -168,13 +161,9 @@ static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio)
168 au_writel(mem_stcfg,MEM_STCFG2); 161 au_writel(mem_stcfg,MEM_STCFG2);
169} 162}
170 163
171static int auide_tune_chipset(ide_drive_t *drive, const u8 speed) 164static void auide_set_dma_mode(ide_drive_t *drive, const u8 speed)
172{ 165{
173 int mem_sttime; 166 int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2);
174 int mem_stcfg;
175
176 mem_sttime = 0;
177 mem_stcfg = au_readl(MEM_STCFG2);
178 167
179 switch(speed) { 168 switch(speed) {
180#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA 169#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
@@ -210,16 +199,11 @@ static int auide_tune_chipset(ide_drive_t *drive, const u8 speed)
210 break; 199 break;
211#endif 200#endif
212 default: 201 default:
213 return 1; 202 return;
214 } 203 }
215 204
216 if (ide_config_drive_speed(drive, speed))
217 return 1;
218
219 au_writel(mem_sttime,MEM_STTIME2); 205 au_writel(mem_sttime,MEM_STTIME2);
220 au_writel(mem_stcfg,MEM_STCFG2); 206 au_writel(mem_stcfg,MEM_STCFG2);
221
222 return 0;
223} 207}
224 208
225/* 209/*
@@ -681,6 +665,7 @@ static int au_ide_probe(struct device *dev)
681#endif 665#endif
682 666
683 hwif->pio_mask = ATA_PIO4; 667 hwif->pio_mask = ATA_PIO4;
668 hwif->host_flags = IDE_HFLAG_POST_SET_MODE;
684 669
685 hwif->noprobe = 0; 670 hwif->noprobe = 0;
686 hwif->drives[0].unmask = 1; 671 hwif->drives[0].unmask = 1;
@@ -701,7 +686,7 @@ static int au_ide_probe(struct device *dev)
701#endif 686#endif
702 687
703 hwif->set_pio_mode = &au1xxx_set_pio_mode; 688 hwif->set_pio_mode = &au1xxx_set_pio_mode;
704 hwif->speedproc = &auide_tune_chipset; 689 hwif->set_dma_mode = &auide_set_dma_mode;
705 690
706#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA 691#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
707 hwif->dma_off_quietly = &auide_dma_off_quietly; 692 hwif->dma_off_quietly = &auide_dma_off_quietly;