Hello, On Saturday 09 June 2007, Tejun Heo wrote: > Hello, > > Bartlomiej Zolnierkiewicz wrote: > > * (partially) fix DMA in RAID mode > > > > Code intended to check DMA status was checking DMA command register. > > Moreover firmware seems to "forget" to set DMA capable bit for the > > slave device (at least in RAID mode but without ITE RAID volumes) so > > check device ID for DMA capable bit when deciding whether to use DMA > > and remove DMA status check completely. > > > > Thanks to Pavol Šimo for the bugreport and testing the initial fix. > > Ah... This is the mysterious mwdma configuration in smart mode, right? Yep. > Thanks for fixing this. > > > This change unfortunately still doesn't fix DMA in RAID mode (which > > works fine with IDE it821x) but Alan is working on the missing pieces > > (pata_it821x vs libata EH issues). > > This is the lbal/nsect SRST problem, right? I think so, due to lack of time I'm not following libata discussions closely. > > @@ -258,8 +259,14 @@ static void it821x_passthru_set_piomode( > > static const u8 pio_want[] = { ATA_66, ATA_66, ATA_66, ATA_66, ATA_ANY }; > > > > struct it821x_dev *itdev = ap->private_data; > > + struct ata_device *pair = ata_dev_pair(adev); > > int unit = adev->devno; > > - int mode_wanted = adev->pio_mode - XFER_PIO_0; > > + int mode_wanted = adev->pio_mode; > > + > > + if (pair && adev->pio_mode > pair->pio_mode) > > + mode_wanted = pair->pio_mode; > > + > > + mode_wanted -= XFER_PIO_0; > > I think this is better done by mode_filter callback which is guaranteed > to be called before any actual mode configuration is performed and in > device order (master then slave). I was thinking about using ->mode_filter but since all other PATA host drivers are doing PIO filtering in ->set_piomode methods and also since it seemed that using ->mode_filter method would result in slightly more complex code I opted for coherency / simplicity. However if you (or somebody else) want to make a follow-up change to this driver (and preferably other PATA host drivers ie. pata_sil680) to use ->mode_filter I'm also fine with that. Thanks, Bart - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html