diff options
Diffstat (limited to 'drivers/ide/au1xxx-ide.c')
-rw-r--r-- | drivers/ide/au1xxx-ide.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c index 349a67bf1a36..b26c23416fa7 100644 --- a/drivers/ide/au1xxx-ide.c +++ b/drivers/ide/au1xxx-ide.c | |||
@@ -99,12 +99,11 @@ static void au1xxx_output_data(ide_drive_t *drive, struct ide_cmd *cmd, | |||
99 | } | 99 | } |
100 | #endif | 100 | #endif |
101 | 101 | ||
102 | static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio) | 102 | static void au1xxx_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) |
103 | { | 103 | { |
104 | int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2); | 104 | int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2); |
105 | 105 | ||
106 | /* set pio mode! */ | 106 | switch (drive->pio_mode - XFER_PIO_0) { |
107 | switch(pio) { | ||
108 | case 0: | 107 | case 0: |
109 | mem_sttime = SBC_IDE_TIMING(PIO0); | 108 | mem_sttime = SBC_IDE_TIMING(PIO0); |
110 | 109 | ||
@@ -161,11 +160,11 @@ static void au1xxx_set_pio_mode(ide_drive_t *drive, const u8 pio) | |||
161 | au_writel(mem_stcfg,MEM_STCFG2); | 160 | au_writel(mem_stcfg,MEM_STCFG2); |
162 | } | 161 | } |
163 | 162 | ||
164 | static void auide_set_dma_mode(ide_drive_t *drive, const u8 speed) | 163 | static void auide_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive) |
165 | { | 164 | { |
166 | int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2); | 165 | int mem_sttime = 0, mem_stcfg = au_readl(MEM_STCFG2); |
167 | 166 | ||
168 | switch(speed) { | 167 | switch (drive->dma_mode) { |
169 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 168 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
170 | case XFER_MW_DMA_2: | 169 | case XFER_MW_DMA_2: |
171 | mem_sttime = SBC_IDE_TIMING(MDMA2); | 170 | mem_sttime = SBC_IDE_TIMING(MDMA2); |
@@ -297,8 +296,8 @@ static int auide_dma_test_irq(ide_drive_t *drive) | |||
297 | */ | 296 | */ |
298 | drive->waiting_for_dma++; | 297 | drive->waiting_for_dma++; |
299 | if (drive->waiting_for_dma >= DMA_WAIT_TIMEOUT) { | 298 | if (drive->waiting_for_dma >= DMA_WAIT_TIMEOUT) { |
300 | printk(KERN_WARNING "%s: timeout waiting for ddma to \ | 299 | printk(KERN_WARNING "%s: timeout waiting for ddma to complete\n", |
301 | complete\n", drive->name); | 300 | drive->name); |
302 | return 1; | 301 | return 1; |
303 | } | 302 | } |
304 | udelay(10); | 303 | udelay(10); |