Fix ATAPI DMA. We need to set the proper flags for DMA modes.

This commit is contained in:
sos 2005-05-11 12:41:35 +00:00
parent 31532d6fec
commit eb109cd6d5

View File

@ -670,9 +670,11 @@ ata_generic_command(struct ata_request *request)
int timeout = 5000;
/* issue packet command to controller */
if (request->flags & ATA_R_DMA)
ATA_IDX_OUTB(ch, ATA_FEATURE, ATA_F_DMA);
ATA_IDX_OUTB(ch, ATA_CYL_LSB, request->transfersize);
ATA_IDX_OUTB(ch, ATA_CYL_MSB, request->transfersize >> 8);
ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_PACKET_CMD);
ATA_IDX_OUTB(ch, ATA_COMMAND, ATA_PACKET_CMD);
/* command interrupt device ? just return and wait for interrupt */
if ((atadev->param.config & ATA_DRQ_MASK) == ATA_DRQ_INTR)