From patchwork Fri Apr 7 22:40:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 81071 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp565363vqo; Fri, 7 Apr 2023 15:55:45 -0700 (PDT) X-Google-Smtp-Source: AKy350bx4hShjreR7xRgA0tzu90P8xgPN8tZqJdwPQDIrtNELtrayuNyaiZG1Yf1unTsFOp7DE8a X-Received: by 2002:a17:902:f68c:b0:19f:7977:c9d6 with SMTP id l12-20020a170902f68c00b0019f7977c9d6mr5374806plg.28.1680908145613; Fri, 07 Apr 2023 15:55:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680908145; cv=none; d=google.com; s=arc-20160816; b=bkobKMl0IvyfYvWaal5jtyrYtQxg8UjduBvr2I5xYV9IY6ozH2OlGBs46YRxR0dDLb Pj2THLQiRoui7a+GWzYG7CEIoL7GQQvEGSWl7063/pOGzReE6IW34ultar0nwajuShi5 AOZL1d4FXhSQuDV/lQiHpzJC5HgnsL0lTPpPKIiG9L1z31Wyd9QRlChWi4zKO8D0g1cZ G3Sb/RnLKDP8+DM1ZopiZgpDt6y7MNaX2358DB54JrudWK6MsSP8B8Ilnb8w4h8Q06Of uWDCzHcR/Wspacw+bdgEGKHCi2WB3uP64HN63y2ZgLQ/tBwtA5oIK3UED1vexmdnKSaa bNcA== 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=bI/wZP7ubTjCdHoQXeZS5R4X8U4Eh+xW5LDQQWeAzvw=; b=VKDSWYQ8PLcJ6b0VsJGfBqBrpy83YlFPCTNtniMzxwO0S7sWWbQanxTyD39cDWkCet tDjzb/rv9iueKwphw6Ph96l1vmUCQGUgzm/1UxB0yjPx0LUk3lS10eDJVz7mOfzeusHK 4+tXvwhecA63Paat64oXdQPvQAvO3kRt3AYLwyvXj32cpgJLYVZqbqwXXgOkTu6eIZFP nrStsC+KzPf8dT47iGOc5RfpOE4ez/cPTUjUPWdY9T8Labl8LbQ71BxM1V6ktiuWY73g 2FjsABwIeCldTWo6V5VxRjYcXHws8/WhMorGNm+PD2P/xwdHZ0YT5BHWuZclgikHGoGJ +gNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=iNuq+OOE; 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 d15-20020a634f0f000000b005139874b88bsi4398409pgb.87.2023.04.07.15.55.33; Fri, 07 Apr 2023 15:55:45 -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=iNuq+OOE; 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 S229591AbjDGWk4 (ORCPT + 99 others); Fri, 7 Apr 2023 18:40:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46766 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230413AbjDGWku (ORCPT ); Fri, 7 Apr 2023 18:40:50 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8349DCC23; Fri, 7 Apr 2023 15:40:46 -0700 (PDT) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 337MeC6E023478; Fri, 7 Apr 2023 22:40:40 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=bI/wZP7ubTjCdHoQXeZS5R4X8U4Eh+xW5LDQQWeAzvw=; b=iNuq+OOEHuLKFivUAqE7GI0gY20XA4SlbCYhl6fpSZBrNK7a95QlBHoHdJcxLkPiXyq4 XkledpZT3cNk1lyKRVNQX6yKdKlx8tpQe5puFeEm7fM/mNkvN+k0aJGOOz4hb59WNKXG 9XKVAhrUclkM9O4cOGBFyvioG989UPmhEB4IQ66zY/2Z+UmSXPMC6bY0l9EWEVT0OTox qH+94WaFbrs84ffi45xXA9Aoy49ecvbzVlOhm0dNjrnerWoqIf8LnP5Gv5pN2eMYFXJF tRspnHmCdCeEyjWjE1K8HXIb2Jl0VY79JDgYOJcqQejEbRLTCa9jjoCF6T/k8PltHzFn gQ== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3psv4dmbu5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 07 Apr 2023 22:40:40 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 337Mednk032525 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 7 Apr 2023 22:40:39 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; Fri, 7 Apr 2023 15:40:38 -0700 From: Wesley Cheng To: , CC: , , , , Wesley Cheng Subject: [PATCH v2 3/3] usb: dwc3: gadget: Execute gadget stop after halting the controller Date: Fri, 7 Apr 2023 15:40:25 -0700 Message-ID: <20230407224025.22315-4-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230407224025.22315-1-quic_wcheng@quicinc.com> References: <20230407224025.22315-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) 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-GUID: CVG6L4uznfyjBYkr0cg9LmP7ve9qeDrW X-Proofpoint-ORIG-GUID: CVG6L4uznfyjBYkr0cg9LmP7ve9qeDrW 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-07_14,2023-04-06_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 spamscore=0 mlxlogscore=619 phishscore=0 bulkscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304070204 X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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?1762559939387703026?= X-GMAIL-MSGID: =?utf-8?q?1762559939387703026?= 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") 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 91768f1bdbaf..9715de8e99bc 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2566,7 +2566,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); /* @@ -2596,7 +2595,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, false); + ret = dwc3_gadget_run_stop(dwc, false, 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)