On Sunday 29 July 2007, Sergei Shtylyov wrote:
> Bartlomiej Zolnierkiewicz wrote:
> 
> >>>Ok, there's a combination of things here:
> 
> >>> - First, doing a set_pio from userland (hdparm -p XX) causes the kernel
> >>>to disable DMA, which I think is incorrect. It's not the case with
> >>>2.6.22 from my quick tests. The problem is that ide_config_drive_speed
> >>>disables DMA, but only re-enables it when setting a DMA speed. I think
> 
> > The problem is that _many_ chipsets don't support separate PIO and DMA
> > timings so disabling DMA while programming chipset for PIO timings is a
> > necessity for them.
> 
>     Actually, I didn't quite follow (as I'm afraid Ben also :-). Do you mean 
> the fact that the DMA timings may get overwritten (which happens due to the 
> failure of the drivers to handle the shared PIO/DMA timing registers, and in 
> some cases by "coupling" PIO to UltraDMA timings for no apparent reasons 
> which 
> leads to disabling UltraDMA when PIO is being programmed)?

Yes, in particular I meant cases like cmd64x (shared MWDMA/PIO timing
registers) so doing "hdparm -p" on a drive currently using DMA without
ide_config_drive_speed() disabling DMA would result in DMA operations
using PIO timings and possible data corruptions.

BTW all PIO to (U)DMA "couplings" should be fixed now

Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to