diff options
Diffstat (limited to 'drivers/ide/mips/au1xxx-ide.c')
-rw-r--r-- | drivers/ide/mips/au1xxx-ide.c | 28 |
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 | ||
102 | static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio) | 102 | static 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 | ||
172 | static int auide_tune_chipset(ide_drive_t *drive, const u8 speed) | 164 | static 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; |