summaryrefslogtreecommitdiff
path: root/include/uapi/linux/usb
diff options
context:
space:
mode:
authorZhuang Jin Can <jin.can.zhuang@intel.com>2014-05-16 01:57:57 +0400
committerFelipe Balbi <balbi@ti.com>2014-06-19 17:51:07 +0400
commit5cd8c48d95c10f729090c89757727e090719fd83 (patch)
treeb413d6182b8ac1892bd9f8f4a4f941b7c2964175 /include/uapi/linux/usb
parent7171511eaec5bf23fb06078f59784a3a0626b38f (diff)
downloadlinux-5cd8c48d95c10f729090c89757727e090719fd83.tar.xz
usb: dwc3: gadget: check link trb after free_slot is increased
In ISOC transfers, when free_slot points to the last TRB (i.e. Link TRB), and all queued requests meet Missed Interval Isoc error, busy_slot points to trb0. busy_slot->trb0 trb1 ... free_slot->trb31(Link TRB) After end transfer and receiving the XferNotReady event, trb_left is caculated as 1 which is wrong, and no TRB will be primed to the endpoint. The root cause is free_slot is not increased the same way as busy_slot. When busy_slot is increased by one, it checks if points to a link TRB after increasement, but free_slot checks it before increasement. free_slot should behave the same as busy_slot to make the trb_left caculation correct. Reviewed-by: Pratyush Anand <pratyush.anand@st.com> Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com> Signed-off-by: Jiebing Li <jiebing.li@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'include/uapi/linux/usb')
0 files changed, 0 insertions, 0 deletions