Re: [PATCH] usb: dwc3: Reset the transfer resource index on SET_INTERFACE

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

 



On Tue, Jul 21, 2015 at 09:29:17AM -0500, Felipe Balbi wrote:
> From: John Youn <John.Youn@xxxxxxxxxxxx>
> 
> This fixes an issue introduced in commit b23c843992b6 (usb: dwc3:
> gadget: fix DEPSTARTCFG for non-EP0 EPs) that made sure we would
> only use DEPSTARTCFG once per SetConfig.
> 
> The trick is that we should use one DEPSTARTCFG per SetConfig *OR*
> SetInterface. SetInterface was completely missed from the original
> patch.
> 
> This problem became aparent after commit 76e838c9f776 (usb: dwc3:
> gadget: return error if command sent to DEPCMD register fails)
> added checking of the return status of device endpoint commands.
> 
> 'Set Endpoint Transfer Resource' command was caught failing
> occasionally. This is because the Transfer Resource
> Index was not getting reset during a SET_INTERFACE request.
> 
> Finally, to fix the issue, was we have to do is make sure that
> our start_config_issued flag gets reset whenever we receive a
> SetInterface request.
> 
> To verify the problem (and its fix), all we have to do is run
> test 9 from testusb with 'testusb -t 9 -s 2048 -a -c 5000'.
> 
> Fixes: b23c843992b6 (usb: dwc3: gadget: fix DEPSTARTCFG for non-EP0 EPs)
> Cc: <stable@xxxxxxxxxxxxxxx> # v3.2+
> Signed-off-by: John Youn <johnyoun@xxxxxxxxxxxx>
> Signed-off-by: Felipe Balbi <balbi@xxxxxx>

Felipe, I've verified it in my side. :)

ray@hr-slim:~/linux-usb$ sudo ./tools/usb/testusb -D /dev/bus/usb/002/004 -t 9 -s 2048 -a -c 5000
unknown speed   /dev/bus/usb/002/004    0
/dev/bus/usb/002/004 test 9,   15.300784 secs

Tested-by: Huang Rui <ray.huang@xxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux