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.c28
1 files changed, 6 insertions, 22 deletions
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c
index 85819ae20602..aebde49365d1 100644
--- a/drivers/ide/mips/au1xxx-ide.c
+++ b/drivers/ide/mips/au1xxx-ide.c
@@ -101,12 +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 u8 speed;
107
108 mem_sttime = 0;
109 mem_stcfg = au_readl(MEM_STCFG2);
110 105
111 /* set pio mode! */ 106 /* set pio mode! */
112 switch(pio) { 107 switch(pio) {
@@ -164,18 +159,11 @@ static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio)
164 159
165 au_writel(mem_sttime,MEM_STTIME2); 160 au_writel(mem_sttime,MEM_STTIME2);
166 au_writel(mem_stcfg,MEM_STCFG2); 161 au_writel(mem_stcfg,MEM_STCFG2);
167
168 speed = pio + XFER_PIO_0;
169 ide_config_drive_speed(drive, speed);
170} 162}
171 163
172static int auide_tune_chipset(ide_drive_t *drive, const u8 speed) 164static void auide_set_dma_mode(ide_drive_t *drive, const u8 speed)
173{ 165{
174 int mem_sttime; 166 int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2);
175 int mem_stcfg;
176
177 mem_sttime = 0;
178 mem_stcfg = au_readl(MEM_STCFG2);
179 167
180 switch(speed) { 168 switch(speed) {
181#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA 169#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
@@ -211,16 +199,11 @@ static int auide_tune_chipset(ide_drive_t *drive, const u8 speed)
211 break; 199 break;
212#endif 200#endif
213 default: 201 default:
214 return 1; 202 return;
215 } 203 }
216 204
217 if (ide_config_drive_speed(drive, speed))
218 return 1;
219
220 au_writel(mem_sttime,MEM_STTIME2); 205 au_writel(mem_sttime,MEM_STTIME2);
221 au_writel(mem_stcfg,MEM_STCFG2); 206 au_writel(mem_stcfg,MEM_STCFG2);
222
223 return 0;
224} 207}
225 208
226/* 209/*
@@ -682,6 +665,7 @@ static int au_ide_probe(struct device *dev)
682#endif 665#endif
683 666
684 hwif->pio_mask = ATA_PIO4; 667 hwif->pio_mask = ATA_PIO4;
668 hwif->host_flags = IDE_HFLAG_POST_SET_MODE;
685 669
686 hwif->noprobe = 0; 670 hwif->noprobe = 0;
687 hwif->drives[0].unmask = 1; 671 hwif->drives[0].unmask = 1;
@@ -702,7 +686,7 @@ static int au_ide_probe(struct device *dev)
702#endif 686#endif
703 687
704 hwif->set_pio_mode = &au1xxx_set_pio_mode; 688 hwif->set_pio_mode = &au1xxx_set_pio_mode;
705 hwif->speedproc = &auide_tune_chipset; 689 hwif->set_dma_mode = &auide_set_dma_mode;
706 690
707#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA 691#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
708 hwif->dma_off_quietly = &auide_dma_off_quietly; 692 hwif->dma_off_quietly = &auide_dma_off_quietly;