Messages in this thread | | | Date | Sat, 09 Jun 2007 14:58:20 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH] pata_it821x: sync with IDE it821x driver |
| |
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? 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?
> @@ -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).
Thanks.
-- tejun - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |