From nobody Sun Feb 8 23:57:49 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 7586533A705 for ; Wed, 28 Jan 2026 08:46:55 +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=1769590017; cv=none; b=nHPhCGPHZewQzzVD2w358CVPYt5z4fOydnEfcINxwxb2cTYhjFIA5blsbImBoo3/hCAtXICXHbbaFqFhclC8A7Rg0iz+QPv/ZUIthobJlI+HZ556v+NK3CfJx8CzL+Xyc7SfdAy8eR88b53FGPGjctGcTNa6w+bBWgyHOMFxYbA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769590017; c=relaxed/simple; bh=fmj74JXS7b3/5JPwnhbm6Z+ccfNWzkm0zWwsIkb9dMc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JCj427pY7WT0D5rMtqfvmTFaLmwfjldZrIeGlvH5l5p0VhMRnyiINF+RsAd57Y8IP0FWnviqy/dzHVy0L8Ew6dY//7u22jsmXnZ+FUpUNYjj9GJ5IQBg5BBEtie4X569muHIg8AGaugpB85y5qjtLwkBX8+TMt8BozHGTqFjds4= 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=cNxQ5JfG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AdEu4vU8; 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="cNxQ5JfG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AdEu4vU8" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60S7dOAv3713045 for ; Wed, 28 Jan 2026 08:46:54 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= yfXxaOd9plb61s8TF4WmKmUfjZnHFbvBpCT+9AAgBMQ=; b=cNxQ5JfGTdFsguwq a+yQ6WlBN7RzFzTRD0tCyWzIPX4XOzNr2G9Y4oAvQpogqQ89P/TdJSu97PQ1P8zA ZLg3qx6lgKzK50lCuRKoHVnfLgENZbBSlUEzExeR7CX3VZd0Lm7hoXs9PFNvOwbG f+IgP9yqMZadQAXgsk0e5vvrZLLwAU1qirkRF+QpZPI6p8MM1SKf57Yvpb6pY48+ 0SPNhno2fW0eIGnrRbjCVcwPFbj7WMUOOrSkizVgIPYdCYrAjk4dAMlDC/wismbs aih70PHfzdVQnhGGbUVlkRyZyvOo8LD2xXuv4Cg1LR/MfT65+eDTa4SJMqvPGyoE uIpBLA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4by6qbhp51-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 28 Jan 2026 08:46:54 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-29f25e494c2so10873095ad.0 for ; Wed, 28 Jan 2026 00:46:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769590013; x=1770194813; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yfXxaOd9plb61s8TF4WmKmUfjZnHFbvBpCT+9AAgBMQ=; b=AdEu4vU83H6CuuMdwpaVK4nj0g/nkmOA3bDrmNJTOJAJlNZjB5eulSFTbiIjhBdBsV IsKGRiJHx+nbZP3dXgUPtbMNK76Jea08gpXIHvTpUlwx9Oo6F9wwQgpR3xHr57HaElOh KJ0M5p2e31PWKlH9zTRJlKU1pLZgMLwgNnsvSvRLwbfjoqM7QSi6w/3OxGiYpCahd3pS CRD6LiiRJDFKpF5h8AtqAhGJMFOrZqRaj6uANy8zvMKLxasISVFrh6T4XCkHx+FwJ5nb NKbe8WIaGYJvWbhNH2ccaR/NHBui/DQ+qk1YmWnL7GS3kV9fJU8y6p5L6GiuOHbcKMu7 MInQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769590013; x=1770194813; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yfXxaOd9plb61s8TF4WmKmUfjZnHFbvBpCT+9AAgBMQ=; b=f6xGSMU/GdRajPnah+jLcQipsY753jGpPrcoN2N9X61AzsjnksrjPASwXrkhouBWEe BWpMBsJD617/wlrjp5BpiTcsLnBEFcTC7nOopB0uY4JIVEyJEpliFLp2bm/kBFIPFhM6 RsSc+gfCtT9vLOJXP1h3FoyNop2cVpngU/R5i4loKMEeJdhx79YJIDhrv7IwUHcSTPeL icSzbS+WjXtlsjsiL7kS6Lcv44iF/MGPJGLY7GVvyvchRPJeROEPwhw1lM2lw6AUKIzB HB1CVoGAwTIbq1yUMjJPUrj+VrHLgVgVqZnVDFd1kk1rbh/0hhW9HdgUDnv9OjTisOFC 8y8Q== X-Forwarded-Encrypted: i=1; AJvYcCUWm3xo9DnRaCWCG0EVFqAGz76Ccmt/dU/rw/XZ8H4H2xr03IN9OOUmpBhruOOFhwPiS46G0ANp9oBhZe4=@vger.kernel.org X-Gm-Message-State: AOJu0Ywva4f6rp8AQmniF+rdE1h4NXcvQ4AKFxWBu6sxRLaaNM3OibTZ jveSx/AQ0Dm/bS6sHFJhYgfiwfFmA5RRe08uxXy7NEEu05zgOdLKBWbwHG6vb5c3CMzQbzioI/0 uhm6icFRn4Y5gHTglUQL5uG+1U+Gz1tJ6Q5AmSvPhvqH5vBzAO0j/hiQk4gGS23FFJUI= X-Gm-Gg: AZuq6aLyYnXVWMvsipCLZ2mA/5x+F3WhBuSdcncSxEB+cXQhB7dfkJXueKYmDA3Vs6K t92FvxFVr17BGISfHXLLP0+qMOIkD3DkyQzmUQ3SVpQ0u/Ff5h7bvklA0DbgQcn/YJR1/vnnsVm ar8glj9JeSKlBoA1r3Auv1oFm4h7X3GVvQ6s8+xNsAyR+uWKZJ/20GaqIurTmUk28uLjvCObU4k cIUlKTRDwhVOEKeqWGBTlBQb8+fXiUVRi5RqUkxisrtUt29Hd+E8nstKhVSskgKocadYuMpYn5r ZZM0Xvr0b/Br7wnbzf141Oz2lAzVaf4+ubdm32cmT4kqM1EL+atKhx2rAfQtiJHYUleQUHW6WNH vVoHDtvRbakjHxQ8Y5kdKFpt7B4HN0QjYzWCcXZhSRgIKms0= X-Received: by 2002:a17:902:e881:b0:2a7:8486:ef13 with SMTP id d9443c01a7336-2a87134ea8fmr48957345ad.29.1769590013396; Wed, 28 Jan 2026 00:46:53 -0800 (PST) X-Received: by 2002:a17:902:e881:b0:2a7:8486:ef13 with SMTP id d9443c01a7336-2a87134ea8fmr48956775ad.29.1769590012783; Wed, 28 Jan 2026 00:46:52 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a88b4c3b1esm16263075ad.63.2026.01.28.00.46.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 00:46:52 -0800 (PST) From: Abhinaba Rakshit Date: Wed, 28 Jan 2026 14:16:40 +0530 Subject: [PATCH v4 1/4] dt-bindings: crypto: ice: add operating-points-v2 property for QCOM ICE 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: <20260128-enable-ufs-ice-clock-scaling-v4-1-260141e8fce6@oss.qualcomm.com> References: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> In-Reply-To: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni , Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-GUID: EjqDyTWm_h9cPjIy7OSsxyYnHbmgY6O2 X-Authority-Analysis: v=2.4 cv=Z4Dh3XRA c=1 sm=1 tr=0 ts=6979ccfe cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=nchbEs_9QIawOzQC_EQA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: EjqDyTWm_h9cPjIy7OSsxyYnHbmgY6O2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTI4MDA3MCBTYWx0ZWRfXwSAlovFVi0AA ecd9it7nsbGOX/Rbg07BI5mGXW3K0yruB0/Hd3vWmoipjNmauYXuI3cHBmobasZtMLNy+55sBdk XmBY+eyueEQNOJzLG4U2Brti3/wCLyMNsCqtsr8HLUzM+0k46nUr+6KIWVto5D+oovMk9ozpvpK E3yQPQTfiX/RK6RDrOIwEmWfyhWaNcEMH2TGWbZ9Idq93CwnVVcY0wAGLgRT7i+tAohfgLSuvgL VOg8yAV4nvY7u0v529Va25ky5gxeduQpAsEjpGQtuL7aBP/bB8CbIT/7uWzFtizKfsQ0t8KP7Gk j5+cEZ/cTX02mpANNYRrVRKVdPqbEnB6bqrSgzxChUwqysENDseI7325+MxjS4m6JMQExxaQ5zo loJ+4WCPADYAZLtvhoeZ/gNTsVeMdeVoej/+SwIHZX1Kgf8iUfkHi8pnOUSFLduLlmpJiHdVDKP gHYl807k/a/lm9hEbrw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-28_01,2026-01-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601280070 Add support for specifying OPPs for the Qualcomm Inline Crypto Engine by allowing the use of the standard "operating-points-v2" property in the ICE device node. OPP-tabel is kept as an optional property. Signed-off-by: Abhinaba Rakshit --- .../bindings/crypto/qcom,inline-crypto-engine.yaml | 29 ++++++++++++++++++= ++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-en= gine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-eng= ine.yaml index c3408dcf5d2057270a732fe0e6744f4aa6496e06..1e849def1e0078feb45874a4364= 11188d26cf37f 100644 --- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.ya= ml +++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.ya= ml @@ -30,6 +30,14 @@ properties: clocks: maxItems: 1 =20 + operating-points-v2: + description: + Each OPP entry contains the frequency configuration for the ICE devi= ce + clock(s). + + opp-table: + type: object + required: - compatible - reg @@ -46,5 +54,26 @@ examples: "qcom,inline-crypto-engine"; reg =3D <0x01d88000 0x8000>; clocks =3D <&gcc GCC_UFS_PHY_ICE_CORE_CLK>; + + operating-points-v2 =3D <&ice_opp_table>; + + ice_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-100000000 { + opp-hz =3D /bits/ 64 <100000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-201500000 { + opp-hz =3D /bits/ 64 <201500000>; + required-opps =3D <&rpmhpd_opp_svs_l1>; + }; + + opp-403000000 { + opp-hz =3D /bits/ 64 <403000000>; + required-opps =3D <&rpmhpd_opp_nom>; + }; + }; }; ... --=20 2.34.1 From nobody Sun Feb 8 23:57:49 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 A02FA33A008 for ; Wed, 28 Jan 2026 08:47:00 +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=1769590022; cv=none; b=ptAyL6LZHYGPHOqAPoEEsu8tsZZgg2/okaDzs9ztPqRKn2CgflY0obrdVzrdo/otw9YrDZfvTFtKvXf3p9iMmLdx7Pp+fx0y1Fk5Welhb/YgIpULg7iioKeih29j8GYUEB1Cr/SvhSZGiXK9/LMYzWUx8UkMSCuUnhY9CI2EEFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769590022; c=relaxed/simple; bh=hRvuZIYdhDUVRkdEwKu638nsg/O+JUIyZupt/R4wHoc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AiWNntm3wYClHs+WqiQj+ZNujYU5k0PImuLuGXvzoMDmDu7F2bnG3WKheTzK8h7+RbIsVKZs3BVr8aykXezEa9NoXshVDIFT3e0eLcBnKAfiigWDyixwGq4UZL5WqHbbXIV4dgG/BHifGu+IOH4ln2KzQ8059NhWZL2L69kNPUY= 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=R6gPKJWT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TwDcf+oX; 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="R6gPKJWT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TwDcf+oX" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60S6jpu42942944 for ; Wed, 28 Jan 2026 08:46:59 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= VV5bXW4Tit8T6WjDr8B3O4bogH/N0WdtjKHvAWV26dw=; b=R6gPKJWTgoAi0QjA Zx8Zi92qzw5kQ4/NC+8IToez2uTIJpnaoPEs8MX2B5IjvPoArKGOPen8f9Nd3jND 5TLb0vNDLE3X5YfTQE+jekM+lxs/XlIl4c0GpQOlvvDr9VsqDhvQhaAXF92LkfJ0 BdKMC+SVXUbLxBPbKlbZr4H6afgwJUurrKSc+KBq3hXvccrwqIajFXwoNTg4ESEX UUkvZgoDNFO+5By2Lqrpcg5SW4Sq4MruEcp6k9b2bNPDzSlHCPa63qKQwicoLuVk VSk5dmok1PIm+OhVASXHmMS3g2uVP3XOTT0QiiROzEH1/slRaZrp4HUl5kpSmgEN PGgiaw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bydfk0cgc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 28 Jan 2026 08:46:59 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2a0d058fc56so49179665ad.3 for ; Wed, 28 Jan 2026 00:46:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769590018; x=1770194818; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VV5bXW4Tit8T6WjDr8B3O4bogH/N0WdtjKHvAWV26dw=; b=TwDcf+oXxmmEo6w8OAK+yQoUlE2V+XzEJ32/2fPNbr2qTRBq3/9HN/0cLSPIDPWP5Z 3LOxMAcPjt4KtOGgO4rnqPtWWM0Rupro84pPpdQ6Y70X77auDypBRUWdboxgbAF8Twmn 1pvY6kYQT2z7fS6HB7Fn1IyrfiMi2Ftd5ghl3yHjFnZZx9ylgfh9aJHU8J2reaVN2l02 ILdcONE1NkeJDJa549vXU/3UeUUCc7NkPK6u0JeCnDCydzlKWG8Z8Dw7B10skyss9A8t 7T9Z+xWrnxjBenLQ/mPQH+n2yc4IFiOjWPcNOhuI7ELZr5BX5bWLsIC6LSM+KOc5R+1h 9WzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769590018; x=1770194818; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VV5bXW4Tit8T6WjDr8B3O4bogH/N0WdtjKHvAWV26dw=; b=CK8qzVdWHYE/mrR8Wf55IwGd9juLkDUld9GefKYQ9zhfShqKfvP3efGZTbHL3z8fwY 9QdNxmys4Gbr7HPDeb/yNsJeGDqCyta9zgaRFtnTT0BnsOM/7AMU9xkTjtKsqNFY1kWg ahFpzR/A1R3gp8c2Xl7PJ9d7MboUfciAArLtMYDavdO/GaYMPdL9p0PQr6UpHJjZJjoA kpZFxc4853uIWzN/pMeaPZ/VBKWjF+hGVHGbAUMewigtwxelkw8jDq1qZAMcuN3lgrta UlBEifpqZ7EM3QlU1PNgUPFMm0/XjZ5tfF+4TNK+0Ahqc702bOJ19VIf6/+bkdSamLcE CKvA== X-Forwarded-Encrypted: i=1; AJvYcCUYNBmM1csQj7BJucrkLGFOtMTFzd5BokRCw7d9PSJJb82ACE/+GtF9ZULv0jz3qanCBCMaNSIPu/a4xYY=@vger.kernel.org X-Gm-Message-State: AOJu0YxWQSxkhGLSeZHCpmNeuGa5H+uVZquVo89uI9xcu+1d6Yxczi2B pac1mgPT8fCUxEMjJ8OlF/OaZIk/XNCFMZaF76z670WnSj43qpmdpuEmDOt/a6T5/gcKXbedaO2 xuz531amMf238lDP2ExXyqGyR6BIagcL4DCJnYBMJZwqxUF8I9N47aCt+fD9tFgoyLK4= X-Gm-Gg: AZuq6aKYXwihHhR1hIZIiR9dXoZL1KVLEj6fOLFFziKcVGQDHgOPv3K04cmMn9fio4E veYC8Q2wM1SGX0kMGizW/hBj43sVDzBtW84AfPjnICS71sOMpdgxgA3G7yk685kTGlqy86zwt5K //np1ALPzAzKu1OlgYcDOePaqPJfwIJNbAPh8q1mZlEVU6RAJ8TmtsAoUb+mgwlcd2++E/2N9Q+ yl+h5bH6/jlWCkQ41T7lpOk4B0ipIhBCg1cEl5TCFQOgWcJMBIxpIlRU9CPRM9FavpKvLZJ5x7y WGQ4WmxVPyz9RlpS8ZaCfXSpsY4pmeRouRrpdy3lEIHOD/IqdbZd1rWJukVc26/E2izGWB3DIjv +cTZ3SqjFKr0m8MmT8iYCKpGZGqKC4+9o+qBvec/By1xf/Wc= X-Received: by 2002:a17:902:f603:b0:2a2:f0cd:4351 with SMTP id d9443c01a7336-2a870ddebf9mr44086285ad.37.1769590018332; Wed, 28 Jan 2026 00:46:58 -0800 (PST) X-Received: by 2002:a17:902:f603:b0:2a2:f0cd:4351 with SMTP id d9443c01a7336-2a870ddebf9mr44085955ad.37.1769590017710; Wed, 28 Jan 2026 00:46:57 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a88b4c3b1esm16263075ad.63.2026.01.28.00.46.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 00:46:57 -0800 (PST) From: Abhinaba Rakshit Date: Wed, 28 Jan 2026 14:16:41 +0530 Subject: [PATCH v4 2/4] soc: qcom: ice: Add OPP-based clock scaling support for ICE 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: <20260128-enable-ufs-ice-clock-scaling-v4-2-260141e8fce6@oss.qualcomm.com> References: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> In-Reply-To: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni , Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTI4MDA3MCBTYWx0ZWRfX6pUx/6Y0pRTA QacHiEPkqdhPodS0bCb+WZq2EstemWEto/a/mKzlwnJflIjbr6FV/xARwKqOsaLaeR5tubUT8gD aeMOmB3hAoQTtiw50YQ3IrBW761l5DTod3tHGkoMGxAGAIxDRGepsj3Hw6/DSoSOPZ9yWAEFFpK Z5UAgsBT1zyOeiZulKPzYvzqkso5ykSumIj+WTpdqUb/VUnLQ7jPxTtbajmTz7MVFjncVpqvOzJ cPIX7uJr0uyQxcolXo15DD/BBuVp6tSvLs/bIdQGwpmn3ReO0yafWh5QnhiAW8gMpLYRv3jzI7w mSGcJDo+JFXnVshBTHScH+02KYgJ+fEKpROdolWm7YN8k8+/ZfsSbz6GR/dcVXFNnO9F95flXxB OZ9zIMKCnmpyid8D1TsLxJLw2kjqANuz5k4vTnuaLxobwCKyi+yjzXzlO28zkq/CesmMPRowrE8 V0PxcTs2F7dziNkrTCw== X-Authority-Analysis: v=2.4 cv=XfWEDY55 c=1 sm=1 tr=0 ts=6979cd03 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=7Xpflpev5xBMPMNHqgAA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: geOWlgxifks1jvLvjm79NJeT_Cgm6IRL X-Proofpoint-ORIG-GUID: geOWlgxifks1jvLvjm79NJeT_Cgm6IRL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-28_01,2026-01-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 impostorscore=0 phishscore=0 priorityscore=1501 suspectscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601280070 Register optional operation-points-v2 table for ICE device and aquire its minimum and maximum frequency during ICE device probe. Introduce clock scaling API qcom_ice_scale_clk which scale ICE core clock based on the target frequency provided and if a valid OPP-table is registered. Use flags (if provided) to decide on the rounding of the clock freq against OPP-table. Incase no flags are provided use default behaviour (CEIL incase of scale_up and FLOOR incase of ~scale_up). Disable clock scaling if OPP-table is not registered. When an ICE-device specific OPP table is available, use the PM OPP framework to manage frequency scaling and maintain proper power-domain constraints. Signed-off-by: Abhinaba Rakshit --- drivers/soc/qcom/ice.c | 107 +++++++++++++++++++++++++++++++++++++++++++++= ++++ include/soc/qcom/ice.h | 5 +++ 2 files changed, 112 insertions(+) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index b203bc685cadd21d6f96eb1799963a13db4b2b72..90106186c15e644527fdf75a186= a2e8adeb299a3 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -16,6 +16,7 @@ #include #include #include +#include =20 #include =20 @@ -111,6 +112,9 @@ struct qcom_ice { bool use_hwkm; bool hwkm_init_complete; u8 hwkm_version; + unsigned long max_freq; + unsigned long min_freq; + bool has_opp; }; =20 static bool qcom_ice_check_supported(struct qcom_ice *ice) @@ -549,10 +553,73 @@ int qcom_ice_import_key(struct qcom_ice *ice, } EXPORT_SYMBOL_GPL(qcom_ice_import_key); =20 +/** + * qcom_ice_scale_clk() - Scale ICE clock for DVFS-aware operations + * @ice: ICE driver data + * @target_freq: requested frequency in Hz + * @scale_up: If @flags is 0, choose ceil (true) or floor (false) + * @flags: Rounding policy (ICE_CLOCK_ROUND_*); overrides @scale_up + * + * Clamps @target_freq to the OPP range (min/max), selects an OPP per roun= ding + * policy, then applies it via dev_pm_opp_set_rate() (including voltage/PD + * changes). + * + * Return: 0 on success; -EOPNOTSUPP if no OPP table; or error from + * dev_pm_opp_set_rate()/OPP lookup. + */ +int qcom_ice_scale_clk(struct qcom_ice *ice, unsigned long target_freq, + bool scale_up, unsigned int flags) +{ + unsigned long ice_freq =3D target_freq; + struct dev_pm_opp *opp; + + if (!ice->has_opp) + return -EOPNOTSUPP; + + /* Clamp the freq to max if target_freq is beyond supported frequencies */ + if (ice->max_freq && target_freq >=3D ice->max_freq) { + ice_freq =3D ice->max_freq; + goto scale_clock; + } + + /* Clamp the freq to min if target_freq is below supported frequencies */ + if (ice->min_freq && target_freq <=3D ice->min_freq) { + ice_freq =3D ice->min_freq; + goto scale_clock; + } + + switch (flags) { + case ICE_CLOCK_ROUND_CEIL: + opp =3D dev_pm_opp_find_freq_ceil_indexed(ice->dev, &ice_freq, 0); + break; + case ICE_CLOCK_ROUND_FLOOR: + opp =3D dev_pm_opp_find_freq_floor_indexed(ice->dev, &ice_freq, 0); + break; + default: + if (scale_up) + opp =3D dev_pm_opp_find_freq_ceil_indexed(ice->dev, &ice_freq, 0); + else + opp =3D dev_pm_opp_find_freq_floor_indexed(ice->dev, &ice_freq, 0); + break; + } + + if (IS_ERR(opp)) + return -EINVAL; + dev_pm_opp_put(opp); + +scale_clock: + + return dev_pm_opp_set_rate(ice->dev, ice_freq); +} +EXPORT_SYMBOL_GPL(qcom_ice_scale_clk); + static struct qcom_ice *qcom_ice_create(struct device *dev, void __iomem *base) { struct qcom_ice *engine; + struct dev_pm_opp *opp; + int err; + unsigned long rate; =20 if (!qcom_scm_is_available()) return ERR_PTR(-EPROBE_DEFER); @@ -584,6 +651,46 @@ static struct qcom_ice *qcom_ice_create(struct device = *dev, if (IS_ERR(engine->core_clk)) return ERR_CAST(engine->core_clk); =20 + /* Register the OPP table only when ICE is described as a standalone + * device node. Older platforms place ICE inside the storage controller + * node, so they don't need an OPP table here, as they are handled in + * storage controller. + */ + if (of_device_is_compatible(dev->of_node, "qcom,inline-crypto-engine")) { + /* OPP table is optional */ + err =3D devm_pm_opp_of_add_table(dev); + if (err && err !=3D -ENODEV) { + dev_err(dev, "Invalid OPP table in Device tree\n"); + return ERR_PTR(err); + } + engine->has_opp =3D (err =3D=3D 0); + + if (!engine->has_opp) + dev_info(dev, "ICE OPP table is not registered\n"); + } + + if (engine->has_opp) { + /* Find the ICE core clock min frequency */ + rate =3D 0; + opp =3D dev_pm_opp_find_freq_ceil_indexed(dev, &rate, 0); + if (IS_ERR(opp)) { + dev_warn(dev, "Unable to find ICE core clock min freq\n"); + } else { + engine->min_freq =3D rate; + dev_pm_opp_put(opp); + } + + /* Find the ICE core clock max frequency */ + rate =3D ULONG_MAX; + opp =3D dev_pm_opp_find_freq_floor_indexed(dev, &rate, 0); + if (IS_ERR(opp)) { + dev_warn(dev, "Unable to find ICE core clock max freq\n"); + } else { + engine->max_freq =3D rate; + dev_pm_opp_put(opp); + } + } + if (!qcom_ice_check_supported(engine)) return ERR_PTR(-EOPNOTSUPP); =20 diff --git a/include/soc/qcom/ice.h b/include/soc/qcom/ice.h index 4bee553f0a59d86ec6ce20f7c7b4bce28a706415..055edf3a704ff25a608a880cf9b= e35363f8a02d3 100644 --- a/include/soc/qcom/ice.h +++ b/include/soc/qcom/ice.h @@ -9,6 +9,9 @@ #include #include =20 +#define ICE_CLOCK_ROUND_CEIL BIT(1) +#define ICE_CLOCK_ROUND_FLOOR BIT(2) + struct qcom_ice; =20 int qcom_ice_enable(struct qcom_ice *ice); @@ -30,5 +33,7 @@ int qcom_ice_import_key(struct qcom_ice *ice, const u8 *raw_key, size_t raw_key_size, u8 lt_key[BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE]); struct qcom_ice *devm_of_qcom_ice_get(struct device *dev); +int qcom_ice_scale_clk(struct qcom_ice *ice, unsigned long target_freq, + bool scale_up, unsigned int flags); =20 #endif /* __QCOM_ICE_H__ */ --=20 2.34.1 From nobody Sun Feb 8 23:57:49 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 5D11A2E2665 for ; Wed, 28 Jan 2026 08:47:05 +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=1769590026; cv=none; b=Hf047TY3agFqYK+CNR6COLCief8TRRGZRtnHKUodVM2tcGGgMXwb8beukMxvN1pQ4Es5kR6JPRYzCCC66ZsNWbR/2TzwoJykOfxBrpwSrI6oL/bXlZOgFGvOGwww3IyNK07oKlCYMzzzCKzmen0bgtgoyKS34CvzRcsszjLs9xQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769590026; c=relaxed/simple; bh=e3TRfsvo3h7etqIQP7dqbHgjd/404D3QWc/LuJuSsiA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=L9rVDqLEKpqF2ZBl44wO5k54lcLBESFAPunU1A3sTEo7xyEv8QKcB5b/iB+7E/Z/vhHCM5s+CHF4nYqQRQBaV7oPMpuCQJnlByLtrOBNL9W3/rjILEoDx0t78JMlVG6CwPEGQIW8flYwNOp6BOmFV4mcXjmU/2DGlu0zaSc08eE= 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=Nil4uXHc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YgUU5H0W; 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="Nil4uXHc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YgUU5H0W" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60S7UaXf3712967 for ; Wed, 28 Jan 2026 08:47:04 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= +peXoFtKe85BwjRu+lZhP+ZBRPDUzqAfBEqGFaDyxhI=; b=Nil4uXHcabl/djks KozDwTq+1ko1tTPjsRgqoIClkS0+4wyY7M9SnBZSxra1N6cuyTjYqli1AxmVPopz 4FPueqd/79OCjb8lPPOya8iXmvFcVmGrjrYdF97+2qITJnv0BFdKNyimwo9XNVHa pv6GcANdkmHpN2Jaa5o3UGEYkJIsRzORC/Met7oCU0OPLF8PHwa8v5cHp8cU8A5k Us5fwS8rXpIrd56JGhftDBbpIW5DmpYeBjYiadr9hpmFysUTJ+UUHpgDvx7dYeAZ hyJtqJaOkIh4r55zqfMgugukJU3k0mrtLZ/Y9/bl3ZpeTtJdnTnnZ7VkTL2qHWNm TjhWzw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4by6qbhp5s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 28 Jan 2026 08:47:04 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2a79164b686so72650575ad.0 for ; Wed, 28 Jan 2026 00:47:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769590023; x=1770194823; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+peXoFtKe85BwjRu+lZhP+ZBRPDUzqAfBEqGFaDyxhI=; b=YgUU5H0WSQCGurv3Ib+gc77AJZZRa6ih5eTB6Z2YvhcsVVjWyNpbKm5OhpbUfXcYcI w1CdQjUtLKeMa8gEIVj6hvvheOPtA6YBpZdFJXvtzHDgevFvXpEZulPXGkd28wYdN8re 05+3N3rzR91t3VqE0ArOcaB7rutgx50KyvoeJcGCmWxtMOq8NwTfHkhV7X88GEKiXtH/ uZQTSHLcJNTHqCLZq+iS3/LmY0R2wg6Mrt0vwtbVBJ/t/Suwx8CV+Pa5iHuC5BzJybzI JgYc+CXR9G7joiAU2PgN4OsQTOK0gJ9ni9yGI/fB94jpPHNXRVPGnzno+/hXhenBC5ic iTxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769590023; x=1770194823; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+peXoFtKe85BwjRu+lZhP+ZBRPDUzqAfBEqGFaDyxhI=; b=PKMZhhPMfxc0jZ8cBJKesNus57qCv9+cDBkvXjw/ouOKuJsYUktXyLKCnU09S/8LlO dqLNAjm20vBpvdxTSr9skYI8DvcW+Uabd6x+j+3SkA3M5gvLupO7B5vqXBLSw1H+0HCf 0otgH2JrodDLF5Ywbmc9KAbP5uGjtjXFCX5y/NzTjPSUEQgYVD7l7Wg1byh/OMFP3ESL vKdg7sADhdCORK/VcWwrvwfA76gLS+Pi94Mjh9XvtfMXVUFC43qrv3p1FBbQkg99YePd bcObbhx09iSdezszCBYydhEHDDdXqiwjy3AOVcHggNNTEJmhdXaVEeTsuzfsBUyq69OT Kzbw== X-Forwarded-Encrypted: i=1; AJvYcCU7FjBWc1rC4SbQD9j75RA7bXdy+iaCczIN5sqEUrh/KYow33LKlQUzhIiDnBoS+iLPYXehIfH2Yvzphmk=@vger.kernel.org X-Gm-Message-State: AOJu0YxgC4//CtMwQ2ZAShenpB+IEutLBFVMe+W0g8HkhimrWRjlyYaS xi0bA3f4oxw6kNHAb456OLNV4zG49L7LOdytsI3Uw/8z+LsDEkgBkGajQdk8Auhm7qurWuh0gVR Mpld6gRl7V6o2CSZawCJx0rkwRxOUYq2TnLPp4Gj1D52ShOVYY5wkZ/j2VtACoepR8Mw= X-Gm-Gg: AZuq6aJT0QwRjTD7ABYvwk9anAJ7DLjvmcviof27n32efINlWRA8qojxpwH6fRXJ0Bx uRq0+nV0dqGhyFiB5gns2aTyMu85vbXiX8QLG0GPiZDErSrC3dMsPA+kJI0vjY5hASmMYsAvfcH KRLTJUpytK1Ko1BDyl5jD4ExBTjThhDl9o6yVlcgXRKrI36lAjkt1oDS10IDprpxnBvPTIWG/QY 3lc6jY1PfXfgvLU9WPzirVqy/btrgNEm6JLIybKxCO84BvPFk5yCGYlqm3g4rwQK74UI5Fdt2nF A1U9IncG5JBmTFqEDWFJC5Yg4WOm3b4FprUa7s/NXcavuPv60gOxwmJx0t3U8l94oaDcyBUzT0e 0UqDaalWY7CcBQjm6aQ+J/s/Gwb1VRnH+GC7Ig17OHi57KhY= X-Received: by 2002:a17:903:37d0:b0:2a2:d2e8:9f25 with SMTP id d9443c01a7336-2a870db7621mr49442135ad.33.1769590023177; Wed, 28 Jan 2026 00:47:03 -0800 (PST) X-Received: by 2002:a17:903:37d0:b0:2a2:d2e8:9f25 with SMTP id d9443c01a7336-2a870db7621mr49441725ad.33.1769590022629; Wed, 28 Jan 2026 00:47:02 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a88b4c3b1esm16263075ad.63.2026.01.28.00.46.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 00:47:02 -0800 (PST) From: Abhinaba Rakshit Date: Wed, 28 Jan 2026 14:16:42 +0530 Subject: [PATCH v4 3/4] ufs: host: Add ICE clock scaling during UFS clock changes 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: <20260128-enable-ufs-ice-clock-scaling-v4-3-260141e8fce6@oss.qualcomm.com> References: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> In-Reply-To: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni , Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-GUID: -2ycaXZTwyskfdjyKd8SOv__VBEUuC58 X-Authority-Analysis: v=2.4 cv=Z4Dh3XRA c=1 sm=1 tr=0 ts=6979cd08 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=lzHOrk3F_0XHYG_XrgYA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: -2ycaXZTwyskfdjyKd8SOv__VBEUuC58 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTI4MDA3MCBTYWx0ZWRfXz1vPleMTfc6B fXzeV1dbGYPKWPDP299nQj7O0ZSqnCCjfujWKtO324UsUjwsonchenrrTsb8MuwnH4sHyCkncJj uHATNAFZARCP6tkvS6DIkNtjHdDq5GYBdI2NxZ0KkSIoXsQ0cQgTRr8DW1dFGyMWt+sn55LNcy6 Rs7VyL/a0aFInrlbAsBif46yTWwNSVB11ZwYrVkWxQ+Qyov6XWSaScJJFx4vToCEU7kPKNMwSfH brrZ3Ilar0GWFvskenLfpb83UaCiBmgf+mUIVWHm7U38TScJFBi8H+Zukdiy6GJjYoUqvfjkRCH 0xW33xheT5pll41WVcIJQQMZszPdXDViDtyzmt4csE/zF+6/jfSnXW80fOqaLKzyV4Uc+G/MLnb DhZdBZEcy6CZSoL+PRGWtmS5M0ahTdP7gLTDBGcphWgRJH16dcIPZpMPrMb3VMI1/YU1BOd5/EH paxQBNvizJEA3AHpWDQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-28_01,2026-01-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601280070 Implement ICE (Inline Crypto Engine) clock scaling in sync with UFS controller clock scaling. This ensures that the ICE operates at an appropriate frequency when the UFS clocks are scaled up or down, improving performance and maintaining stability for crypto operations. Signed-off-by: Abhinaba Rakshit Acked-by: Manivannan Sadhasivam --- drivers/ufs/host/ufs-qcom.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 8d119b3223cbdaa3297d2beabced0962a1a847d5..00cb9cde760380e7e4213095b9c= 66657a23b13ee 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -305,6 +305,15 @@ static int ufs_qcom_ice_prepare_key(struct blk_crypto_= profile *profile, return qcom_ice_prepare_key(host->ice, lt_key, lt_key_size, eph_key); } =20 +static int ufs_qcom_ice_scale_clk(struct ufs_qcom_host *host, unsigned lon= g target_freq, + bool scale_up, unsigned int flags) +{ + if (host->hba->caps & UFSHCD_CAP_CRYPTO) + return qcom_ice_scale_clk(host->ice, target_freq, scale_up, flags); + + return 0; +} + static const struct blk_crypto_ll_ops ufs_qcom_crypto_ops =3D { .keyslot_program =3D ufs_qcom_ice_keyslot_program, .keyslot_evict =3D ufs_qcom_ice_keyslot_evict, @@ -339,6 +348,12 @@ static void ufs_qcom_config_ice_allocator(struct ufs_q= com_host *host) { } =20 +static int ufs_qcom_ice_scale_clk(struct ufs_qcom_host *host, unsigned lon= g target_freq, + bool scale_up, unsigned int flags) +{ + return 0; +} + #endif =20 static void ufs_qcom_disable_lane_clks(struct ufs_qcom_host *host) @@ -1646,6 +1661,8 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba *= hba, bool scale_up, else err =3D ufs_qcom_clk_scale_down_post_change(hba, target_freq); =20 + if (!err) + err =3D ufs_qcom_ice_scale_clk(host, target_freq, scale_up, 0); =20 if (err) { ufshcd_uic_hibern8_exit(hba); --=20 2.34.1 From nobody Sun Feb 8 23:57:49 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 2891C33A9E0 for ; Wed, 28 Jan 2026 08:47:10 +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=1769590031; cv=none; b=PLgZeGYOB5b7xAELt9wLxZpHJ7yXKZYa6r7l0gQkakXb80n91KO1bTyDMgxNMzRZDcMA9hKK91JPRKLCMWElYc8OlR4bXUgOpzIBDEhh24kHje8/G9PHN1BF7R2J0OM4cBCs5EE+j8But5OpGV3Cx+Ccd4QDepDNdqGcxHjecc8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769590031; c=relaxed/simple; bh=ylcz5FSDejXLscrAzKaX9+cbwcLqyVwvsZ++Oq1bUtE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XNKrblT3dUe5FuNKf2+P/lvM+GbwbSGg+PkN/qGYtFllzABmhUGz8TJ9VLOejVeFw/bwanHbSUR7dF4UhYx7gkpQL0lF2XKOkipDQpH51Yi/v+2ezqqREOiretsyj+7w7T/P6p8L7ObK9/9Pu7Bau/nOLHF6Zr6R/5chuj9eadQ= 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=fkaihsyy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LD3FMtPz; 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="fkaihsyy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LD3FMtPz" 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 60S2oi2p1335293 for ; Wed, 28 Jan 2026 08:47:09 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= MPGRifHCQwcqLRDHjnRCAFVn4y3dD4oL+zZhUOGVvhI=; b=fkaihsyyXn6cSOWg HvofXbDd8+zxLp+NKwQRTAI51shtN1eoItzJpU9+a1Eja53xJButEQu3iAG4PB3M C3+eqsFTy1hMTkHwqDpF88GmEeD+UFEd8Qd9/UuqDxRADwVNOZnqsTcTcKnM6bdV GbOahVf27EFYvJLp7wSd1gqJ35gcCiqi88Khs93lEHnNvXCaTH0r29MVqgcI2ai0 3scenD0ISffObqO0ZPW22s2m/tYFbPtiNKRGKxdjboIY3rsbOhTs1sU9Wn/vxZMR gwfc5lJTQpZxDbr0fzXvdgwMwBZxXaOk9Nob4ciCDu/Sj0ulUjWDCJCe3t0LLapq SF7EqQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4by1dftqam-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 28 Jan 2026 08:47:09 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2a0bae9acd4so46950075ad.3 for ; Wed, 28 Jan 2026 00:47:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769590028; x=1770194828; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MPGRifHCQwcqLRDHjnRCAFVn4y3dD4oL+zZhUOGVvhI=; b=LD3FMtPzabhyrp6UW/o1Vmhp0n1+SuQl3cx/x13Ww4KxzUq/I56yyRbRYLdcUV6GFK 3D5agtmk6LXZ9lCZj8Jnk/0JcmvhlnCu/Q9SXq+GEXas9djQJcm+w1NnCPtFg9rvY2Oz sDLKUasadGN+MTZJoDiT/ZedpV5r4sv1rsz7PA/3xDXcYgPO9S62z4LL6o9OP5Up7ojL iFvwEbVocKqv+W82wNqNk+bEshl4zj6hCY5FcvMSeQ5KcqPmCxkO4i3Ttik4kKToBEn+ s7YXmfcTB/WrY6WOCDiUQMTktxEayuYuvIysP02tjhGJtONvhH2u7Ndd/MaylegoiSXX I+qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769590028; x=1770194828; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MPGRifHCQwcqLRDHjnRCAFVn4y3dD4oL+zZhUOGVvhI=; b=lJJWCJ0blaJnW0cs1pvcE1ECBMvRqh9IT5XPttACKNGOQ6zO+VQ9eKDdiVxbhIS7DB +SKt78qaw6Nvs3Q0E0wdC5JV7CP3bG8mDEVRBA/cIlM9yatZpZrN0gBg+osrkMsv/yhG QQ5qoJ/mNG6V1bohhHapRuo6DVmZOTkNKJXU8OZNjlSwUAZpcZu5BKPDW3Ux5SnQrBxQ xqiTRhcbWuOQwuaBctUklVKeSanl1lPawa06CxcVsc23xl2Rr4tFSwBuTTKHPiI6G2KV tRHAEZ2RFShDx1mWiiHxxXERAhTVNk3oSal26bG4Cch6NA9D517OczU9IEet9WaQhsDo HCNQ== X-Forwarded-Encrypted: i=1; AJvYcCXWw+WIvL6EPnYNpFFQJ1oNpSg3UqrR0Xl7BefmkejVDk/yDEZ+Wo8dpzf9FwrIGC8/gydFt1mucivjjZ0=@vger.kernel.org X-Gm-Message-State: AOJu0YyNWUiDK2YSOALlFZ+m+ty1848YnsrgmM9e+BWwmUmPC7kcn3t3 kd+plTQ1YloBGqHcbfmlS9QuFBOWvpIUqnjirUUTV69E3DiiXBcPzss2rJmjEv0V07ykVlTZVAL RFeGPJT5/omRIfZ9H8Wgj8p4+HvmVaZkMNuufraTgVhqI8S+kq6jWQ0rkScl7dy7yLp0= X-Gm-Gg: AZuq6aJwv3dL3PRU5aN7JOvKPMuk1dkNHx7W/ob8BQOQstAH0HgXdSh2Mjlz46UAl76 TK7P6nJ1/FDRhHtWVmk6N9roqGKBI9wt85Wyza1FDbBAdkSf4qdX7oz2iX8pEOzTdf5j9z6KVl7 INmpG90ChiQ5Gk/iBk1god4hOcQNZAJ1dYoC5mwRfJeK5M2Uy4EgapUbKKcZSBnt/XGxU2ZWDIw HcKw+r7FHLhG0ndLCQvvgj5XyjRMoTpL/xBklDCC2fm7YsS5J9t1o3BiVRWTXtlugQ58wCtqcfp /hlnRYaaxoHubxw12yyQspB3HcmRpsKHZ/siEbzfYBvUFoqCda+N5vnwds8ldIYbi0xEhC4GKg+ DMcWd1zQ4d2agskblBQk2L4rmuqxc9nWpWWfM16a9DnJ8MN8= X-Received: by 2002:a17:903:2f87:b0:2a7:ca82:c198 with SMTP id d9443c01a7336-2a870d2cf70mr42149135ad.6.1769590028052; Wed, 28 Jan 2026 00:47:08 -0800 (PST) X-Received: by 2002:a17:903:2f87:b0:2a7:ca82:c198 with SMTP id d9443c01a7336-2a870d2cf70mr42148815ad.6.1769590027578; Wed, 28 Jan 2026 00:47:07 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a88b4c3b1esm16263075ad.63.2026.01.28.00.47.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 00:47:07 -0800 (PST) From: Abhinaba Rakshit Date: Wed, 28 Jan 2026 14:16:43 +0530 Subject: [PATCH v4 4/4] soc: qcom: ice: Set ICE clk to TURBO on probe 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: <20260128-enable-ufs-ice-clock-scaling-v4-4-260141e8fce6@oss.qualcomm.com> References: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> In-Reply-To: <20260128-enable-ufs-ice-clock-scaling-v4-0-260141e8fce6@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni , Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTI4MDA3MCBTYWx0ZWRfX3l+QTxx5u3HV 8KmNzi+cCNbeNG2OzuhQxAdR4x+d0MW8ee9wp62QXaZ9MWEUzUEoFWRcMDkbILnKomB8M+aHHP5 ktpTgTubLrNwnVnq+g8BOViTn8T6rTJW9sCtdyiYWX1/d46J7lH+VIiDXrZ9qyYd4njvMdwXIDu YDC/tI8byam1J4AEhGXGRvl3jBhOr/P6yk981iBcanHYuXaMG9ehSOgIxEpJB2MBIfwwBGHZVaD OkUfTIo+8E3++9vBfk2bNXnSzcVhbkkZBIEIn0adwTxRiZunQe9OP+DE8UCi7J4hz3bAecUim4W 00BQIXK7/FpnBCHl8mH37dzYBc88tEELffEUsn2bSCuHwA+SpcyaU0Gg+3jhKM0FV9drSu/VuSe ruqhJPvcp/+8aoA/uQMoKNhuKdJXFEUGHvo4BjBuuPLOlaSdSDeOTDQjBeJwDBa2TjbfAbGA+/I dorbad3Gs1ITHf5Evpw== X-Proofpoint-GUID: i4XOHksyOEyXj7M4eOycFJwD9eceQgnY X-Proofpoint-ORIG-GUID: i4XOHksyOEyXj7M4eOycFJwD9eceQgnY X-Authority-Analysis: v=2.4 cv=YeuwJgRf c=1 sm=1 tr=0 ts=6979cd0d cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=u1bwIIJuvd_SIhYoViIA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-28_01,2026-01-27_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 priorityscore=1501 suspectscore=0 phishscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601280070 MMC controller lacks a clock scaling mechanism, unlike the UFS controller. By default, the MMC controller is set to TURBO mode during probe, but the ICE clock remains at XO frequency, leading to read/write performance degradation on eMMC. To address this, set the ICE clock to TURBO during probe to align it with the controller clock. This ensures consistent performance and avoids mismatches between the controller and ICE clock frequencies. For platforms where ICE is represented as a separate device, use the OPP framework to vote for TURBO mode, maintaining proper voltage and power domain constraints. Signed-off-by: Abhinaba Rakshit --- drivers/soc/qcom/ice.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index 90106186c15e644527fdf75a186a2e8adeb299a3..2b0e577fb4c9ed9b746fe70ebcc= b45da9c52b006 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -689,6 +689,11 @@ static struct qcom_ice *qcom_ice_create(struct device = *dev, engine->max_freq =3D rate; dev_pm_opp_put(opp); } + + /* Vote for maximum clock rate for maximum performance */ + err =3D dev_pm_opp_set_rate(dev, INT_MAX); + if (err) + dev_warn(dev, "Failed boosting the ICE clk to TURBO\n"); } =20 if (!qcom_ice_check_supported(engine)) --=20 2.34.1