Thread (68 messages) 68 messages, 4 authors, 2011-02-24

Re: [PATCH 02/20] ata_piix: unify code for programming PIO and MWDMA timings

From: Sergei Shtylyov <hidden>
Date: 2011-02-20 20:44:09
Also in: lkml

Hello.

On 20-02-2011 21:59, Alan Cox wrote:
quoted
quoted
+	if (ata_pio_need_iordy(adev) || use_mwdma)
   		control |= 2;	/* IE enable */
quoted
     Why IORDY is enabled for MWDMA has always been beyond me... I understand
that the stupid Intel docs are to be blamed here.
I fail to see whats stupid about the docs ?
    Association of IORDY with DMA mode is wrong.
The same timing register set is used for MWDMA and PIO cycles in MWDMA
tuned modes (eg ATAPI). Thus the controller needs to be in an MWDMA mode
whose timings are compatible with the PIO timing and we want IORDY in use
for the PIO transfer parts.
    Yeah, especially if we also set the bit which only enables fast timing for 
DMA. ;-)
    PIO mode is setup by different code, and it takes care of the IORDY 
setting according to the PIO rules (and it gets called). DMA mode setup should 
just ignore the IORDY setting as in all other sane drivers.
Alan
WBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help