ide-cris: fix ->speedproc and wrong ->swdma_mask
* fix ->speedproc to set the drive speed * this driver doesn't support SWDMA so use the correct ->swdma_mask * BUG() if an unsupported mode is passed to ->speedproc Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
8e60d3762f
commit
55e4dee329
|
@ -730,7 +730,7 @@ static int speed_cris_ide(ide_drive_t *drive, u8 speed)
|
||||||
|
|
||||||
if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
|
if (speed >= XFER_PIO_0 && speed <= XFER_PIO_4) {
|
||||||
tune_cris_ide(drive, speed - XFER_PIO_0);
|
tune_cris_ide(drive, speed - XFER_PIO_0);
|
||||||
return 0;
|
return ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(speed)
|
switch(speed)
|
||||||
|
@ -760,7 +760,8 @@ static int speed_cris_ide(ide_drive_t *drive, u8 speed)
|
||||||
hold = ATA_DMA2_HOLD;
|
hold = ATA_DMA2_HOLD;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
BUG();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speed >= XFER_UDMA_0)
|
if (speed >= XFER_UDMA_0)
|
||||||
|
@ -768,7 +769,7 @@ static int speed_cris_ide(ide_drive_t *drive, u8 speed)
|
||||||
else
|
else
|
||||||
cris_ide_set_speed(TYPE_DMA, 0, strobe, hold);
|
cris_ide_set_speed(TYPE_DMA, 0, strobe, hold);
|
||||||
|
|
||||||
return 0;
|
return ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init
|
void __init
|
||||||
|
@ -821,7 +822,6 @@ init_e100_ide (void)
|
||||||
hwif->udma_four = 0;
|
hwif->udma_four = 0;
|
||||||
hwif->ultra_mask = cris_ultra_mask;
|
hwif->ultra_mask = cris_ultra_mask;
|
||||||
hwif->mwdma_mask = 0x07; /* Multiword DMA 0-2 */
|
hwif->mwdma_mask = 0x07; /* Multiword DMA 0-2 */
|
||||||
hwif->swdma_mask = 0x07; /* Singleword DMA 0-2 */
|
|
||||||
hwif->autodma = 1;
|
hwif->autodma = 1;
|
||||||
hwif->drives[0].autodma = 1;
|
hwif->drives[0].autodma = 1;
|
||||||
hwif->drives[1].autodma = 1;
|
hwif->drives[1].autodma = 1;
|
||||||
|
@ -1010,7 +1010,6 @@ static int cris_config_drive_for_dma (ide_drive_t *drive)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
speed_cris_ide(drive, speed);
|
speed_cris_ide(drive, speed);
|
||||||
ide_config_drive_speed(drive, speed);
|
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
return ide_dma_enable(drive);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue