[PATCH] add delay around sl82c105_reset_engine calls
Olaf Hering
olaf at aepfle.de
Tue Dec 5 00:12:02 EST 2006
On Mon, Dec 04, Alan wrote:
> On Mon, 4 Dec 2006 13:40:26 +0100 (MET)
> Olaf Hering <olaf at aepfle.de> wrote:
>
> >
> >
> > the hald media changed polling does really confuse things.
> > noone knows why the delays are needed, but they give us access to
> > the CD.
>
> Can you tell me what happens if you completely pull the reset out of the
> dma_end function. Do you still need delays then.
Did you mean like this?
@@ -215,7 +217,10 @@ static void sl82c105_bmdma_stop(struct a
struct ata_port *ap = qc->ap;
ata_bmdma_stop(qc);
+#if 0
sl82c105_reset_engine(ap);
+ udelay(50);
+#endif
/* This will redo the initial setup of the DMA device to matching
PIO timings */
[ 315.923917] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
[ 315.923927] ata1.00: (BMDMA stat 0x41)
[ 315.923935] ata1.00: tag 0 cmd 0xa0 Emask 0x4 stat 0x40 err 0x0 (timeout)
[ 315.924039] ata1: soft resetting port
[ 346.243816] ata1.00: qc timeout (cmd 0xa1)
[ 346.243829] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 346.243882] ata1.00: revalidation failed (errno=-5)
[ 346.243891] ata1: failed to recover some devices, retrying in 5 secs
[ 351.253802] ata1: soft resetting port
[ 381.573813] ata1.00: qc timeout (cmd 0xa1)
[ 381.573823] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 381.573876] ata1.00: revalidation failed (errno=-5)
[ 381.573884] ata1: failed to recover some devices, retrying in 5 secs
More information about the Linuxppc-dev
mailing list