Hello, I wrote:
Index: linux-2.6/drivers/ide/pci/cmd64x.c
===================================================================
--- linux-2.6.orig/drivers/ide/pci/cmd64x.c
+++ linux-2.6/drivers/ide/pci/cmd64x.c
While this was always incorrectly setting PIO4, the PIO4 is "the
usual" case
and for this driver we need to program PIO explicitly even when using
DMA.
Hm, why it's *so* special, i.e. why almost all the other drivers can
get away without it (the majority seems to have autotune set *only* if
hwif->dma_base is seen as 0 in the init_hwif() method? :-/
The core code doesn't program PIO mode unless told to (->autotune flag
== 1)
so after the above change PIO mode won't be programmed et all.
I think that we now need to set ->autotune unconditionally in
init_hwif_cmd64x().
Don't think we *need* to. Look at the code at the end of init_chipset()
method. Those values it writes to ARTTIM/DRWTIM registers already matches
PIO4! That's another question what this code is doing there, being both
duplicate and misplaced. :-)
No problem. This actually seems the right thing to do in all
drivers, just like the libata core does. :-)
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