diff options
Diffstat (limited to 'drivers/ide/tc86c001.c')
-rw-r--r-- | drivers/ide/tc86c001.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/ide/tc86c001.c b/drivers/ide/tc86c001.c index 05a93d6baecc..e444d24934b3 100644 --- a/drivers/ide/tc86c001.c +++ b/drivers/ide/tc86c001.c | |||
@@ -13,11 +13,11 @@ | |||
13 | 13 | ||
14 | #define DRV_NAME "tc86c001" | 14 | #define DRV_NAME "tc86c001" |
15 | 15 | ||
16 | static void tc86c001_set_mode(ide_drive_t *drive, const u8 speed) | 16 | static void tc86c001_set_mode(ide_hwif_t *hwif, ide_drive_t *drive) |
17 | { | 17 | { |
18 | ide_hwif_t *hwif = drive->hwif; | ||
19 | unsigned long scr_port = hwif->config_data + (drive->dn ? 0x02 : 0x00); | 18 | unsigned long scr_port = hwif->config_data + (drive->dn ? 0x02 : 0x00); |
20 | u16 mode, scr = inw(scr_port); | 19 | u16 mode, scr = inw(scr_port); |
20 | const u8 speed = drive->dma_mode; | ||
21 | 21 | ||
22 | switch (speed) { | 22 | switch (speed) { |
23 | case XFER_UDMA_4: mode = 0x00c0; break; | 23 | case XFER_UDMA_4: mode = 0x00c0; break; |
@@ -41,9 +41,10 @@ static void tc86c001_set_mode(ide_drive_t *drive, const u8 speed) | |||
41 | outw(scr, scr_port); | 41 | outw(scr, scr_port); |
42 | } | 42 | } |
43 | 43 | ||
44 | static void tc86c001_set_pio_mode(ide_drive_t *drive, const u8 pio) | 44 | static void tc86c001_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive) |
45 | { | 45 | { |
46 | tc86c001_set_mode(drive, XFER_PIO_0 + pio); | 46 | drive->dma_mode = drive->pio_mode; |
47 | tc86c001_set_mode(hwif, drive); | ||
47 | } | 48 | } |
48 | 49 | ||
49 | /* | 50 | /* |