From nobody Fri Apr 3 09:35:09 2026 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 B179031AA96 for ; Thu, 19 Feb 2026 09:39:27 +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=1771493968; cv=none; b=SXUjVpvaycybNKt3JrJDkKzMWOLrF0r4MQqHvH2bBmAmI4tc48xt7cxfwR/Mq98QvtprfAgvj1XcTnByNBZGk20UEuZWczSTXzYHIwJNPJYtsCs0e1+qB2dCKj74+R2BJqLgV2RdXUvjldGAKJ15Qll3vu9etioGnyv7jL1x6PU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771493968; c=relaxed/simple; bh=97/JSwHInanQ5uVj6uZW+Gqa6diRHttxVXWOH4oEHHg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U/8Qvbut//Zhb2bK/MQpEBnOELz64pkktN8dkMMXGht/7XloG8ltrzOzp5DT1cZW7bkDSclOJHkt/1XwXNYFUW9NjbiAN0OgQbDNVztYkxXIMBRvJeF0nV+QgwinbIElEDo6pdcRCdVQKcg5p9vsqsFteQiw2p/4jPOkNKjPuh8= 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=QsXELX0m; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eRzh7SMV; 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="QsXELX0m"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eRzh7SMV" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61J6DE9o421065 for ; Thu, 19 Feb 2026 09:39:27 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= pdBiIXF+CtpgVdQJL037m1Y+o4vwFkI9Pmjc70ltDag=; b=QsXELX0mB3MJFlLJ tcyvEOHo7LPnnaEFmcv19l6WshoD5R7ICfwHP3JQuZZF9y2tUGjj0dyXbKx8c30F dvzr6QjNHCjyQlPvlF4J2GefuV/907F2Fq5UnHTr8sVKQ/C3809n/4dw36ZjQbWv 2rI16SvKcX18zAISTHrdPQ3EPJLMI9vFQxmdDLd/kiqkczF7HKznoeC3d/KCBcO1 84/aKWp+KQQAjM346DkVo0m1VHuq2qEc7eyP9rmFel85f4zBMZxdESXmFRru3G/F s+E4Xnj9LmA96XqebxDAcjKVYrn7YoZzkn18QuXTMCA56cCkQA9eIK2vIILdkIvD 4AGKVw== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cd76e3y9t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 09:39:27 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c5291b89733so553809a12.0 for ; Thu, 19 Feb 2026 01:39:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771493966; x=1772098766; 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=pdBiIXF+CtpgVdQJL037m1Y+o4vwFkI9Pmjc70ltDag=; b=eRzh7SMVf6QP2uCq5uxoXDvoOgnGcDDrpnRGoNvAkMufM5nZ8JMtrcdVDgD78TmoOT f5yy+BUiNCSfIq2/HWnaT2gkV23Cv7fUid3TkmZ0YLya+KaMbGvt1fm0RkTrIFJ2sJoH iJNC2bIwgmSH3KEj8ENXF95KtoLII+Gt2+S6PUIzBxm0tpMGx1zDACAvemhYZVCOSmeK mWcH60ysRxqYKi9q634Ty7U5gL97zKK0jrQy6iYklsxQp+LjfGTUUCRyNgF16RmECWR6 SRGKODUgIQLGdUCH3VGIsDdrkE3hSSbMBZXoPapzwp09CLdzAYuyhO9L9rorEYbku1rP 2BVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771493966; x=1772098766; 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=pdBiIXF+CtpgVdQJL037m1Y+o4vwFkI9Pmjc70ltDag=; b=JzdnSVIE9db6UGZ2fhwMNiYHvH7CUyBjdXwV80egfs8tkZczN3CVSKZWLBRaoIGvaV /8bRO8q39sj+cyzCOyc1wVDgLtVXDLfUXZ65PgBjvcWIlXF9CqKpG5ICtZWTHXlTXZS3 wfrDk8+qiOqtyVtQ67hXSc0qVJMPHWKU1Yury40+PgXkKwUiu3/tbFj2RU3CBNLeKyi/ kwzPjwZ+MtNaAEfqfA4YxvSjdhbIzYdvu6zE/7Qpw0JHfVkBGTUHPhJNiUeKKSiVerow cq1ahK8TQzB0lcrQ50kFT8lUQGrv8zS2hkzVMS9P0FDigRqwfH4TcWoHf5iKgKoo99MM PsyA== X-Forwarded-Encrypted: i=1; AJvYcCV3k+hhFC9oaPyVWnf0NafB3FT9D6CMDU//3QNbrXT4QAnCK6ShnW35Z1CNBo/dURZFRRtB7E0zwnNsVIM=@vger.kernel.org X-Gm-Message-State: AOJu0YwURnYH+4HYLnfPCxe9CLOaws0eZAqgywofmQlBDvHdTraOgv7L sWZbQk17Wkei3llZHA6fyAoekYHUYG1A1uzT2MPT5IYc42ckf1+/QE4gDVOw5jsC7rxsjb0gmK4 0rRQI4+apV7Ylwo39G0VJXYLNPt3zzkjxEtqe8h9V6zz2SWRTvmOKeMznqqq3tAHiB5A= X-Gm-Gg: AZuq6aJQ8J156RH5jamnyxs+caSekbhiTmq8K8Hm5zvkcXp2RfSLu5MazvXNI91LVkd SncAZDlp55vLuusAS8TfCeYS4pPunnFoY1jqlgWqqHoXCXZtxVGTQdW3jAvpnC1OLQR1N6IB3Yk XQednHkRTd0oNFtz3zDRRoGctYuo25WdgJ99ePoH1TgY4G1I9MZ0BWm5o7XDXZ+T0PGP8Wu4D29 pKEtRCylnUlYA2znTam/z316d4V5Lo4eKB00e84i0RRcB5Vh7qqwAVcJFYEbXW5NF2klGOe80CT AW3XQMgqRBfq+amWyZrpalimkG9O6BcxEdPrLaSjlAFJPuZmFsrWy67Woa+LwFaxKAr/sxLzkRN zW78vNS/T5fxlvrLOxE3jOScgaPi9uQw+qXFBZgAcSjzz7nJe2V8bCzLg4kM= X-Received: by 2002:a05:6a00:aa84:b0:822:6830:5900 with SMTP id d2e1a72fcca58-825274893ecmr4662545b3a.6.1771493966333; Thu, 19 Feb 2026 01:39:26 -0800 (PST) X-Received: by 2002:a05:6a00:aa84:b0:822:6830:5900 with SMTP id d2e1a72fcca58-825274893ecmr4662513b3a.6.1771493965853; Thu, 19 Feb 2026 01:39:25 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-824c6a2ac83sm17710250b3a.12.2026.02.19.01.39.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 01:39:25 -0800 (PST) From: Abhinaba Rakshit Date: Thu, 19 Feb 2026 15:09:13 +0530 Subject: [PATCH v6 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: <20260219-enable-ufs-ice-clock-scaling-v6-1-0c5245117d45@oss.qualcomm.com> References: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> In-Reply-To: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> To: Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni Cc: linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=OKsqHCaB c=1 sm=1 tr=0 ts=6996da4f cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=QeJYPjCb9QSwVUWzf6EA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDA4NyBTYWx0ZWRfX/s0GTeC7jaFL kHgsfj2W01TPcbxbDkQThWjhh0OcnAYqhOzmkE0P0lrmMbBrdRt0RRxoBgaGBpfmIx3LTIeC7/O 8B19sJUJzua8h+lKUFZlCVbb9QS7FEhQ2uoeUpNO1mG7tpQWO6SuzCbweyLsgkmm6MGV1dgABg+ X/eyDhLO/WgizCxd0BJjxKkEy1Wz531Hwmu6BUrpkcHgJPhu/LnfoOU+qafJWxMOFmqhS1/fsR4 F0pesP6qzxDS2/1heY+uiKWuYP/rBIlhD475w3BZmhHEVTZHzfBjkXOvzlhvw1CC6WRfsnz+ewt 7TiJgv1Y0YbDGuVNkz99O7HhgTtq9y6q6aGGaHU/yx/fdppy5RwIbL+KVQFv5y6V93OsFNjolSV 4L/BsAqYR1eS6IXvSy6W/cYG/cpPAIyDEu4b36deIR+2oOysuFVxTbIkR5Mi876xWZv4Qche6J+ AMFLK5CwgVk66y1/Jlg== X-Proofpoint-GUID: lVY8r0hWxDwxJjsfJTJfE4lueLLzVxI9 X-Proofpoint-ORIG-GUID: lVY8r0hWxDwxJjsfJTJfE4lueLLzVxI9 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-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 impostorscore=0 adultscore=0 suspectscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190087 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. ICE clock management was handled by the storage drivers in legacy bindings, so the ICE driver itself had no mechanism for clock scaling. With the introduction of the new standalone ICE device node, clock control must now be performed directly by the ICE driver. Enabling operating-points-v2 allows the driver to describe and manage the frequency and voltage requirements for proper DVFS operation. Acked-by: Rob Herring (Arm) Signed-off-by: Abhinaba Rakshit --- .../bindings/crypto/qcom,inline-crypto-engine.yaml | 26 ++++++++++++++++++= ++++ 1 file changed, 26 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..50bcf3309b9fa0a3f727f010301= 670e5de58366f 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,11 @@ properties: clocks: maxItems: 1 =20 + operating-points-v2: true + + opp-table: + type: object + required: - compatible - reg @@ -46,5 +51,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 Fri Apr 3 09:35:09 2026 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 3249E274FDF for ; Thu, 19 Feb 2026 09:39:33 +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=1771493974; cv=none; b=FNJRd92zSMvSuoqaQVBGcYl68ASq/mCd5T89Rl9eOoC3hXh61gBMF0YWu3Ql6UmZ2SvjiN6JVgNykw2vdgb2GERw40SgPkXFcNSi99dhnb56X5ykzm98ohCUDpWkck3jA6KW2YliZvDCIQSUKYFl7EnKssSpX20y6P7jK7+nWI8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771493974; c=relaxed/simple; bh=kDMzpbJp7/rLqYwKGMaZIVc8pzd6JwXhACdjFivVaJ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RmnR+/AFHDqKP5ZUzbiU2JdET2t9os3FlIJ7GXwfxKqLxsiK1xZaIUPs8DmUBcDI9wWgW8Biw082nMUzWPO4ixIS5oQFBlFYAW2nX7d//w/i7T4m3PrB2+Oe4azcKhngtuExrC5TvflvfVVsakfyhoObaAxB3ldlYlWfFlmY+6g= 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=mL0glHvV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=E5+TjTuE; 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="mL0glHvV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="E5+TjTuE" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61INlYUW1924573 for ; Thu, 19 Feb 2026 09:39:32 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= eJ7q7P1YKR2cir05Q7NmQQK/JszGCthoOd76hIYXMrc=; b=mL0glHvV0k0mRFIw r0v9z3tV6hXob4Q0TdXzmSjOxpg0/4T4q9YgbSd+Zl2EAtmzuUHL712h2KKEQVfA YZxuf+j2hogkvtJ8lnEdgLeCFSXy4C4tH4jfjz71Zt9hmtJ0+9nCjd+XB/5r2kTv cmNYu2NtdycRMpQLXtxHqA7bLLHXB08dplb6sqUwC5ukhaat15JYdMEI2tFSGzxw bZH1H0g9XH3advhmjvOzABlNjhbfdnW03pzN8tE8+GLMVe+i9x4qpU57JuNqbAi5 d53SjF5RBmgcvh59+odb6gCRTjERXrH2rUiH9Ber/IJCjrUKAg3/zoPvqKeX3xSX oz55ZQ== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cdqdg94q9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 09:39:32 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c6e1e748213so488195a12.2 for ; Thu, 19 Feb 2026 01:39:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771493972; x=1772098772; 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=eJ7q7P1YKR2cir05Q7NmQQK/JszGCthoOd76hIYXMrc=; b=E5+TjTuESiuqvHMULuI05yCNM5N53u60NLdB3W82KIctcRd4IFWFUalg+jS+IJGpqq t4K0bTWstqkdFZRt9qlHyb3687SQ7ENbWEhPbPLXTJyQYwgbNsvQKikMGI5Uq+EhfuCv hSOSBvdVb4rbU5wHKCxcJqL/63TOBjxubqyPNBtaQOH/k4MG79QwfSwu0c9cn3kjJyUJ qTXY8TzUaBPjlbCCndzlk4vkA2U8UpousiWjaj3BiJFZJdVMnS2DdLO2JKnTcjZjT9F2 WzMh0AtJLOE8cF9dyrS/cJShk/Q1lp7UvrZXMCUoY6RtZoKRXQyhMUOU4d+xY3SfkThB RkLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771493972; x=1772098772; 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=eJ7q7P1YKR2cir05Q7NmQQK/JszGCthoOd76hIYXMrc=; b=Dcl6Z2X2bc0WkIGutQwvj2+1O3fbl0lu+NEUsrUCN/ZdFNAHyt60jjAEJq74T8ZhuJ T/C5vDnIxnyofvvglDkSv7eVlgxPjupykD8d1nlVHcVydH5x1ufCSsn3ZwICtAiZpX3M lsw80y1h+TAJdhzy0o38J4QpLzytmU0MhM4crLMwCM1hw5WCTvyX44PDJcjB5xAjLGDw IF/JCqKAuDKDsWfW83NWkVF8V5h8uLWsq4lsILCxN5WiIZalJMpDv3+pbAGuP9yiaAu8 GehDvaWUEKnQRGYWeY3blbpZk5JwWC061ysytR+KCX6XHB1n5s39tlCVEcwcSBrzyJ/C EGmw== X-Forwarded-Encrypted: i=1; AJvYcCVPwmcYpT9b51XyifmGPczd8ja6YCDsF9J4OOSg0/IOYHPu/6drPisXaFUnFEoX/d3z9Xe6Yl8rClpgBak=@vger.kernel.org X-Gm-Message-State: AOJu0YyIMshv+tpSKHYJ9Iyfc/3YIA8yXJjN40KSkdfLlBCTIzopGE/v xkdHGsz/tifw5cjrSbth+yKGTpZDA7Z1ej3SKZBOw7WAfBYVlTRYkQiTXN+SdhF8iJj7829K+38 JOZUnc2Cvql1qgVMNlvHwCIE3v/sOXCWiMDJzOooLTWuSieP6Augmg4YRDaT0o+AQf4I= X-Gm-Gg: AZuq6aK3MdsJI9OlHZnAkkNRJgUgusolyAI/B6IC9DqExDgkGkC/f8ZtlRZ/5idfMM8 dhgKRXlmG+T41JzXGt87hWMoWeFtrkouJtenRMdolnKKx2R2NoTdjx1t4j5UCGKaQsjvNryMRkA 6/8kmc7BosIJ9/FV8EuXt6ndfYh71TatOxYFKjb4+ck1gYcp1uko5xN0EeUZoTN92yhSJAm2Iac /LZUHsHJg+YyON5WDfpFKdRvIlWisTMc0PElMCmaRgI9iG3dPdgLyev7Y9xzRI6LvZ8chbfxRZE T9K5mkFCCG+itf6d48B2gNU79BNs4HMkYb3y1qGeLZm76jMjqGO7kL3TBEDLG3rSh7iH2wKSPa9 wwLPO9HGiUVkYio76HvAfoRXQWPlHmKGTB0DsU/ATXt4nuc4OheXzTnL5tCs= X-Received: by 2002:a05:6a00:14cd:b0:81f:4294:6080 with SMTP id d2e1a72fcca58-825274bb7eamr5025432b3a.20.1771493971766; Thu, 19 Feb 2026 01:39:31 -0800 (PST) X-Received: by 2002:a05:6a00:14cd:b0:81f:4294:6080 with SMTP id d2e1a72fcca58-825274bb7eamr5025404b3a.20.1771493971216; Thu, 19 Feb 2026 01:39:31 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-824c6a2ac83sm17710250b3a.12.2026.02.19.01.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 01:39:30 -0800 (PST) From: Abhinaba Rakshit Date: Thu, 19 Feb 2026 15:09:14 +0530 Subject: [PATCH v6 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: <20260219-enable-ufs-ice-clock-scaling-v6-2-0c5245117d45@oss.qualcomm.com> References: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> In-Reply-To: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> To: Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni Cc: linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: gVlR4MAd5CiWyU4uxHPmBNBNLLZpH_G- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDA4NyBTYWx0ZWRfX+O3fkSENdI7C eO/JempgwBBrrSCOKSRHCgp37HNFob3uEbOCd0rZo9X3wFkINSsSlS5V3jvDat9WBHkq1E03/dX q9kXNLQpT2/vbc7urJPt9k3MJPai1UreZGsA/+No9iiAMxcTtaejqJebPJb1G1ldflt72GAwEG7 eP6LI4P8F8xfPIUEpbgiVrQSkv/hS3unlpsJp31ES5DN8eOm6uCin0cAChYY3jyjbU/uQKwgMuq AEuOO2prfk834t0J42jozOqODpLEaZgmR0rcMKAOqQdY2S6oSud+t6xqjCyKFZBsDISCskpTUOD hRdaYt+iarYScYLplt+pMc6A/cmX4+fC/kNM0NMJKDV2qIRJhlbT8U7CZHEn/V5BrPuTOs7zd2V bXkGvQGJKuQzN0t+eA33WQINhVCvfQQZqLnQs2EL0m/jjSfkcu0pZnkQ0RNEQXk4vzKEP4k8ivM PS9jz43c1IFvJtNtJ2g== X-Proofpoint-GUID: gVlR4MAd5CiWyU4uxHPmBNBNLLZpH_G- X-Authority-Analysis: v=2.4 cv=W/M1lBWk c=1 sm=1 tr=0 ts=6996da54 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=mjMY47ajJ_YgJ0Xw87EA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS: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-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190087 Register optional operation-points-v2 table for ICE device during 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. 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. Also, ensure to drop the votes in suspend to prevent power/thermal retention. Subsequently restore the frequency in resume from core_clk_freq which stores the last ICE core clock operating frequency. Signed-off-by: Abhinaba Rakshit --- drivers/soc/qcom/ice.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++= ++-- include/soc/qcom/ice.h | 5 +++ 2 files changed, 90 insertions(+), 3 deletions(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index b203bc685cadd21d6f96eb1799963a13db4b2b72..1372dc4a4a4d0df982ea3a174df= 8779a37ce07c6 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,8 @@ struct qcom_ice { bool use_hwkm; bool hwkm_init_complete; u8 hwkm_version; + unsigned long core_clk_freq; + bool has_opp; }; =20 static bool qcom_ice_check_supported(struct qcom_ice *ice) @@ -310,12 +313,17 @@ int qcom_ice_resume(struct qcom_ice *ice) struct device *dev =3D ice->dev; int err; =20 + /* Restore the ICE core clk freq */ + if (ice->has_opp && ice->core_clk_freq) + dev_pm_opp_set_rate(ice->dev, ice->core_clk_freq); + err =3D clk_prepare_enable(ice->core_clk); if (err) { dev_err(dev, "failed to enable core clock (%d)\n", err); return err; } + qcom_ice_hwkm_init(ice); return qcom_ice_wait_bist_status(ice); } @@ -324,6 +332,11 @@ EXPORT_SYMBOL_GPL(qcom_ice_resume); int qcom_ice_suspend(struct qcom_ice *ice) { clk_disable_unprepare(ice->core_clk); + + /* Drop the clock votes while suspend */ + if (ice->has_opp) + dev_pm_opp_set_rate(ice->dev, 0); + ice->hwkm_init_complete =3D false; =20 return 0; @@ -549,10 +562,59 @@ 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 + * @flags: Rounding policy (ICE_CLOCK_ROUND_*) + * + * Selects an OPP frequency based on @target_freq and the rounding mode in + * @flags, then programs it using dev_pm_opp_set_rate(), including any + * voltage or power-domain transitions handled by the OPP framework. + * Updates ice->core_clk_freq on success. + * + * Return: 0 on success; -EOPNOTSUPP if no OPP table; -EINVAL in-case of + * incorrect flags; or error from dev_pm_opp_set_rate()/OPP lookup. + */ +int qcom_ice_scale_clk(struct qcom_ice *ice, unsigned long target_freq, + unsigned int flags) +{ + unsigned long ice_freq =3D target_freq; + struct dev_pm_opp *opp; + int ret; + + if (!ice->has_opp) + return -EOPNOTSUPP; + + switch (flags) { + case ICE_CLOCK_ROUND_CEIL: + opp =3D dev_pm_opp_find_freq_ceil(ice->dev, &ice_freq); + break; + case ICE_CLOCK_ROUND_FLOOR: + opp =3D dev_pm_opp_find_freq_floor(ice->dev, &ice_freq); + break; + default: + return -EINVAL; + } + + if (IS_ERR(opp)) + return PTR_ERR(opp); + dev_pm_opp_put(opp); + + ret =3D dev_pm_opp_set_rate(ice->dev, ice_freq); + if (!ret) + ice->core_clk_freq =3D ice_freq; + + return ret; +} +EXPORT_SYMBOL_GPL(qcom_ice_scale_clk); + static struct qcom_ice *qcom_ice_create(struct device *dev, - void __iomem *base) + void __iomem *base, + bool is_legacy_binding) { struct qcom_ice *engine; + int err; =20 if (!qcom_scm_is_available()) return ERR_PTR(-EPROBE_DEFER); @@ -584,6 +646,26 @@ 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 (!is_legacy_binding) { + /* 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"); + } + + engine->core_clk_freq =3D clk_get_rate(engine->core_clk); if (!qcom_ice_check_supported(engine)) return ERR_PTR(-EOPNOTSUPP); =20 @@ -628,7 +710,7 @@ static struct qcom_ice *of_qcom_ice_get(struct device *= dev) return ERR_CAST(base); =20 /* create ICE instance using consumer dev */ - return qcom_ice_create(&pdev->dev, base); + return qcom_ice_create(&pdev->dev, base, true); } =20 /* @@ -725,7 +807,7 @@ static int qcom_ice_probe(struct platform_device *pdev) return PTR_ERR(base); } =20 - engine =3D qcom_ice_create(&pdev->dev, base); + engine =3D qcom_ice_create(&pdev->dev, base, false); if (IS_ERR(engine)) return PTR_ERR(engine); =20 diff --git a/include/soc/qcom/ice.h b/include/soc/qcom/ice.h index 4bee553f0a59d86ec6ce20f7c7b4bce28a706415..962454b85ccd994aeeb373729d4= b39a2e0b40069 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, + unsigned int flags); =20 #endif /* __QCOM_ICE_H__ */ --=20 2.34.1 From nobody Fri Apr 3 09:35:09 2026 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 57E882FB965 for ; Thu, 19 Feb 2026 09:39:38 +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=1771493980; cv=none; b=sdA96gype6rB3cWLQk/S76SIiFE/YTaQ22BLHDuPIa/POeWi/CmdZUayRTGYzuAaYERQm+XlHqTZohAkpPGmfk47l0KLH+VQDwtrL0B7/Xa+3sv15OjoD+rX0ci+xN2x325I/Ry/2+fsN3xFUkTsNdy//Qp7IqGjQg1VcApLCR4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771493980; c=relaxed/simple; bh=FdQaUHaIKGi8PX7kvnxnJG19Dokd/6H2sRexB/vQ9cw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZVXqmUFrFjQthmXyZeg7fz7/dJLGxFcU61+GPRUORtNSpnXB8p7Zg4FcIqnLcQD1IoeOKYuZc7f8vrt4OEJ8tBKwG9NEbDFj71ZVUM8/6vyc7Y2WWjmOnRV+pmK7ijC+PburnePUby3u/Gk4mjgiQXasDysJid71q7tOSDXMQfc= 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=HB9PQt1z; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jby3DwdE; 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="HB9PQt1z"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jby3DwdE" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61IKxaWP3133093 for ; Thu, 19 Feb 2026 09:39:38 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= uxM27KGWub9YOvIskp1G0Jb2ZU0MzfIFZFqQpkv+G8E=; b=HB9PQt1zsqp1Sn/y 7SgyPZcRkFPJJOYU0ZdVMprNiMhj9Vt/23BMYurUsB1EGBRsyUDKOaGr/iboqtw5 N8nBcmr15jqffwfYmEmzikhqEal9f/22hrHiU5mmy6FW6MnhqZCCdmJOhRhPkTwx 2pyWN5QM8fDkILKv2jceqWPiwuJqjA4Qgv+a7Zc+o72CERO8wYo/+Vr8PhMclHFl O9ppkqjma23+B8cX0MgVNKWUfI5++C6u0zVCAX4ZCufKGx47AzF8f4HrWP//QWIT 6FziYRxxRIPZKERTLQrJW6K0hisoBnIuiSe+3qErYXWGoxESUT989AsydstP6gWp aBFUcg== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cdmxvsh4a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 09:39:37 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c6e18ade2c2so539184a12.1 for ; Thu, 19 Feb 2026 01:39:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771493977; x=1772098777; 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=uxM27KGWub9YOvIskp1G0Jb2ZU0MzfIFZFqQpkv+G8E=; b=jby3DwdEdRx5GgVpncDNK2Z8qKNMb3PVAbM91u0vcq0KfYxMaa+cqXDYhs8mi/YsIu DfwBKUgPEhnwitIiTIfm/nOjMOQla125QVjPbzZPZlv/pMaPc33VwY/aIkH0RyGee0jo EXE1UCnSDxXU9/nZwIaPB/LjMynOHyyK/dmz7B2BraYNXzVETmBOiWuQMIYwd/pdFo+J uloeEIJBNu+hclKMxqE4oyU+8TdrDeaqWD2n92mNImCB8z3qJDwEnx8Xee4sTskyxNWV saYufVoBp0ydFgabxIJ4dOcTb35XwZvfzTq5qdH6egMpFDlm3J4p4cdhgnJiUhsoBNmH /CFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771493977; x=1772098777; 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=uxM27KGWub9YOvIskp1G0Jb2ZU0MzfIFZFqQpkv+G8E=; b=YdUwgh0LGU/7OOM4zKmUIH/Vp74LKbH1WfP/zb5IGfS8Ox27VX1h5Ed+E7G/Vyc39D rcwCDEN494Z7rUVK1k59TK//+9tMitwejiJjcRnexkMkcYIhPeTvzhHanWhMK5T8ZCqY dy9zxiA7GmjyXsrcth5HRX1M7wGnZQYOt8SMRb9JGhgHuEDlaqS/KhG1lO+1WZot0NMO j9C7aE77X7BMLi8EFDE5M2WuezTaCqQztybT4GDylZgym+Y3bH/XT5UOvCmjqz0J2+yE 4i7Znt4gfVBCkTieitqm0eBAA3FkpJx6zA1CVtakiRsg9p65iABXMfpWKw8d/b+GeGeB loeQ== X-Forwarded-Encrypted: i=1; AJvYcCXv04nwxDm4zqfxVfiH82Chfcfa83bSujVG9dGnpXwsN+3uxR3d14sNHnTwTixffLr+aJR4bj6sOFFELVA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz51cTsCA8HWOVMt4dsgO8geiQKF/pN4L9gVNlj9i/Ixe+Lwue2 Rn1UfExNNWYseMbOQwQC4HpBKNydgYHzigNWm/1NvxlXNsEsMasvOSxk/USglC6OVROl3Zbdrx1 KJLu0VRRwyGrwNRyCfZc3BhH1wV0KaxmTUEHAXG0W95nFkqCwDmKRPB14sQufBMeZQrQ= X-Gm-Gg: AZuq6aLwxGVATu5GeT+FN38ehNA5CXDTT75aiPhVS4bOCjoNT7qkiACm7kYVIHj008G n6F15PCCJl2gWZ5S4L6+tkih9kyXlr2bfrat25n65OkbJh8YiwVwNuAHuiBkNQElCB+H00+HLGB G2tVZOHDcVco4o4zYiEIg/atSVb+jVB/pXaHpCWI3/uO41oNY6xG6WVQ2aRNHtenBlPeDXmOQRR OdOV3dXKPCbtpnYcfv/ibKGYO/vHD7V5Tsr4DTBevmYVqQOs+0Evq+NTOiXk5Wnk5BJHoocpg7k 2m8WPhWroW0+DyxiiocsXS5P0vMhJRBCF3lqenMMHGmBv2I8+gSQVjLCmX16qsQBdAgiMHcjS/g /KR/Nr0CvrgQGz5cesJ06G0Kh/ROQW67wUPCXSSVlIM2SS6kKujYfNTQYg8Y= X-Received: by 2002:a05:6a21:3991:b0:38d:f2a1:a43f with SMTP id adf61e73a8af0-394fc31ce77mr4241397637.42.1771493977069; Thu, 19 Feb 2026 01:39:37 -0800 (PST) X-Received: by 2002:a05:6a21:3991:b0:38d:f2a1:a43f with SMTP id adf61e73a8af0-394fc31ce77mr4241380637.42.1771493976568; Thu, 19 Feb 2026 01:39:36 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-824c6a2ac83sm17710250b3a.12.2026.02.19.01.39.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 01:39:36 -0800 (PST) From: Abhinaba Rakshit Date: Thu, 19 Feb 2026 15:09:15 +0530 Subject: [PATCH v6 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: <20260219-enable-ufs-ice-clock-scaling-v6-3-0c5245117d45@oss.qualcomm.com> References: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> In-Reply-To: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> To: Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni Cc: linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-GUID: IlT6mNSiIZlBUQ73_k8C49P1VEqLA4nv X-Proofpoint-ORIG-GUID: IlT6mNSiIZlBUQ73_k8C49P1VEqLA4nv X-Authority-Analysis: v=2.4 cv=XpX3+FF9 c=1 sm=1 tr=0 ts=6996da59 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=-RVjIYUuWhs3u9hRN0oA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDA4NyBTYWx0ZWRfX4ocZj+xyMKDG 5rG9G6rXy306IyPAHiT04JZaA9uQXiWDN/8nZuj5dR5i6S+JHMBF27L9MScxyoL4xKY2hWi80Db 0YmYt27+tCThUJ5L9UsRm3BzvspL7k1KpbAAxylpl687z9NS0fMjUm/ClGXbESyz00zbazGCwtQ PB7rQooyf02qNys8xvWsjfnqLUf7l1yuvsUSbnP7Fc7pbAyJ5Un6kqew2zNsbxpO3WWH30tptPw tAE4iSKmvB2qckQGlb/1oDZpSN6XFCh4qMzF2HORIo1xLaygLUwQ1rd1N+Nk//mlgTdKdUpOE9c Fl26sEk162RsQG1CZ3ND85hFALXKwCLaaZueoHp3qJ0NR6y8YqXqqMhDIlEUHtqx1z+aqzycir+ 0e2E1U+/EKEDvs52cE4JMn8+pDmkGAS0XWUbIVqf+na4DmETu7OV5k43CAdHUtoRL3J01bhBXXY 2YtQDlXO88JqIL6Z4og== 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-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190087 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. Incase of OPP scaling is not supported by ICE, ensure to not prevent devfreq for UFS, as ICE OPP-table is optional. Acked-by: Manivannan Sadhasivam Signed-off-by: Abhinaba Rakshit --- drivers/ufs/host/ufs-qcom.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 8d119b3223cbdaa3297d2beabced0962a1a847d5..d85640028b567d2084683f237e3= 110c682a08ddb 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, + unsigned int flags) +{ + if (host->hba->caps & UFSHCD_CAP_CRYPTO) + return qcom_ice_scale_clk(host->ice, target_freq, 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, + unsigned int flags) +{ + return 0; +} + #endif =20 static void ufs_qcom_disable_lane_clks(struct ufs_qcom_host *host) @@ -1646,8 +1661,12 @@ 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 ? ICE_CLOCK_ROUND_FLOOR + : ICE_CLOCK_ROUND_CEIL); =20 - if (err) { + if (err && err !=3D -EOPNOTSUPP) { ufshcd_uic_hibern8_exit(hba); return err; } --=20 2.34.1 From nobody Fri Apr 3 09:35:10 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 82A072FB965 for ; Thu, 19 Feb 2026 09:39:44 +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=1771493985; cv=none; b=bUTx3iJI8oETNevn9f7Ve/IpxQuMWKeo9gXJCYRay8JODtwkhTs/E57j/tA4CsNtpEppnb+O/cUawjyUdNKEebN8x1B+4yAvlvUhvqsfSzgEpCVe3zL+sGO/Il+4C9999IylQkv+wvuw2XnZ07lA+g+eyV0HRlgQesdEfj4aggU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771493985; c=relaxed/simple; bh=xwCDUg2ytKuLG2nrJFZ2VDmvgWXuCeD1FC2O5By5Gy0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=utIG6Id96mX2Doq9VHZoN9+3UZj0oR+cw7/QU42FRHthgEKwyb5Q89O+7Ei5WWnYowrqqfwXSoOQdycA8Zxh72wnbhp67/uGN99WNbfZAcN6ZSPaNYKJH2zGzH0ToXSOhnqkHwexb+tK5HeBjWU6eiBLFd9zLjvtf1z7TGt7mPk= 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=p71bUXtS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FjNZ7yKz; 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="p71bUXtS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FjNZ7yKz" 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 61J37Ots4025082 for ; Thu, 19 Feb 2026 09:39:43 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= U4b+6NzjTwARn2L0teShlEhfaZaMG9S6fCU77Gr+qQw=; b=p71bUXtS5RXb4gjl SILk8jyDIeVjt4XEInzLeoZzkb1gz+5sgromrK0WJ7MtmgWP83+/FKRtLBK9+/O4 bbaPl5MbEJrzXKQYYjk9DrN0lrpksWtJW++6VL2qGmM1q5KQ5G+2a+qx8wjBJca8 og3NX0E+4mQ6Kp3Y+j99K7mNjYWAPi7V+jWkEwgDGz6C3BFpT1JZ15+T+M9/iZuq MOnzzRnfJSq595JHzGO6P8cuLnHF8r2GKxsmikJzXBRlOuj/zRGWj6bhwn/SmUUp dvnRIb0HioGBg6n1q8nP5A2G4CRvFOPJrqDWo2hS0+9Y4twKmyxtBzvskHgDQytl xz3X0A== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cd78c3xr9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 09:39:43 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8249cbbf769so352074b3a.2 for ; Thu, 19 Feb 2026 01:39:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771493982; x=1772098782; 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=U4b+6NzjTwARn2L0teShlEhfaZaMG9S6fCU77Gr+qQw=; b=FjNZ7yKzmnuOvIUlIA82fASNg2ZBTunLMnRuQKElYbc43z+qge50AzH1NOaavh3mfR jl+CHvr4aV1cyYS1Xn9f96q0YFFBeZc8yWOXqqVPIZO7hRQSgeDAv0XZFjAtd4OL982M kM8S4F8mGLPvctNcVZ/sOy76R9oQlt9IdL/iN25e/MXGqLrHbpEf9I3ZaONjLSZ4H0Dp DRtkQnlbiV3kcyhMGnUP17X7JL7JttiSsRogdA2UPeKCcYo8IDpOREmUfECUzNIT+Rfn +kTrMMcJJ8D5GE0/cJlWzhQOvEDAndEeAkynnQ3u7QYckmdt+goYVEwo8jH81UGwqj7n sE5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771493982; x=1772098782; 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=U4b+6NzjTwARn2L0teShlEhfaZaMG9S6fCU77Gr+qQw=; b=f88N6dYIF9fb0YMqWg8hY8ptfIagsFT8HB+Dy9/zPcqf1xMl7QH7alq3xZxqdN1YeC fZ8WtEk+1N5TbksC+iCvYpPjxvIut9umqET4Ach9zaJUXILkACd3LtllRyzdudtaCIsn TxA6fLD6qgHN9Du+cPQ+HtJFRb6PEYFuWxj1Tk/ErntAqwkUtlCSxBDeYFNYP0X8PqA6 0fzZOYNrR9zMJQSCCxzB84pjSerK59Fjf1qhMMcLXV3H7g/7AbgxmU6RJG71ZWlCIcMR 35wAhCCiIAKzjl0I1eJ2p/kH6LC2AtNniCDh4Ggt38Udf48dPbRhZpmbgo19QjuJrLRD 3r0g== X-Forwarded-Encrypted: i=1; AJvYcCXhINtBUDeoObPvyx4mQLicGcI/jMTj6fw6uGAyuUj9B6Rv1U7+OW13dcgzobPhzDTk94KOPLfROul8INI=@vger.kernel.org X-Gm-Message-State: AOJu0YwDHzwIw3/sBQT4mMtQCCtUg4nw2SPn9vJjDJdsFZROAdMof5zf OvRQ64+L2Yrt0Npcl7IYs8Ce/clr9luivmiAJ57qrlF/JMb1ki/4NvhGxLp+CoggYaRuOwoQ1MP TcYqJf9QiGZLP+G+2uT9TEjGgA1V5uOvHzT3/PzWYJ5CiTqXHAQUjMNT/VuDNpui1Rc4= X-Gm-Gg: AZuq6aKVLIzJ9YFI51xmYdeFT38okq/6XEwSScCk5R8Gt3k8va9hKhpfianHANZdQgV i86JYZM++4dqmHXuLv5oFGwONsJK8cBlhEBJizJ1AFMjRIAvyREVZ6SXpaBPK1VsDz2ijZByY10 078ZaiRAJaKkptWLkvff+V05eG0P6gDYPn6R8rWZYwyf+uNXL0N+NSL3RtNeTUkmjQq/+uJyrif XNCXV+41V9XkHDGF8XJWm/E4wMswjfsmWl85FRz/DPFIloWD9QXfNvyx7WDCvfup+YMNAS7SS+O aodJGB+gu/qTfJOmsnV4GnX+i6LC8XkYFzBc0II2ifKqXrzfU0oTLUqZZBzwxmUgKZ9YGMZ6p/E 665vYxhHX7wttGuTNtt7XJxoGao7DLtMaudDNcDSo2N8Sa/cYfDbKLh4g7+Q= X-Received: by 2002:a05:6a00:14cd:b0:824:a6d8:3fc0 with SMTP id d2e1a72fcca58-825274bb376mr4199769b3a.25.1771493982398; Thu, 19 Feb 2026 01:39:42 -0800 (PST) X-Received: by 2002:a05:6a00:14cd:b0:824:a6d8:3fc0 with SMTP id d2e1a72fcca58-825274bb376mr4199742b3a.25.1771493981923; Thu, 19 Feb 2026 01:39:41 -0800 (PST) Received: from hu-arakshit-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-824c6a2ac83sm17710250b3a.12.2026.02.19.01.39.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 01:39:41 -0800 (PST) From: Abhinaba Rakshit Date: Thu, 19 Feb 2026 15:09:16 +0530 Subject: [PATCH v6 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: <20260219-enable-ufs-ice-clock-scaling-v6-4-0c5245117d45@oss.qualcomm.com> References: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> In-Reply-To: <20260219-enable-ufs-ice-clock-scaling-v6-0-0c5245117d45@oss.qualcomm.com> To: Herbert Xu , "David S. Miller" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , "James E.J. Bottomley" , "Martin K. Petersen" , Neeraj Soni Cc: linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, Abhinaba Rakshit X-Mailer: b4 0.14.2 X-Proofpoint-GUID: 00Yi6B7LN-m4CQWmrikqxJmU2wN31z8d X-Proofpoint-ORIG-GUID: 00Yi6B7LN-m4CQWmrikqxJmU2wN31z8d X-Authority-Analysis: v=2.4 cv=P5k3RyAu c=1 sm=1 tr=0 ts=6996da5f cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=u1bwIIJuvd_SIhYoViIA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDA4NyBTYWx0ZWRfX+TTiLAjrnE7j gmGEyRBjANVlTrOkxaCL4d6rX5rmUUA557iIMsSJtmX3qpq/KpsOV0p4QdM6UauTNOai6NVTP3g OPp5C520xziwmzPC+B2RRZXQ/y7Sfdms8uVQhbrtIK8rFLangltbdZ6OqSe/tjgUap/fk6MIfhr ar7gImGRkK2N3gNDj6RK1xvUwoQVqD8X9MYol4Cb1CMgNIc3swfEFkGRfkyJ3WNbSfaySp3X01r sIvH0I03J1h8ARt/Hc5N0THQphyY3IcGvV+mMzEf4CCrgBYRUgXU2KLvMNB+hGagFYmKDybs5yn OgykWbaK6/lfpcCrWKWB/URyo1cpITfYsB9lExuyhfsqIkjwZZXq/sQjDFwryXrr99yTsX8gana mSfc4AHnrGDJKvSKf21Sd+csIE/VTmVN2L/8Bslri4VhpID9omBLvBhBV/cjsw5YiS0VwXmm6ao ZdZ4WzDdwKLwZlldZqQ== 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-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190087 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 Reviewed-by: Konrad Dybcio --- drivers/soc/qcom/ice.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index 1372dc4a4a4d0df982ea3a174df8779a37ce07c6..a60a793f9c230e08ebd7cae89a8= 28980e762db27 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -665,6 +665,13 @@ static struct qcom_ice *qcom_ice_create(struct device = *dev, dev_info(dev, "ICE OPP table is not registered\n"); } =20 + if (engine->has_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"); + } + engine->core_clk_freq =3D clk_get_rate(engine->core_clk); if (!qcom_ice_check_supported(engine)) return ERR_PTR(-EOPNOTSUPP); --=20 2.34.1