From patchwork Thu Apr 13 19:57:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 83081 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1291536vqo; Thu, 13 Apr 2023 13:07:24 -0700 (PDT) X-Google-Smtp-Source: AKy350Y/DLzlvwJSZdgqsdAb6VHcgtxonEIXRRHFiAc0oinD1OVejBcZFdq3/51DUe4KpvvHy/wr X-Received: by 2002:a05:6a00:174c:b0:5a8:abd2:2beb with SMTP id j12-20020a056a00174c00b005a8abd22bebmr5277744pfc.30.1681416443802; Thu, 13 Apr 2023 13:07:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681416443; cv=none; d=google.com; s=arc-20160816; b=uWDqoHKm/vQFHePgPujXp930Oh5VCWBRbXcZnLtd6l/6QjNrwFWX1FlrBbxHbXePRH 5DRG4IN3EF1FaM3P81NDSmAgM3cIcrX6R2cDiaUFfOOmaPSEPRCoZmbAnddwcE64E4+T O9qaucWbYn3JD0L24hX7tkaatM23VckycFuLhK7s0Vwnbd4EaXkfxiV3phoHdbUl3XsE fotaO9O6TGTQy9n01WeQH0pCym9kvFvtA9k99AxdD8edHSnjeD/Q2lrKNUKuGwKPyiC3 stbrTqKwXkfxy3d/2upI+L15tSeVcj+UajNOuLpcHPaK2AQfaUWSKPnw8vrtdXHRxVIz 8h5A== 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=EGCn+DcO2MLEicYxLab2/7BGv91zL04trwhJpSd9yko=; b=hNYKrYFiNBeVgwu9uVWojFYlbJoxiSdmUCjr8NdNUmz5/01QQ4pKRdF121JAlzcnZw EDWP4oshrSSNXC7WxtmQpMNHnM1S4XbMDxdQkV/DBcaYBWemqYs60PkThS0bTFCwYSae JEeWR9Y/zS6EaYqxRWH/LmMTeWd9lsa6o7khABamiIcxMc0xHBkGCVsoYZ6fU03kzAax oXbQZiYGI7ZtzWu4+CreDDbW1cPmcn1sV+1Y+9V1dLjV60EtTE8wO3J9LzdDQEijdJiZ b12Z6KvMPcvxHpAhxLj6U3bTBruUONZpCP3xwOjmiBEMsOfFzp6GdQXy0nhFrGs9ZjET yuyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="Vg+94Hq/"; 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 d12-20020aa797ac000000b005a0c57eac92si2450973pfq.232.2023.04.13.13.07.09; Thu, 13 Apr 2023 13:07:23 -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="Vg+94Hq/"; 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 S229933AbjDMT7i (ORCPT + 99 others); Thu, 13 Apr 2023 15:59:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230117AbjDMT7e (ORCPT ); Thu, 13 Apr 2023 15:59:34 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24E41A27D; Thu, 13 Apr 2023 12:59:32 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33DJ13il018315; Thu, 13 Apr 2023 19:59:30 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=EGCn+DcO2MLEicYxLab2/7BGv91zL04trwhJpSd9yko=; b=Vg+94Hq/t3a+nFe3RPTY3KExFXplUDBjtazN8cOeNqAIctjSJbReRCSToGQ4yuu7LzB2 oio2aRNw8OvjVtorB+a45MntlzPEqdJrp6H34gGq0++iadEFVyoKHbotmRpN+2DoxYzl kA2v/2ZmoT3pouq/qYVcbYqNB62cYFZsME25A+Nu8U2gsiiWc4fyuUGTsfLzwLlEmO1L dnR3csWjKfAh6L3QTewvULINanRQPSklTfXIQjnVLByDxVfV8wegGBp60j+FQkD9HZT9 EhgQF7nm8TTooLV87nTOO0s+7f6XLXiujOIuqLWT2jJNJp9Ho42J8MwIX8Q26AgqxEee jw== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3px3retewr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Apr 2023 19:59:30 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 33DJxA1E001087 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Apr 2023 19:59:10 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, 13 Apr 2023 12:59:10 -0700 From: Wesley Cheng To: , CC: , , Wesley Cheng , Subject: [PATCH v5 2/3] usb: dwc3: gadget: Execute gadget stop after halting the controller Date: Thu, 13 Apr 2023 12:57:41 -0700 Message-ID: <20230413195742.11821-3-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230413195742.11821-1-quic_wcheng@quicinc.com> References: <20230413195742.11821-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01a.na.qualcomm.com (10.47.209.196) 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: pC-nOL8uow_Qwsro2S4qURCaJ0MGw6iK X-Proofpoint-GUID: pC-nOL8uow_Qwsro2S4qURCaJ0MGw6iK 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-13_14,2023-04-13_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 impostorscore=0 mlxscore=0 adultscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 mlxlogscore=672 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304130178 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,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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763092928838610900?= X-GMAIL-MSGID: =?utf-8?q?1763092928838610900?= 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 be84c133f0d7..0bb4926933b6 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2548,7 +2548,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); /* @@ -2585,7 +2584,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)