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)?
MBR, Sergei - 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