aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/cmd64x.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/ide/cmd64x.c b/drivers/ide/cmd64x.c
index 5c5dd90d032b..9f89f3116df0 100644
--- a/drivers/ide/cmd64x.c
+++ b/drivers/ide/cmd64x.c
@@ -146,10 +146,8 @@ static void cmd64x_set_dma_mode(ide_drive_t *drive, const u8 speed)
146 u8 unit = drive->dn & 0x01; 146 u8 unit = drive->dn & 0x01;
147 u8 regU = 0, pciU = hwif->channel ? UDIDETCR1 : UDIDETCR0; 147 u8 regU = 0, pciU = hwif->channel ? UDIDETCR1 : UDIDETCR0;
148 148
149 if (speed >= XFER_SW_DMA_0) { 149 pci_read_config_byte(dev, pciU, &regU);
150 (void) pci_read_config_byte(dev, pciU, &regU); 150 regU &= ~(unit ? 0xCA : 0x35);
151 regU &= ~(unit ? 0xCA : 0x35);
152 }
153 151
154 switch(speed) { 152 switch(speed) {
155 case XFER_UDMA_5: 153 case XFER_UDMA_5:
@@ -177,8 +175,7 @@ static void cmd64x_set_dma_mode(ide_drive_t *drive, const u8 speed)
177 break; 175 break;
178 } 176 }
179 177
180 if (speed >= XFER_SW_DMA_0) 178 pci_write_config_byte(dev, pciU, regU);
181 (void) pci_write_config_byte(dev, pciU, regU);
182} 179}
183 180
184static void cmd648_clear_irq(ide_drive_t *drive) 181static void cmd648_clear_irq(ide_drive_t *drive)