From patchwork Thu Apr 20 21:27:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 86046 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp630377vqo; Thu, 20 Apr 2023 14:35:37 -0700 (PDT) X-Google-Smtp-Source: AKy350aHm/ZtW0VuSi1ioV31dEL0ZUxJl+myDbxhhxCw3sTdae1g1FbZeQX8T4hYfvHh7trhjNOI X-Received: by 2002:a17:90b:341:b0:247:42f6:e8ca with SMTP id fh1-20020a17090b034100b0024742f6e8camr3290124pjb.12.1682026537175; Thu, 20 Apr 2023 14:35:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682026537; cv=none; d=google.com; s=arc-20160816; b=joCvvsrOFFiXeFMBrBq5Q2P6uH1jGlxufc/0iUiCLVkuANdBeoVWAt5i6Fwgg7bvQZ 3CZ/eq4ae2dznUKkGmTAooDikazmIAq/xNl5POh5OibFWbTil4nNfmGjHNgmhad4o1La kLeKQDBt6HY0roNC0cKG/L8A5j9ThoAcRbU3hMUaLCu9t8t7lFC3izfvvTZ9gU0J1gIP wRghP6F7f9zQSzgM+Ay8iSwyWd7ySettabpCb15CoPfBWHadtGXeN7NxPmTzBbcKb7cq gTIGmUkShgQun8OcpdLsg82kqc8+7BjlHqUPOZYGLAaSBVSweUVAEf0ck0bzBUh7JgZU vzrg== 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=E4WRIbiPJ+c0ww+ET8b+VeBOgy8qXQW/56nTRsr7oac=; b=e00BV38/v3Us791J6btWR2XWmciTmTAr6Zsk6o81ZuuZfDkvGGptxDDCI0fjBh52k1 6vvBcWUkpzlVO97ayQ8zh4ceyOBziNSDDSJyiBRwh0g58koXlnx1ehm0C0qfF898QT5V ayGNCNnINEVX5zUFfxQBUdGzju1zk9qILp+wEnOLDtr3Adg0dyzh0mfEpDc4DUE49f34 uKKuM7LBXe/TrfMUyW7h9NP7flCTka9se1sSFtEKAyAS7ax9k7spdrLeP63ySQu6rHt4 +OQ6jVwZWxb3LuQlYlDKBBjm5Rof+0+amuIe45+Zp6sCQZzDr+RTdpudlOwz+kqvBr27 7hZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=W5TP+j81; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ot2-20020a17090b3b4200b0023f37b648d9si5929827pjb.157.2023.04.20.14.35.22; Thu, 20 Apr 2023 14:35:37 -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=W5TP+j81; 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 S232287AbjDTV2b (ORCPT + 99 others); Thu, 20 Apr 2023 17:28:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230200AbjDTV23 (ORCPT ); Thu, 20 Apr 2023 17:28:29 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D806559E; Thu, 20 Apr 2023 14:28:26 -0700 (PDT) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33KLHdMf020200; Thu, 20 Apr 2023 21:28:12 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=E4WRIbiPJ+c0ww+ET8b+VeBOgy8qXQW/56nTRsr7oac=; b=W5TP+j81lYWfk89bg3vLakJYCshHUyskI9mp1ApUUzruhhSSKrvIin1KmdJANZcP3EzA /Q7CSggjkITJwS3eP7nZyOnIlE/bTwAuD9aADiBD64UxVhRWDnFiqGPhXftduUzHs52V M9j9UAGeihijt1KKMDUY91MENC6PE+249bSleHOTEGAl027jlgOIVya5WQZYyyFfNDNG XG6VxkvgkapuVbmpMhkvwm40eCqYvQVSV7Ue5nqWR8YQ1bdhIb8yU/3k4kWtFTBFQEnb VXpdVqlFoalxhevfJxOgB/sxwkC539gem4vHE7wya6ybQDA3PN3hEstsWFX0O4eAf+u1 qA== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q2xuht87a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Apr 2023 21:28:12 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 33KLSBi0018090 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Apr 2023 21:28:11 GMT 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.42; Thu, 20 Apr 2023 14:28:11 -0700 From: Wesley Cheng To: , CC: , , , Wesley Cheng , Subject: [PATCH v6 1/2] usb: dwc3: gadget: Execute gadget stop after halting the controller Date: Thu, 20 Apr 2023 14:27:58 -0700 Message-ID: <20230420212759.29429-2-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230420212759.29429-1-quic_wcheng@quicinc.com> References: <20230420212759.29429-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 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: 1nnMtQUqeBs3Kj6D9BF_cIfcwp9btCkY X-Proofpoint-GUID: 1nnMtQUqeBs3Kj6D9BF_cIfcwp9btCkY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-20_15,2023-04-20_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 mlxlogscore=739 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304200180 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 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763732658063681687?= X-GMAIL-MSGID: =?utf-8?q?1763732658063681687?= Do not call gadget stop until the poll for controller halt is completed. DEVTEN is cleared as part of gadget stop, so the intention to allow ep0 events to continue while waiting for controller halt is not happening. Fixes: c96683798e27 ("usb: dwc3: ep0: Don't prepare beyond Setup stage") Cc: stable@vger.kernel.org Acked-by: Thinh Nguyen Signed-off-by: Wesley Cheng --- drivers/usb/dwc3/gadget.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 9f492c8a7d0b..dd6057bad37e 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2637,7 +2637,6 @@ static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc) * bit. */ dwc3_stop_active_transfers(dwc); - __dwc3_gadget_stop(dwc); spin_unlock_irqrestore(&dwc->lock, flags); /* @@ -2674,7 +2673,19 @@ static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc) * remaining event generated by the controller while polling for * DSTS.DEVCTLHLT. */ - return dwc3_gadget_run_stop(dwc, false); + ret = dwc3_gadget_run_stop(dwc, false); + + /* + * Stop the gadget after controller is halted, so that if needed, the + * events to update EP0 state can still occur while the run/stop + * routine polls for the halted state. DEVTEN is cleared as part of + * gadget stop. + */ + spin_lock_irqsave(&dwc->lock, flags); + __dwc3_gadget_stop(dwc); + spin_unlock_irqrestore(&dwc->lock, flags); + + return ret; } static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)