Andrew Gallatin wrote: > Hi, > > I recently decided to update my alpha UP1000 to today's current from a > mid-July build. However, UDMA33 did not work on a hard disk attached > to the built-in Acer Aladdin controller (verbose dmesg appended). > > I think I have narrowed the problem down to this line of code: > > atadev->channel->flags |= ATA_ATAPI_DMA_RO; > > Removing this line gets my UDMA33 back. If I understand the code correctly, the right fix should more look like: diff -u -r1.18 ata-lowlevel.c --- ata-lowlevel.c 7 Oct 2003 13:45:56 -0000 1.18 +++ ata-lowlevel.c 8 Oct 2003 22:38:15 -0000 _at__at_ -73,7 +73,8 _at__at_ request->device->channel->running = request; /* disable ATAPI DMA writes if HW doesn't support it */ - if (request->flags & (ATA_R_ATAPI | ATA_R_DMA | ATA_R_WRITE) && + if (((request->flags & (ATA_R_ATAPI | ATA_R_DMA | ATA_R_WRITE)) == + (ATA_R_ATAPI | ATA_R_DMA | ATA_R_WRITE)) && request->device->channel->flags & ATA_ATAPI_DMA_RO) request->flags &= ~ATA_R_DMA; But I don't have ATAPI devices attached to this machine to test. DanielReceived on Wed Oct 08 2003 - 18:16:32 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:24 UTC