From nobody Fri Dec 19 21:48:39 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 26CAD27CCC7 for ; Fri, 11 Apr 2025 03:50:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744343432; cv=none; b=K5UTpNrPrukVtTco1y13YFyib0oWvzTjmgKtVJ05nGyweZxayTj9EXL3Oh8Mw9D6FczHJZNIgeV8GZEgk0Z1x7rqcDANRbNm8Xfs6DiG44FAMOLK8lpdPBC36NAgcDUbma/ooKWhs9TaNrW5nisomj3TWn68XpV4PD/l+gqGweM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744343432; c=relaxed/simple; bh=eylNP/MVwmIZO0WiTuDeQRw5pwyO60eLvuDpJ+DFfAM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YPo/qji1ctfKw7rbFLjA95o04xbjGBXXWh4D9coxdVGfZJFMAI57AOpG7ixwvcxieaun4DHDTERi+sfvepw5ouVaomQLu4GZaHi8inJDANKFoSUnsWS+F8ZEx2zFxDM6Um0LzkPYeA0wTD3mI9Qb/yh1GrAhuIkHaDnjTCY7B9U= 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=O56/WXgu; arc=none smtp.client-ip=205.220.168.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="O56/WXgu" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53AG1CJ1029741 for ; Fri, 11 Apr 2025 03:50:28 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= L9awIOHbW/9d99fkXNWdgA+NRLgt9qUgdqf8RZPTDbE=; b=O56/WXguWyDosGOM 0T+hSgKMoQzo0d9n2S6xHpRF+HBBWaOJbLYT5gnBMiCitVyvZ00tnFFJwc3PL4A6 kUsv8RKpsRu/OWxo3FtwTR5dAGDla3XUG3r6yhZZFZrm8Tl4tCOVM6uWJ1qJaas4 cDnilOWrWlPRQazLQnLExUbL0BiPMgJtAwQTQ11LH7gsAXJfA/lb3dOLyH1yTBND rR760LWTmlm1EE+i/SFUdBoD5gV92E9bdzWk8nsT2gx2ALohahXUvS711O5CZInO pPD7Bb3rgKz8AaJ1e1prJIq3qlebMwJOkL0XnIEaQTIHvgnOqi5AOrm2dWMSlrj9 OjNUXA== Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45twbus3ha-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Apr 2025 03:50:28 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-2d0326ad614so431068fac.2 for ; Thu, 10 Apr 2025 20:50:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744343427; x=1744948227; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L9awIOHbW/9d99fkXNWdgA+NRLgt9qUgdqf8RZPTDbE=; b=Doz++63ahERo+qoN5719l2F7Jwjz+dbZYH5pNnu5/TEaacmfHzA1It3UfZXOztHXKJ oIE5HUSG3rDRBiW26IpreNohGAYzkNYU/ky6H07OhOGZP4wc2vYZWQysw9fUiE4SnqdQ UqSR3ygvlHk326R1suoLL5bAfkUX5Nvw7M7vOvsSMJE210XdB2r+c1T/rHHlowOZpolY 1zdKHIeX2ghwVEgkAG+kJjVOTJIrC7t9BqIuqquGPoo8/DSQSIJacJKqiBIGajzqgx4f Xb2o2Ws0CjmQQF9+b/5qE2+9PjIVya5LtCCjhhXxeapiC3h+Qe2iqQmeGwflUP3sJRv1 d5rA== X-Forwarded-Encrypted: i=1; AJvYcCUVPhWlknsU0+XEkwNFhBD4uwkfRtkv3SML+mD9XiGVw3zIpue9VJQ567uGVvyr5hC668y7SkHwgzyDxwQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzM9fMhBMG3HQQNC2oUMl216JMFdmrxtmoybuaUKZ7LU/KytZXG L48h3mlfVaUamPh757I5BqiYpRT9UQ8TknylcxLCyb8279Quz+naiJPJ0MedRAL7Yc4Cd9z5xcg pi8oO4Xf19q2ns37lxFp3owuHwU27WYPdrjY6GUESPP2cKamDy7OQFBPFAsIcBlU= X-Gm-Gg: ASbGnctLaVXrS6Cc8dWapsPuRFXnj4dssqr4WQ+7JcF2RKY8f3x0Aiq1/awVuG1YpXN pOW2AVoZ2VqjfVbQuA2S6akUpivR6ufATSPPp8Fj1pZClhaELfhNu9ZNKXfKS1u2eVDkDQXcc98 tHooEMLwM40o/9KHt010QZq2vuFGu3f2Irwc8Hn0pyqvB+gpKwWdCfAofCsA2eE+V4TzuojRPXa B6+GuvoACN4gy8owHHWKnNy5U7+m5erGN6+jMxbNN0PoKd1/S5uLDpJ7PmrlYa+Yr+1FqNMBRbO Iq7K+CZyCeiezHomlBKIov0XX3JUnj6VWl76eeKdqpMchQWrUA525uQ7U/VZ6r5QYMsgr5LnQBY 0gCfRVTweixM= X-Received: by 2002:a05:6871:6086:b0:29e:5e83:150e with SMTP id 586e51a60fabf-2d0d5f408f3mr726968fac.27.1744343427008; Thu, 10 Apr 2025 20:50:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGds5or6itv0cAXIy25Pi0bWS79kT90catOfm7KwC3Kc36Ct8qPOt/2sNNXS0xVNhRGl+sB4g== X-Received: by 2002:a05:6871:6086:b0:29e:5e83:150e with SMTP id 586e51a60fabf-2d0d5f408f3mr726951fac.27.1744343426717; Thu, 10 Apr 2025 20:50:26 -0700 (PDT) Received: from [192.168.86.65] (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2d0969589basm958677fac.19.2025.04.10.20.50.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 20:50:26 -0700 (PDT) From: Bjorn Andersson Date: Thu, 10 Apr 2025 22:50:15 -0500 Subject: [PATCH v6 4/6] usb: dwc3: core: Don't touch resets and clocks 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 Message-Id: <20250410-dwc3-refactor-v6-4-dc0d1b336135@oss.qualcomm.com> References: <20250410-dwc3-refactor-v6-0-dc0d1b336135@oss.qualcomm.com> In-Reply-To: <20250410-dwc3-refactor-v6-0-dc0d1b336135@oss.qualcomm.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Felipe Balbi , Wesley Cheng , Saravana Kannan , Thinh Nguyen , Philipp Zabel , Bjorn Andersson , Konrad Dybcio , Frank Li Cc: linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Frank Li , Bjorn Andersson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2709; i=bjorn.andersson@oss.qualcomm.com; h=from:subject:message-id; bh=eylNP/MVwmIZO0WiTuDeQRw5pwyO60eLvuDpJ+DFfAM=; b=owEBgwJ8/ZANAwAIAQsfOT8Nma3FAcsmYgBn+JF9cyHT6TOW0ZmSORd1KwgaYZBE5K95tm2F8 ZzbXG1zBqiJAkkEAAEIADMWIQQF3gPMXzXqTwlm1SULHzk/DZmtxQUCZ/iRfRUcYW5kZXJzc29u QGtlcm5lbC5vcmcACgkQCx85Pw2ZrcXUbQ//dPUpUHbtFTycWDJh7RBbuCyuPg8FJz/yUCuOtLs 2SrFBAjgwL0UR2tVxIqFmOL+iUlZyY5920w1hQHxgLqO/eAmspwghsRbefQ01lkGk9kwGwXmwU2 LUBRI9FsK1FqNXntNVSFVRpFsjAH9MQejRQIQHIhwkxWVVqfgjIuDejwNupjlIDkG4n9lG0SAsL nOrtgSG6pXf2UzayQtioDAQoYwmOeXxaGRhAeumY79RvO1zDClLx6xch5442ziCQak4Wunz81/q 5xxBXaxRV3+mwTOS8S+P0gWViw54U07rk8nHdwgo+RzNDyp0h//gmHF42aekt37A6bL7yn6w9O1 qZJGAjf6aIHKKZvB8FsuBbfCMEYMlc2Q02nI/RtcrvgDzH8/1RRpJcxKRfsYrzuZRCakTdHgezn 4BkXtGDXR7iQefIlFU3qLAqHbBFSEyB9F+kHNyEevWojPRu8xnw1awo/+L8HJBrU3oB6pp4KBTc Pl8FyuuP+ntfZU7aH8oBjsAqi1AePOTKAeVO9r0OZEMR8J4yvwASgLCFb+uXaE2pmZaasGA5RA4 A4Rhd4pG1bsnhX7u3LvDrF1Sd19HEtexn76a22ns1euuwKzdkw5cUnqoDQEIIP6YyVOd4OcjXOp BUE+8QJYGTsKHkrX4QmAzqm9+zGEFU6yT/eHR/KjpSww= X-Developer-Key: i=bjorn.andersson@oss.qualcomm.com; a=openpgp; fpr=05DE03CC5F35EA4F0966D5250B1F393F0D99ADC5 X-Proofpoint-GUID: pI-0Wd8x7BS0ULkHvZ5-ePx_SUngrzFp X-Proofpoint-ORIG-GUID: pI-0Wd8x7BS0ULkHvZ5-ePx_SUngrzFp X-Authority-Analysis: v=2.4 cv=dbeA3WXe c=1 sm=1 tr=0 ts=67f89184 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=DaeiM5VmU20ml6RIjrOvYw==:17 a=IkcTkHD0fZMA:10 a=XR8D0OoHHMoA:10 a=8AirrxEcAAAA:8 a=jIQo8A4GAAAA:8 a=EUspDBNiAAAA:8 a=8-AmaxdNuiZsqJm69HAA:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-11_01,2025-04-10_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2504110026 When the core is integrated with glue, it's reasonable to assume that the glue driver will have to touch the IP before/after the core takes the hardware out and into reset. As such the glue must own these resources and be allowed to turn them on/off outside the core's handling. Allow the platform or glue layer to indicate if the core logic for clocks and resets should be skipped to deal with this. Reviewed-by: Frank Li Acked-by: Thinh Nguyen Signed-off-by: Bjorn Andersson --- drivers/usb/dwc3/core.c | 20 +++++++++++--------- drivers/usb/dwc3/glue.h | 3 +++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index b428b6fc3d0a55811e2f75d33d79df4b0c67dcac..77a9848a0ac70fbe563988cecbe= 489130989aadc 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -2198,15 +2198,17 @@ int dwc3_core_probe(const struct dwc3_probe_data *d= ata) if (IS_ERR(dwc->usb_psy)) return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power= supply\n"); =20 - dwc->reset =3D devm_reset_control_array_get_optional_shared(dev); - if (IS_ERR(dwc->reset)) { - ret =3D PTR_ERR(dwc->reset); - goto err_put_psy; - } + if (!data->ignore_clocks_and_resets) { + dwc->reset =3D devm_reset_control_array_get_optional_shared(dev); + if (IS_ERR(dwc->reset)) { + ret =3D PTR_ERR(dwc->reset); + goto err_put_psy; + } =20 - ret =3D dwc3_get_clocks(dwc); - if (ret) - goto err_put_psy; + ret =3D dwc3_get_clocks(dwc); + if (ret) + goto err_put_psy; + } =20 ret =3D reset_control_deassert(dwc->reset); if (ret) @@ -2321,7 +2323,7 @@ EXPORT_SYMBOL_GPL(dwc3_core_probe); =20 static int dwc3_probe(struct platform_device *pdev) { - struct dwc3_probe_data probe_data; + struct dwc3_probe_data probe_data =3D {}; struct resource *res; struct dwc3 *dwc; =20 diff --git a/drivers/usb/dwc3/glue.h b/drivers/usb/dwc3/glue.h index e73cfc466012f07214291abe56454934ab014013..703d40c189565b1e28ae28afb87= 28b78f4cd2fca 100644 --- a/drivers/usb/dwc3/glue.h +++ b/drivers/usb/dwc3/glue.h @@ -13,10 +13,13 @@ * dwc3_probe_data: Initialization parameters passed to dwc3_core_probe() * @dwc: Reference to dwc3 context structure * @res: resource for the DWC3 core mmio region + * @ignore_clocks_and_resets: clocks and resets defined for the device sho= uld + * be ignored by the DWC3 core, as they are managed by the glue */ struct dwc3_probe_data { struct dwc3 *dwc; struct resource *res; + bool ignore_clocks_and_resets; }; =20 int dwc3_core_probe(const struct dwc3_probe_data *data); --=20 2.49.0