Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp29602rwb; Wed, 17 Aug 2022 22:01:51 -0700 (PDT) X-Google-Smtp-Source: AA6agR62YXgeBXIUjhITWVPwsZK+H9e/3TtNHcshyJAN0TXBsLHE9bvr2yELikN8kgpsxTLn5ONu X-Received: by 2002:a17:907:2be5:b0:730:82bf:93c8 with SMTP id gv37-20020a1709072be500b0073082bf93c8mr752747ejc.686.1660798911441; Wed, 17 Aug 2022 22:01:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660798911; cv=none; d=google.com; s=arc-20160816; b=EzNWBrlslN24HIKaMVvWX+DvokUxZomdnbPI4uQVXHw1F0FSp9HK8hqLmVYvj9OwEj JxPZ2Cw2v4mzlq54J5Yz08cZY6VFDvvd3rjVw1TsUfp5fYxGcuqyEYvTtFrDTBydSXsD OKpxZfE4mRiOdPDu0fa2GJig2Hs7Gn1mi7/GZaFbZwsKjHVBF8BlH7KpTTehfmQx3pHG YhKEwoTt4jXLXYHGCIsERCcx8D2WxLDBuXNqSoHPLo7Ya79jtFC6jtLSfWdnnOFpFXXl yj3IyU1gZjDVYHKoDCimCO8Ka0pDWmNoR16Izlt/telLQdB4rSQRe7vbWATL/+w2hJqU 9QPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=SoSGCQixshKM9ssnQpAOAEAkNx5otggls2A95fiserQ=; b=XqKkZzNFWEN04QGUFOn5zC9my5z4eDzBIVgQZ2m8SE+YVYBG5oxrEpFuKy2aEF2nN8 No65d6/6RZ4TIXtvOHGgFi16OQvr2KaCs8/WxsU7/gbKl5W5IAAb6azxKVCnLFqPK3Oq xGrzNiQj9gV8GmeXoUwt/CrEz3sr2BQUb7IAz6htPiqSoHizCstmAokfQVqD77j+HZDQ 17dBU0/h1j51vEfv9T37Trq+CIZoGaJWNAsgnyq2lnT46ELW9SRRtbOBCGPMqJDjrF4Q Wj9fweONgUSkIYb2iPrOfLa8f2oeMtYfDyGKG/vVJj1Ej8eNeIF7/fDPF2q2GzbzHCQf N8Ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=RvDyb1oS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dz17-20020a0564021d5100b0043d9ceda904si557659edb.535.2022.08.17.22.01.25; Wed, 17 Aug 2022 22:01:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=RvDyb1oS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243414AbiHREgC (ORCPT + 99 others); Thu, 18 Aug 2022 00:36:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243405AbiHREfz (ORCPT ); Thu, 18 Aug 2022 00:35:55 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20EFF8B98B; Wed, 17 Aug 2022 21:35:55 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27I4ABAn023766; Thu, 18 Aug 2022 04:35:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=SoSGCQixshKM9ssnQpAOAEAkNx5otggls2A95fiserQ=; b=RvDyb1oSxdZ+EIbKCmjGewBseaOmXlaELGd1ULuYam2ggfYGXjq9LzRiY07gZ8JOmIi8 Uu6lymuMUYAOmVfP+EdcKhAlaX+q9I+nXkIQpgtXJRdsrUKhXXYW8X8EOANgovY96EJL QFpEz4O3edsaBGcBPE5ulWYJOiim0VpBnkytMdBObjRXBREQC7gEPLMhtf2RqGoRRs4J a8u54BTZy9XzJoUb3fIMpGZv/spOFsS2/jD1VZPrEBIwOyWRbnPSHwNgcUn4KvUGQcI5 iHQij4kOQ3PvjibVCGXM7L9OqOk7M3zFWNIyM5VQwhpxUN5vxXIaznnYCehx0+gnL1aN +g== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3j0w30c5vn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Aug 2022 04:35:51 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 27I4H2OY017942 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Aug 2022 04:17:02 GMT Received: from nalasex01b.na.qualcomm.com (10.47.209.197) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 17 Aug 2022 19:24:15 -0700 Received: from hu-wcheng-lv.qualcomm.com (10.49.16.6) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 17 Aug 2022 11:24:13 -0700 From: Wesley Cheng To: , , CC: , , , Wesley Cheng Subject: [PATCH v4 8/9] usb: dwc3: gadget: Skip waiting for CMDACT cleared during endxfer Date: Wed, 17 Aug 2022 11:23:58 -0700 Message-ID: <20220817182359.13550-9-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220817182359.13550-1-quic_wcheng@quicinc.com> References: <20220817182359.13550-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Cb255zCrKqeIBHsOaxI5v5pS4Jt3a4CZ X-Proofpoint-GUID: Cb255zCrKqeIBHsOaxI5v5pS4Jt3a4CZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-18_02,2022-08-16_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 mlxlogscore=475 clxscore=1015 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 impostorscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208180014 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For endxfer commands that do not require an endpoint complete interrupt, avoid having to wait for the command active bit to clear. This allows for EP0 events to continue to be handled, which allows for the controller to complete it. Otherwise, it is known that the endxfer command will fail if there is a pending SETUP token that needs to be read. Suggested-by: Thinh Nguyen Reviewed-by: Thinh Nguyen Signed-off-by: Wesley Cheng --- drivers/usb/dwc3/gadget.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 5f250df7066f..4f862552fe00 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -366,7 +366,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd, dwc3_writel(dep->regs, DWC3_DEPCMD, cmd); - if (!(cmd & DWC3_DEPCMD_CMDACT)) { + if (!(cmd & DWC3_DEPCMD_CMDACT) || + (DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_ENDTRANSFER && + !(cmd & DWC3_DEPCMD_CMDIOC))) { ret = 0; goto skip_status; }