From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtprelay2.synopsys.com ([198.182.60.111]:50521 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752276AbeAJVL3 (ORCPT ); Wed, 10 Jan 2018 16:11:29 -0500 Date: Wed, 10 Jan 2018 13:11:27 -0800 Message-ID: <729e3a1cebface055f5fb88c2da8c5f1ee0e4786.1515618112.git.thinhn@synopsys.com> In-Reply-To: References: From: Thinh Nguyen Subject: [PATCH v2 2/2] usb: dwc3: ep0: Reset TRB counter for ep0 IN To: Felipe Balbi , Thinh Nguyen , CC: John Youn , MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: In control read transfer completion handler, the driver needs to reset the TRB enqueue counter. Since there is one control endpoint structure for each direction, we must also track the TRB enqueue counter for each direction. Currently the driver only resets the TRB counter for control OUT endpoint only. Check for the data direction and properly reset the TRB counter from correct control endpoint. Cc: stable@vger.kernel.org Signed-off-by: Thinh Nguyen --- drivers/usb/dwc3/ep0.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index fd3e7ad2eb0e..618b4260f0d9 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -858,7 +858,12 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc, trb++; trb->ctrl &= ~DWC3_TRB_CTRL_HWO; trace_dwc3_complete_trb(ep0, trb); - ep0->trb_enqueue = 0; + + if (r->direction) + dwc->eps[1]->trb_enqueue = 0; + else + dwc->eps[0]->trb_enqueue = 0; + dwc->ep0_bounced = false; } -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,2/2] usb: dwc3: ep0: Reset TRB counter for ep0 IN From: Thinh Nguyen Message-Id: <729e3a1cebface055f5fb88c2da8c5f1ee0e4786.1515618112.git.thinhn@synopsys.com> Date: Wed, 10 Jan 2018 13:11:27 -0800 To: Felipe Balbi , Thinh Nguyen , linux-usb@vger.kernel.org Cc: John Youn , stable@vger.kernel.org List-ID: SW4gY29udHJvbCByZWFkIHRyYW5zZmVyIGNvbXBsZXRpb24gaGFuZGxlciwgdGhlIGRyaXZlciBu ZWVkcyB0byByZXNldAp0aGUgVFJCIGVucXVldWUgY291bnRlci4gU2luY2UgdGhlcmUgaXMgb25l IGNvbnRyb2wgZW5kcG9pbnQgc3RydWN0dXJlCmZvciBlYWNoIGRpcmVjdGlvbiwgd2UgbXVzdCBh bHNvIHRyYWNrIHRoZSBUUkIgZW5xdWV1ZSBjb3VudGVyIGZvciBlYWNoCmRpcmVjdGlvbi4gQ3Vy cmVudGx5IHRoZSBkcml2ZXIgb25seSByZXNldHMgdGhlIFRSQiBjb3VudGVyIGZvciBjb250cm9s Ck9VVCBlbmRwb2ludCBvbmx5LiBDaGVjayBmb3IgdGhlIGRhdGEgZGlyZWN0aW9uIGFuZCBwcm9w ZXJseSByZXNldCB0aGUKVFJCIGNvdW50ZXIgZnJvbSBjb3JyZWN0IGNvbnRyb2wgZW5kcG9pbnQu CgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBUaGluaCBOZ3V5ZW4g PHRoaW5obkBzeW5vcHN5cy5jb20+Ci0tLQogZHJpdmVycy91c2IvZHdjMy9lcDAuYyB8IDcgKysr KysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZXAwLmMgYi9kcml2ZXJzL3VzYi9kd2MzL2VwMC5j CmluZGV4IGZkM2U3YWQyZWIwZS4uNjE4YjQyNjBmMGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Vz Yi9kd2MzL2VwMC5jCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZXAwLmMKQEAgLTg1OCw3ICs4NTgs MTIgQEAgc3RhdGljIHZvaWQgZHdjM19lcDBfY29tcGxldGVfZGF0YShzdHJ1Y3QgZHdjMyAqZHdj LAogCQl0cmIrKzsKIAkJdHJiLT5jdHJsICY9IH5EV0MzX1RSQl9DVFJMX0hXTzsKIAkJdHJhY2Vf ZHdjM19jb21wbGV0ZV90cmIoZXAwLCB0cmIpOwotCQllcDAtPnRyYl9lbnF1ZXVlID0gMDsKKwor CQlpZiAoci0+ZGlyZWN0aW9uKQorCQkJZHdjLT5lcHNbMV0tPnRyYl9lbnF1ZXVlID0gMDsKKwkJ ZWxzZQorCQkJZHdjLT5lcHNbMF0tPnRyYl9lbnF1ZXVlID0gMDsKKwogCQlkd2MtPmVwMF9ib3Vu Y2VkID0gZmFsc2U7CiAJfQogCg==