mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
UPSTREAM: usb: dwc2: Stop Complete Splits after Data PID == 0
Stop sending complete split requests in case of ISOC IN split transfers
after getting data with PID0. Otherwise we will get a NYET for each
additional IN token.
Change-Id: I2713509085f2c89f4d442584445547f87345c37d
Signed-off-by: Sevak Arakelyan <sevaka@synopsys.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit 9d8da85798)
This commit is contained in:
committed by
Tao Huang
parent
231d1336b5
commit
361eb95bc3
@@ -915,6 +915,8 @@ static int dwc2_xfercomp_isoc_split_in(struct dwc2_hsotg *hsotg,
|
||||
{
|
||||
struct dwc2_hcd_iso_packet_desc *frame_desc;
|
||||
u32 len;
|
||||
u32 hctsiz;
|
||||
u32 pid;
|
||||
|
||||
if (!qtd->urb)
|
||||
return 0;
|
||||
@@ -932,7 +934,10 @@ static int dwc2_xfercomp_isoc_split_in(struct dwc2_hsotg *hsotg,
|
||||
|
||||
qtd->isoc_split_offset += len;
|
||||
|
||||
if (frame_desc->actual_length >= frame_desc->length) {
|
||||
hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum));
|
||||
pid = (hctsiz & TSIZ_SC_MC_PID_MASK) >> TSIZ_SC_MC_PID_SHIFT;
|
||||
|
||||
if (frame_desc->actual_length >= frame_desc->length || pid == 0) {
|
||||
frame_desc->status = 0;
|
||||
qtd->isoc_frame_index++;
|
||||
qtd->complete_split = 0;
|
||||
|
||||
Reference in New Issue
Block a user