NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/42225 (can't read data from SuperTop IDE Bridge (umass))



Hi,

On Sun, Apr 04, 2010 at 10:35:02PM +0000, Martin Husemann wrote:
>  On Sun, Apr 04, 2010 at 10:18:48PM +0200, Markus W Kilbinger wrote:
>  >                 residue = UGETDW(sc->csw.dCSWDataResidue);
>  > -               if (residue < sc->transfer_datalen - sc->transfer_actlen)
>  > +               if (residue != sc->transfer_datalen - sc->transfer_actlen)
>  >                         residue = sc->transfer_datalen - 
> sc->transfer_actlen;

I'm sorry I haven't answered before.

I had required to HDD build into the SuperTOP usb<->ata bridge into a
computer, such that I couldn't test.  I now put another hdd into my
supertop drive and it now emits the same problem as described by Markus.
I assume that the controller chip is heavily broken by design and emits
useless residue data which may be greater or less than the real value.
The patch proposed by Markus works fine for me.

I have tested the patch on my 5.1_RC3 system and attached and used two
different (different vendors and sizes) usb-sticks and three different
hdd-cases (including the SuperTOP).  The other four umass devices do not
have the problem, but are not rendered non-functional by the patch.  As
it seems the sc->transfer_datalen and sc->transfer_actlen information is
more reliable than the residue information, one could even shorten this,
to just use this information without reading the residue from the
device.

--
Matthias


Home | Main Index | Thread Index | Old Index