Thread (17 messages) 17 messages, 3 authors, 2007-07-29

Re: ide patches

From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: 2007-07-29 18:05:11

On Sunday 29 July 2007, Sergei Shtylyov wrote:
Bartlomiej Zolnierkiewicz wrote:
quoted
quoted
quoted
Ok, there's a combination of things here:
quoted
quoted
quoted
- 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
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help