On Sat, Feb 21, 2015 at 1:18 AM, Aleksander Morgado
<[email protected]> wrote:
> The current logic, though, doesn't seem to contemplate the case where a TD 
> has a
> TDR in the data stage which actually reports 0 bytes (i.e. transfer event len
> equal to transfer buffer len). The logic is currently handling this case in 
> the
> following way:
>
>   Transfer event len = 64, COMP_SHORT_TX (data)
>    |---------> URB actual length = 64 - 64 = 0
>   Transfer event len = 0, COMP_SHORT_SUCCESS (status)
>    |---------> URB actual length set to transfer buffer length = 64   <------
>
> In this case, the logic shouldn't update the URB actual length during the 
> status
> stage; instead it should leave the URB actual length that was computed during
> the data stage, even if it's 0:
>
>   Transfer event len = 63, COMP_SHORT_TX (data)

So much for re-reading the patch 10 times before sending it...  The
"Transfer event len" in this previous line should be 64, not 63.

>    |---------> URB actual length = 64 - 64 = 0
>   Transfer event len = 0, COMP_SHORT_SUCCESS (status)
>    |---------> URB actual length not modified = 0                     <------


-- 
Aleksander
https://aleksander.es
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to