From nobody Tue Sep 29 14:55:06 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3ED61261B70 for ; Thu, 6 Aug 2026 23:40:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786059641; cv=none; b=A7UDMi2wbS8cCaq11F8GaUa0Xt2WIT2kJCdmIFdWeaOZIv3Ib9cGod2nI1SnaGV1DOpdqe1JSOuje65g4zR8IZcvVFQOSSs0MNGf+c4lqrQB7MrZMaIVh+dz9osoGRx3omhPuuhu76Ae2/IXN8G6wjBgWGK3EMiN4q+XdD5WiGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786059641; c=relaxed/simple; bh=JAA81vpRRaPvbn8Qk7Q5/2AalrGhpihpY8nPbY+98GI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=c/fc5JcuFEobF5MME80FTZjM9nfG6g4nCbslzOaaAE6Cyokx02C7V3WcbOoui9BIbgJApTWTk17K8Y4HQ05mDU9ueddN/CEexS0C+FQtjk+HO31BB8zJ8Sf5/8ouTAWcME0b7ETJ2eYfM3ddkLtTQnu5EcUPJOdpSccRIzwKCV0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=izyhhPLs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kLipEE87; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="izyhhPLs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kLipEE87" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 676L8duV3133802 for ; Thu, 6 Aug 2026 23:40:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jWXQckph0JnQMI/BG6hZ4k90rdSFUNrjopRCJIVR11Q=; b=izyhhPLsHcfPViZG z0TxDFnXixDKXjtLH7PQPSvXVuGXM0+Vz6lEVnxz0og3cmYbvioCXE0jW1oKPBcg txjdr9yAzm/tXQxQkNWnkJ/EVH8XqME9nW2B3VhHrQqXgt2PHt3m7oUabeyqHxWs fEPj/Uh9JM2MZ7bfqYEmwFEkdc/a/3x1uq1J2ohuAaNM2IT7fcUYNm0/f3ytYn4s QzowcxqoiXhaiJ6oSRPQGcQSF0iWkL/ZD0kCmn5FfHiWSu3HaTua0q7FQwgXveOA dYokDfOR4nnDVsjlwLDRLagMFcgmxyVD9YmYdWEbuAtjyymsnovZ36gCYL+Xp40k caNimA== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6fscs9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 06 Aug 2026 23:40:39 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-385d2703b64so1384686a91.1 for ; Thu, 06 Aug 2026 16:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786059638; x=1786664438; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=jWXQckph0JnQMI/BG6hZ4k90rdSFUNrjopRCJIVR11Q=; b=kLipEE87pVLzQYOr4dyBdMeYEJLblmkdsvPTTy8BBW2FQQHvQZlfT/h2bsLGV+c1fu wpBWdSVeoVop9ohFjzQEBXPnwwwCU8lG/Dfwf2FEjtw1bA7K892QSbVPHGsSyvOtrbYO 6ysXNkYsoFoJ6dnRr2onB7a0jYM/hNTVmLWonQ1qVumv7d44h9Vt8I5fe13VFvOph8mx /y30+jGUHanR/cMjX7iQnGHJkonp7S+yIqxy0kClxIC08uy81uE7F2xucw5DLHEa+AGS Rec+sYvPpFBdJ/ijAwlLJmxdmsMRgLe5WhcUnVNghG3gqd8sojTnMTloZWNYNLHclO5w 4BQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786059638; x=1786664438; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jWXQckph0JnQMI/BG6hZ4k90rdSFUNrjopRCJIVR11Q=; b=ElDtscwlZWznSAQ68I+Bsz/BGdqZvG8f6O7iyrWmYTboQiszivyCtjvjNaBPVnRDAz VeDrDBV5vOKunuNTqhCW9WOPdCj7jrngeQ148Vs4EwFXqM6l3XL6wv0p6DB20b/Nt/x5 tHSq5rniGnHzdG1ZkRYHmTlS46dcxY+9VvCse67BuvT90LMN27Fb6mIgwlAd5EBPirWj E4GJyt2jRrvfXEuteOco2MaHCxGFj3kW9573z9R5diU5pnS7Qf2ADo355YHGEE85q02O PC8H3Kd2ty/KYeAp/16OyNxGT7CqKXHAkKIDAdNFU/FL1tVp4Y7qafC24Gw5N+CkXTv3 uAqg== X-Forwarded-Encrypted: i=1; AHgh+Rrm3HBF2g+JWn1H6hqll+8uJSlo7a+56pPon/HmXMyHp+2LaWs2kmGDwnqNn9gJCz+QRVV27Ykfj412OnI=@vger.kernel.org X-Gm-Message-State: AOJu0YxuUuGChN0S8YQTUwtjG5pFtIPRoRrrX6SbeXsCk3LuFVtjTQ/0 m8BFa5Y3jaRlunlNodcNvMXjI3sWoADUhJAAJOApWQVAK8rUo6ziHeAsowC8dMtLIfXmKE3gwE1 JQ+Azf8+oP67Vn6L6m033Ft+KVIO1TkQofUqChmuzOgcT0RKIsJllMToxwa/VB3geihs= X-Gm-Gg: AR+sD108rA/Af3bJzXbsWv8ZLkFFlfrGEgE3jF3Q55EgASPtY/+UFV3Q//zNJsgYD/d YMfrzuoBWF91lznAdBcd2/bmIBt7gzsXik7S7xApCMkJMbgRFfZkE3G3JUgKZ/ZnOz5ZUUNThJo 4aIYR8kHm8dnqIw4sECEJlVe5z2xy72itIoQM+91lY+8R0nj51uqj++oRgG8cwcJQ9IcZ6IHJXF cEL5BFv0XJ9KTBtR9oEtZU+cnMw3xJASe/+bQSHII5mYyd2BNSD7DqwAo0E0j8UqSXc2LCVoN1y gzyXJfB3QakCeX7Q6Xa/RLb9QqVRembdhX08rFwDn7B20IAkUOxhx1sKBuGtQShtjzeaRXyoQa3 blTMu/6yjxHA92fOm6/dDl8NnqbW1X1ActM1LvT6s1i2xL6oO52oJ2w== X-Received: by 2002:a17:90b:3fc5:b0:37e:1620:dabc with SMTP id 98e67ed59e1d1-39083780f1emr5705971a91.0.1786059638036; Thu, 06 Aug 2026 16:40:38 -0700 (PDT) X-Received: by 2002:a17:90b:3fc5:b0:37e:1620:dabc with SMTP id 98e67ed59e1d1-39083780f1emr5705929a91.0.1786059637460; Thu, 06 Aug 2026 16:40:37 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb877b4sm154694eec.19.2026.08.06.16.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 16:40:36 -0700 (PDT) From: Elson Serrao To: Thinh.Nguyen@synopsys.com, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH 1/1] usb: dwc3: gadget: add version check for setting ForceRM Date: Thu, 6 Aug 2026 16:40:35 -0700 Message-Id: <20260806234035.1078704-2-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260806234035.1078704-1-elson.serrao@oss.qualcomm.com> References: <20260806234035.1078704-1-elson.serrao@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA2MDE4NSBTYWx0ZWRfX2Sx1C/NEVVL+ 0wYXbQqIbxWSsxF8jye+8Ukvm22fayFQilu6clvKwcncpE4GiSsTUcYzAGQFjXD5uYEhTo1JczU CUknHEs0nj+9o+MwdpGT1p3gm++bwKt1tIn90l/KHWp6zmf4aR9Ty9Jtit4cGNFPmt+lnqtfuqe SXmyEVW+l0dEWp8dYYMPN1GnmJbUIm6pYv9oy4IcN7Ol3f3hMvUOvz9ZNT7BnEeN5Ch/oweoaBQ 6aoGJymm4TTJdvfVcVXGhEusWGdR6wJontbiQ0IO6kk7DmzJJUQag2KTjZRmYlH5TCRz6ioBdAD 7RZJXuE6avDIxpPeHVYU3/8XjGVwLtGifwJn5aS3xNKNNCtiuYPc7jPkgGHhtu34sUNAF/Jax3e bLErcJl+0puQ9bVEeI5GnXm15iITx7qdVnDYNH/ZI+P7sR2jiNxQRHieCfLLZl19uSWhAFoTQ9l u2pNaBQN9n3/Ki//e0A== X-Authority-Analysis: v=2.4 cv=DvhmPm/+ c=1 sm=1 tr=0 ts=6a751b77 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=LUm-8c6oXeeW0rykISsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: gZ2xG2wpvxrSoFk3o9Cw-ODgeklOnNgm X-Proofpoint-GUID: gZ2xG2wpvxrSoFk3o9Cw-ODgeklOnNgm X-Proofpoint-Spam-Info: AW1haW4tMjYwODA2MDE4NSBTYWx0ZWRfX+8r4ImSLVqfN E7S6jCVgjPIyeM3FxK5fssITK2ER1nAnAkViN2/dwPQCgXWKCTfL3bg+7hXRPrAJiHSdgomMKLD S8SDmyfuIXcbZIAdArTmfQeNzDv3Hhc= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-06_03,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 clxscore=1015 spamscore=0 malwarescore=0 suspectscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608060185 The ForceRM bit of the DEPCMD register controls the behavior of the EndTransfer command used to stop an active transfer. For DWC_usb31 controllers prior to version 2.00a, the programming guide specified ForceRM=3D1. Starting with version 2.00a, the programming guide (section 3.2.2.7) specifies ForceRM=3D0 when issuing an EndTransfer command. =C2=A0 With ForceRM=3D1 on DWC_usb31 v2.00a and v2.10a controllers, an aborted transfer through the ep_dequeue path was observed to remain active after EndTransfer completion. A subsequent StartTransfer issued on the same endpoint triggered writes associated with the aborted transfer. This resulted in an SMMU fault because the transfer buffer had already been unmapped during EndTransfer command-completion cleanup. =C2=A0 Using ForceRM=3D0 eliminates the issue and aligns driver behavior with the programming guide requirements for DWC_usb31 2.00a and newer revisions. Add version-based checks to select the appropriate ForceRM setting based on the controller revision. Fixes: 1e43c86d84fb ("usb: dwc3: core: Add DWC31 version 2.00a controller") Cc: stable@vger.kernel.org Signed-off-by: Elson Serrao --- drivers/usb/dwc3/gadget.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index fa0f16ffafef..4b7bcad75d90 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1760,10 +1760,17 @@ static int __dwc3_gadget_get_frame(struct dwc3 *dwc) */ static int __dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force, bo= ol interrupt) { + struct dwc3 *dwc =3D dep->dwc; struct dwc3_gadget_ep_cmd_params params; u32 cmd; int ret; =20 + /* + * Per the DWC_usb31 programming guide (section 3.2.2.7), EndTransfer + * must be issued with ForceRM cleared starting from version 2.00a. + */ + force =3D force && (!DWC3_IP_IS(DWC31) || DWC3_VER_IS_PRIOR(DWC31, 200A)); + cmd =3D DWC3_DEPCMD_ENDTRANSFER; cmd |=3D force ? DWC3_DEPCMD_HIPRI_FORCERM : 0; cmd |=3D interrupt ? DWC3_DEPCMD_CMDIOC : 0; --=20 2.34.1