From nobody Sun Sep 27 00:44:25 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 4EC3F4C6F1C for ; Thu, 27 Aug 2026 17:59:42 +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=1787853584; cv=none; b=XwWgSzVwX6t4/51EIvLTpAX4JyZb/02FCeOVygW0ws9Y2uiurG2yn1Msri79Daf6ptVLcEDGemglwdq+SDbn40AxqUWtAD2zjfJkOxKyu4H87+bq7Bc1XcTgszGjK+Ra6FzjwDDjlgY7LmblgAmDkvEuoieMYAT87U2UniaKjZI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853584; c=relaxed/simple; bh=GuJ2IiTNAbocaQLtHQ5QQk1lc6LqRCoanYaY2qkKLA8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kG7ViB6UkApP5BSI7jFIxtrqiSSviowtBa09elHFmKDOHjKvsZyLwQ40MpZH2hyAbtN3i+VxdlbCMPTiYw/FVNLybMjOFsH5pkhRakIWMSW1c0P0w4XI/sEechK2EU86x73o9AGnWn/ueAkPvhav7bxoJGw7rVmK8n+N5oFkrVA= 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=bMxcVnYh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ggkCds9D; 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="bMxcVnYh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ggkCds9D" 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 67RHXhRP614701 for ; Thu, 27 Aug 2026 17:59:41 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= d4/+pFI9X3x+m5kaMfH/DHqftGBwKmr5KIRwmuCGmb8=; b=bMxcVnYhfYd5fNEJ rjG+jRjG+rFtOUYWo+LAzlLiR6RK+WHe7LOHYhSaras3OG4qk9JcGO9wSJE5hMFz o9Pi/cBz13QNhoCkGlOwrxBAnLpqnaSHr86X8hbXklfdqPBoJOTYnevWJNCPTEgn G8jXN2Lg66YzXlQOBm5PYnma7vw0zSqzy7s7IFPM5K58NCHX0S8BnxfCh1eUTpqB girVzr+TzWRbg/fDnPb8A0AoYdkk8qiP/FwHM0/Wo3QzgNzGlLmvRbJgaxghydqK cVz3EHEatSVQll7TuHE6YEQJSvLTrdQBkwVMVQbvXr9n2rowYXVveM9RrawiXxnY W3pifA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ganr69b3e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 17:59:41 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38e11baa66eso344889a91.2 for ; Thu, 27 Aug 2026 10:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853580; x=1788458380; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=d4/+pFI9X3x+m5kaMfH/DHqftGBwKmr5KIRwmuCGmb8=; b=ggkCds9DmsUuU69tDrqpGevoA2nMtfpgnzTNPCyeFBVfh7IgglOZK9fYl8P6GS+l/J 3rZ+lsm0zmuFbdKBp37iEhN4Qh/H9mFkXYfpCZcHgSjfoYfBAuReYdufyTePXxNwHTxP i0gHmiYNmjg0zEIK3k918rRjrKczi1oibBIQ0/5xJJNlUEUta9dpIECPoYFpESyNso3X ILqqYeuXZ90bbAq3OzfwDnAH0STgUl6Xl1/RSHoSEqB9b9LBw1G7XE6f9nfxkd6oPMcT uvjZjqqqczETWdwWV7UVzd/K2BkpPDcxfapwq4GPkngXC8/e3+XUG1RXPMJFiq0UFc5e NxjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853580; x=1788458380; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=d4/+pFI9X3x+m5kaMfH/DHqftGBwKmr5KIRwmuCGmb8=; b=rjN9xMYuqh6VHj3zVUpH1FtOCkR6PDNbYjqgPytMngnG+eD793keTUVrQmvvEahH9V mIIBTdCW48s1pz+/1mTAoY3uncdYf9ZYDMD0EthhBI85E/ZQbgNazFcb0g3c2Xb5JUG6 wDsOclyb058elQeLr0Nux1Us8je5MZ4E7dlf4bxsbqo76dhVIGPppVipNEUWd/6aUQY+ bL1lz88NkpbHKcm2Ll1A92qnOGNc01wmuM6y6DshHAkp/p0lMojcUxPMzNAqHS0NYOFM kdRoSGScQ2l6jMUPA2EQLjSVwMI3YjnMbvn4+AeE8XCJ3eKmNa2Web/w0UwFuR9tvEY4 O+7g== X-Forwarded-Encrypted: i=1; AHgh+Rr7pm0OIC1pj7ikTWqWoO53hFcGClpWdX3vJ0nG7Fhw+s+Ka3pa/jTydjEZ+GcgPtrRBJT6oYHoHqHkEzc=@vger.kernel.org X-Gm-Message-State: AFuF++kHLdk37csZ6IkG721NV5Y+ivVu+QXvHUxzYrZcr3nQ1sjG90tF rgNw4nRuXV9/2ajXZl7l6+C8F30Y1jMK4ewkyrSD2AldBEuZPBcs+mwG7ick4g05zXhjA6b5Jv4 JEL0wODd9efM19VvAINpVwwnhkOR18NgWux9xqjPdE8iF4g1u7OnG7+vaLQkASO2IGwM= X-Gm-Gg: AR+sD11Z+h3v4a+14x6oPTimjShNNuCpyZDPFSApNUOmvDXYNdHMGJKtZc26nifvnZm 56bC0ZH053/kQcpGKKRqk8tAodDax/vpajmqwEzF79IPUmrWKjsWawgEaTG97MQ0SqSiGahHKPk t9tsbuiS+MXEEZ70Fqqqaxi1kLxLAWQvtkVXhaCUOliBWYvu2/HqA0aBo67HaBSE2bHL/lfePDu NM2s902cZ6/E9o3SWnw/5w1FAZwNVOhOPGnggWKaWB3AEReMjXoTHF7k92qtu+pi9gqyAAyXlb5 WUsx10/4dAJZsnFpjjw9h/MCAAlaPMEh6tJnW5gdivbRa0xVr8+1O1cgIeMW57/g/4xTG3BuWln NKkrOcIz/GJ/mnS7XfvX2GWA7LwspANX0aw== X-Received: by 2002:a17:90a:dfcc:b0:380:f389:447b with SMTP id 98e67ed59e1d1-396d0fd3a24mr1900896a91.11.1787853580261; Thu, 27 Aug 2026 10:59:40 -0700 (PDT) X-Received: by 2002:a17:90a:dfcc:b0:380:f389:447b with SMTP id 98e67ed59e1d1-396d0fd3a24mr1900802a91.11.1787853579715; Thu, 27 Aug 2026 10:59:39 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.10.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 10:59:39 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:18 +0530 Subject: [PATCH v2 1/9] pmdomain: arm: Fix -EINVAL from scmi_pd_set_perf_state() on state 0 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-1-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari , Abel Vesa X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=1380; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=GuJ2IiTNAbocaQLtHQ5QQk1lc6LqRCoanYaY2qkKLA8=; b=uHr3/INLh9B6c1OSy+HkMvDYKMGogOjcbm6b+zN0jVzPu8xWpULGobB+nh9HS0n4stNuFMgOJ VBVVR+W8kmCB6yTAsu4IqWK8QP4Z1T4YLzVn1c50MlZWoGiWls+ogiQ X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfXyme3G573hDEF Dff27oXuYk2uqVcW8BqFyLtVn1z5QKV0u9Csp4PaYqYDjtbZXPG7+2YqdKN/1iYlvF1ag1hhUNa nbrK9DLr6HiO4qF4E1gEdC9YYAZSpHgdKeAYpkC/1PQ1amaK7cVFjDWlDt6Fu8mgwHlM4smiC4i I84WwkcI7arPVSCqjtwy/eI6102eP0SzNIkilpvuDEyvLQ5rDY4YEdS+gcletE25eAPx/fvzBJ/ I+6Qk35cj6xIt8DS/1x9C/N3KS7mn7/HzMZ7dcdAOG+x3ggUpgxWu4rQV9C4LvLNrAhPlzRV4MS YNn//8PCwygrUzXROgiBvhSK95jkWJ+KJAng6nzIUq1gwjHU3+TuUEWU7DjZzXoFVuETqftgjtv fSKmcXUuOGZInJ0n9ppr7pehRR733IW6xTh7goQd5DhHscpmDSBDmVTTqxvT7+VTUk5Pof12D2O 49zEygw8OJr5QnCdS6A== X-Authority-Analysis: v=2.4 cv=d5DFDxjE c=1 sm=1 tr=0 ts=6a907b0d cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=sIx0R2CjXXeYvnaWutoA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: pr_CSLBuNpAu8_OZlQYseNCh2ZxMc1ol X-Proofpoint-ORIG-GUID: pr_CSLBuNpAu8_OZlQYseNCh2ZxMc1ol X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX8ZOOJoLFvufu 8dREYuEZI5hQF9OPJDhBr5LFL1X0N3xt3VaOGYMlEIa64yoM2qF0d+dLdUYao+oC7/uLozAU3BJ VfkAdtL/Jf0Qj61Pd95UrqsTQMc03nI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 Currently, scmi_pd_set_perf_state() treats a performance state of 0 as invalid and returns -EINVAL. As a result, devices attached to SCMI performance domains can report failures when relinquishing their performance vote. The OPP framework use performance state 0 to indicate that no performance vote is required. For example, dev_pm_opp_set_rate(dev, 0) is commonly used (by firmware or linux) when a device is runtime suspended. A zero performance state does not require any SCMI performance request to be sent. Treat it as a no-op and return success instead of reporting an error. Reviewed-by: Abel Vesa Reviewed-by: Mukesh Savaliya Signed-off-by: Praveen Talari --- drivers/pmdomain/arm/scmi_perf_domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pmdomain/arm/scmi_perf_domain.c b/drivers/pmdomain/arm= /scmi_perf_domain.c index 3693423459c9..e390f902a444 100644 --- a/drivers/pmdomain/arm/scmi_perf_domain.c +++ b/drivers/pmdomain/arm/scmi_perf_domain.c @@ -33,7 +33,7 @@ scmi_pd_set_perf_state(struct generic_pm_domain *genpd, u= nsigned int state) return 0; =20 if (!state) - return -EINVAL; + return 0; =20 ret =3D pd->perf_ops->level_set(pd->ph, pd->domain_id, state, false); if (ret) --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 E9CBD38A71F for ; Thu, 27 Aug 2026 17:59:48 +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=1787853590; cv=none; b=sdsrGYrJp0xebTIYPT4tLqEIZxGm2F4vJ2Qq9h5sryXVZsSVl7ykxNrs2H30D9FMQv/UHnGHNFN8elLhhpSoA+76LTfXroK7P2UXCVUKA8wolSs81gRiOVgzFIESs7Q0GkuoqfwwKhs1gwLo26+04enLEc6ekSDDqAosEFUkgHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853590; c=relaxed/simple; bh=AdwimWmojgUMjxZge10azUFM2Iq4ZF78vSGW37hlcsY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j2JqJQoj0+NwV9MqfjPQ3NP4VNHoTJElk8oz7BaIdqeWObqYbPK0LoJMSmwliJNjLamXRYFDsQ5i+dNiC2mMFNiECac0pT4fOnBbA04DfeRCgDo32VMqofxUlPJxstdpvilAWu1Irhgi4qvtA1MzuoNgjas5hSkk2j/zD2Nxigk= 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=XpmrNDUr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=U4HjNyu8; 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="XpmrNDUr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="U4HjNyu8" 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 67RHXcIZ873684 for ; Thu, 27 Aug 2026 17:59:48 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= iqu+QcbOtbM8Rimddb61w33ixiI0vj6whMYuEwbL0po=; b=XpmrNDUrTP07n6Om zBk1IGwXBnu3yb6XzL2oGK7gsqtUKCn6hDgZyCHHa7L5FhB/hQj3Nv1jb7iQrrzc 1sA39PPj2avc4zoUd1+AqtAYOghG335Xec0aadP6pH5ylM8IGqxx0bk0RBuHe/Mq NF0fQaRf8nWdCrOLWyg26rbTv8CuOBxtiZdh6oYgIFPt59lqWaywE0xV3iZHd3gN 4rBZGHoAKI15tzYYyKgx2xn/UrNbV9pI8hrrENjTdKkKlMkXS17y8oPLCKY5Uyn1 rRQ3sYupp9dbf2YMGE/xvwJNkYee1Turn3TvMRFnAc4w4i0aFS2qk7W1BnZ6PInG YwQBDA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4garn0gj81-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 17:59:47 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38e7ff7b375so329125a91.1 for ; Thu, 27 Aug 2026 10:59:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853587; x=1788458387; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iqu+QcbOtbM8Rimddb61w33ixiI0vj6whMYuEwbL0po=; b=U4HjNyu8rrZVc3jMyBDxEn2O0251uvAUIHfJ9WifGgtbUTfTcQ5xM8Uf9cA5FsSvPh PNnkpmtRWKpvlBKgSsAILSrzchzdeSx6lAMiaV+fPaE89l/eE2h+vC65rk740rItWQSB yl8DiRjB16WKzCbCLIDLn2NxaIpRjKCK4l7oFB3t7M3uS/RF4A2C2QU7B+2CnDYuXsN8 4JqhA+XLbKO80gqqHeNfiGwLJ3KqFC/Cy2HPrnhjlJY9e9anC8PVkGJI9YLYGOwegoAU I3qIRNk+YpCLkGQKadxXLj9Nf2cOvmS4bn2suYNOMa6hYxHr1jt58v8Vyr9VylpHS0Mh azAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853587; x=1788458387; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iqu+QcbOtbM8Rimddb61w33ixiI0vj6whMYuEwbL0po=; b=d/pujfIhABxUoJIwFEnTlkN2vAkzVPOyTxpCx6toJrfrQZRm4Hc/zzQDgzxNXB2FI5 awndscnlYE1wlLyw67U096faHImSmHfjL8B7U4vidIp+94U6xX56yeq4JWe5ZAAdn1tN sPjpO2qYhuGp4QE2eT1DWD9m64kwRtbQ1x9hKupIS3bvW392ldshhrnT8ievLj/Bu0++ qy9CwyoHkZElwEkyklWlYxK0Mx7a5MFItIVXsLbAVdgjKlXf3A2XytNW5TTZbdi0IBtv GeiKVH+IvsF7x/uf+G9cARaEBrkvfC9qSiAnRVq5tD8Er1WQ4O4H0zarSmGYyzFTcKII 938A== X-Forwarded-Encrypted: i=1; AHgh+RqSYSYA89ejAIWhq/U4Rpq5iuZlEMbvk3rNtmfyaAor7b5K9EonebMz+zoG1V7pC4vNntETOsaG0YwsKw4=@vger.kernel.org X-Gm-Message-State: AFuF++nP6Vbiza6ZqAn4zITX3cnedLM0c6TXY+R/wTkqv7CvcfoImG4Y j5wNVB5bGQxuL1NAVxGdE1ihArRYkiA5mBeg1OqapodvPNHlgps4nJQgEvqVPGeFU1zMuV2ngN9 GzGZDvZP2hTdXcuP63RI3Ve4kANpiwAbQBU7FToIlIdYlVkjK/kFtriorNULaPR3eSRQ= X-Gm-Gg: AR+sD12zuWp717d2c0R5s0HRPYC4BlYXXHB1yQiOBmfHZjNHEtLFLZxWp/XlEVhkz8e tkN+ZKTpdrK2vUxIj32KAWEpC2/aKX//OLs/Ppid2ASyS1j3mRsVKWiybC5JV4M6XG/gh7E+scV LXiywNvCCardeaz6HLIMIZckdVAeJD8s3eJgr9eXsEtNACjoY7VweU44kJ/SJoTSpYbCB/VlRNK 6y7PU0XCPNvwbkRWThCpjFJjNz3VcRQqFT2oWtsduxmU/2sFcY7nLMGQNuixsRmbpictQzHFfoS IVwBLcAo8IR6+ZPhwvBzuNj1wnxgYDC/aqOOtQNVBufQ4DNdqCIGfk7tRNTDfTCVWFKfgpL/rlL xOI2RyVrkCgCzL2Y6D37HhihU4NmsW4VJUA== X-Received: by 2002:a17:90b:380b:b0:380:f85c:94b4 with SMTP id 98e67ed59e1d1-396d0f2391cmr1736511a91.7.1787853586862; Thu, 27 Aug 2026 10:59:46 -0700 (PDT) X-Received: by 2002:a17:90b:380b:b0:380:f85c:94b4 with SMTP id 98e67ed59e1d1-396d0f2391cmr1736384a91.7.1787853586253; Thu, 27 Aug 2026 10:59:46 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.10.59.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 10:59:45 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:19 +0530 Subject: [PATCH v2 2/9] soc: qcom: geni-se: Populate clk_perf_tbl with SE source clock frequencies from perf OPP table 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-2-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=3349; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=AdwimWmojgUMjxZge10azUFM2Iq4ZF78vSGW37hlcsY=; b=xDUNaR1wqkINGiOInqWE2jn/v+OQHLBDBZ+Fh1roliGz9vW+grwzgz+g46Wp/y3TBYYP/MmbW uAIRm9TQvphA1WS8qhacIvgyjp2JvGqodTTkFyYqG2IdHsmXGD2eSj6 X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX9kC5AHvLXMec +3P5+oRebKEyJ6JlgW9wbukrPJb9vW2BF/jtAJrTc2ynwa+rP1+7YAocbIN+T89XJle9bnxu3yK AsGsaahhLsULSUVuSoL0y2AqmL2DUyd8CLl8Cr7Aw7L0a+r0f3cHLekdNHW/uRLMPT2tILvaU2A phLg846aWKM3O5nfquJCZ1EL3UOUXGyjcsywsKAIGhyiW6LrT/kS8WvjjAD7Bl8kpsQTFUoIvy3 bByggyv9akw8f5IbNKg1s5LMC1SinKSd1EjVhCUhSxWi12K5eJWyLl8qSsJ0dYNXmBPIJwR+BWe bzePXQKGGrC4SZKig+fjfzhiqANO2udbws3V02vIiytUi2SwOLEBVJHS/nswbPHa/vcQobx5HC8 KlF8u7Tnf3XutDJfBbPySgS5xVTT1XvZR3jlNOIfRDv1urUJ0XZ6h3x37gRvPp6j+m/FOgnJEBO X7SVTSAr20tpO7aJFeA== X-Proofpoint-GUID: dqC7YHGID-810sekh_p7zxj2tlgu9AJd X-Authority-Analysis: v=2.4 cv=C+3ZDwP+ c=1 sm=1 tr=0 ts=6a907b13 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=CVJBOM8IPza3kUTEG1YA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-ORIG-GUID: dqC7YHGID-810sekh_p7zxj2tlgu9AJd X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX9HG51/hIHmuB kXI5A5K0ygIXBE5pGB5lLucA5ZQ4mM+6m2KP/GJsb2UcnCIywCos4ZA8ZyOlYAL3mPlRYoyLpfv dVD5TB2W4ycNMeq7ZzpU0fUQLWWmLbI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 Currently, on the SA8255P platform, protocol drivers attached via geni_se_domain_attach() treat each OPP on the perf domain as directly corresponding to a protocol value such as a baudrate or requested frequency, and simply request that OPP via geni_se_set_perf_level()/geni_se_set_perf_opp(). This does not allow computing a source clock and divider combination for a protocol requested frequency, unlike the Linux clock managed path which derives this from se->clk_perf_tbl via geni_se_clk_freq_match(), and then applies the matched source clock frequency with dev_pm_opp_set_rate(). Change this by treating the OPP table exposed on the perf domain device as representing the actual SE HW supported source clock frequencies, the same role clk_perf_tbl plays for the Linux clock managed path. Populate se->clk_perf_tbl and se->num_clk_levels by iterating over this OPP table in geni_se_domain_attach(), so that protocol drivers on the firmware managed (SA8255P) path can also use geni_se_clk_freq_match() to pick the closest supported source clock frequency and calculate the required divider, and apply it with dev_pm_opp_set_rate() the same way as it is done for the Linux clock managed path, instead of relying on a direct frequency/baudrate-to- perf-level mapping. Signed-off-by: Praveen Talari --- drivers/soc/qcom/qcom-geni-se.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-s= e.c index 873bfbd6b2b7..447b9cc6babf 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -1155,7 +1155,8 @@ EXPORT_SYMBOL_GPL(geni_se_set_perf_opp); * * This function attaches the power domains ("power" and "perf") required * in the SCMI auto-VM environment to the GENI Serial Engine device. It - * initializes se->pd_list with the attached domains. + * initializes se->pd_list with the attached domains, and populates + * se->clk_perf_tbl from the OPP table of the "perf" domain device. * * Return: 0 on success, or a negative error code on failure. */ @@ -1166,7 +1167,12 @@ int geni_se_domain_attach(struct geni_se *se) .pd_names =3D (const char*[]) { "power", "perf" }, .num_pd_names =3D 2, }; + struct device *perf_dev; + struct dev_pm_opp *opp; + unsigned int level; + int num_opps; int ret; + int i; =20 ret =3D devm_pm_domain_attach_list(se->dev, &pd_data, &se->pd_list); @@ -1175,6 +1181,31 @@ int geni_se_domain_attach(struct geni_se *se) else if (ret < 0) return ret; =20 + perf_dev =3D se->pd_list->pd_devs[DOMAIN_IDX_PERF]; + + num_opps =3D dev_pm_opp_get_opp_count(perf_dev); + if (num_opps < 0) + return num_opps; + if (num_opps =3D=3D 0) + return -ENODEV; + + se->clk_perf_tbl =3D devm_kcalloc(se->dev, num_opps, + sizeof(*se->clk_perf_tbl), + GFP_KERNEL); + if (!se->clk_perf_tbl) + return -ENOMEM; + + for (i =3D 0, level =3D 0; i < num_opps; i++, level++) { + opp =3D dev_pm_opp_find_level_ceil(perf_dev, &level); + if (IS_ERR(opp)) + return PTR_ERR(opp); + + se->clk_perf_tbl[i] =3D level; + dev_pm_opp_put(opp); + } + se->num_clk_levels =3D num_opps; + se->has_opp =3D true; + return 0; } EXPORT_SYMBOL_GPL(geni_se_domain_attach); --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 05E154C6EFC for ; Thu, 27 Aug 2026 17:59: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=1787853598; cv=none; b=JKGbiEZggRbIkmAZeJfUZwl7GQPEYdzbnu/jFW2fSkBoZwpeUsRRQZH48EW5o9Fd0eW+GoMMMByvcZOCXiH+P5EcmmnO9mCo3+iJ8Y8hK2BnBCFFi3qrnjCBrqmbTbbACWb9pVseSNW0kiw4P/hZZT/q9L9Fs8aBXflS/5Fsdew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853598; c=relaxed/simple; bh=zHylj+HT+odz16Na0xE7+fHmSFeJfsDp+dwqk6ejkcI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YloetZW4rj6VC6zMqYANpKkm8nvdxseAw4dpznODlshAgbqGPV/9xYSWmmHjJv/2s+7SfjX7tl/VQkOl94m+y1A9IiUpSYuCe9bMK7yhacnzYbdmNDYk9mI/pl3Xbzc9gWMl/N1iHbhc9uKklO6mHNnp820jk74X5oyEM5f/AGU= 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=UAtJCKHa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gYPKTG2B; 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="UAtJCKHa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gYPKTG2B" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67RHYZpU314810 for ; Thu, 27 Aug 2026 17:59: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= 8DOW3HbgGxcyvtK23icwnWTlfQLNr+HRAry9Zia2hG8=; b=UAtJCKHa6Dlsrkq8 uWFqMs46OBjwNq6g9FnkPBpJl488R5DLKm++C0kjfwVtzxuNlxpaafcQ4VoaRrlS mA2d9H2gUf5Nmmvii1ZPx00Q/uDTBX/7plimlKWFBSD7hRZT0RnBRARzsGxx+NeA 3phMoH8Eo5ANlDVCTuPAFi3giUTGE1hC0mrwT/OSb2+tu8QV1ZxJWroKmhd3nKNt hcgpn8nvFAp7iFiPCe2Aa2+PiwVCP4iygoaE5H+a/7pmD6AQg/HaCpxWl/hG4yr+ E1r76PtkevP0+otO/ir6wSkkN/5nTBK98XFezGZXcF/pqh+uv5uJnuBWozQgDyJw MzSJnw== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gak561x2s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 17:59:54 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-395543dc382so271142a91.0 for ; Thu, 27 Aug 2026 10:59:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853593; x=1788458393; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=8DOW3HbgGxcyvtK23icwnWTlfQLNr+HRAry9Zia2hG8=; b=gYPKTG2BSfWYTYDnvU8qj8pi60Y8IMubHFG4SJ9g1l0wkBhoh0+GKvGdLcr/C2/AKb m06hkbOzoRnZmqa9Z1pU5RVgjod475PbW50ehV+pi4cp3lGIlf4U1UmbwMBTR/He6eYm i+uXjUWp1AtgHmlWHgy1XInMK6myIyKWLL6Mt3BbMsG0oS/3dgvdNGX/PtB7R+mxKe/1 nfFFZ7YJ7p0zTePIOWESjcUn2zHFpJiSryzhoZlD4o/VJPkb8GO5tDt4m+E4hJ0XQWkl SZm85RYypNQCBsAPav7Znrcj8z/JQNokh6xYAcqrADTbiGO5WEoqu76+k3h3WsrvzQiN xrTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853593; x=1788458393; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8DOW3HbgGxcyvtK23icwnWTlfQLNr+HRAry9Zia2hG8=; b=mTKi4o7kuWPTme37VFGQn6UIz7BzaFO2y/So5nohWvZ6QgSdZbTZ+dcNRKBpBMBAJC SMCAFFSCIqQlWnorVlx9Lg0VD+/izkRiRi9kozpSGHHrIPvPt0K5tcRECZd/kJVzwLcU qu0Rxvr1fQyK2E+92o5MMdcYV57S7utEO9+0hv4gEYw4HH2vzAkygGlaC5SwlaNNK21z NnkH9uu8URK4RUc8OCAO2DeKE0UQGbjUpV4d0VHKge2XA0NfKOkNPpoYJdecWNCsfKRf SBEilcEyRQI/HlCZQh1NvX7M7OerAysTTmxIPzevJ7sffkz+rQswlNA01EZamVGRg83X KYlg== X-Forwarded-Encrypted: i=1; AHgh+Rr5KbaGlZoLktRR/TKSifZhTyivB1gRjnMVx08dm6kJnfqJFS/JbZPUNL7yrOR4m0opEcCtlxckTLhcOIc=@vger.kernel.org X-Gm-Message-State: AFuF++ks9FaKDgTf6+V+lXGCMgSnfokm+Dag1tOfsNqXe06H7yU+3Tu3 1Q8qn6itswuRfkWSME+2UDTWn+aVaJeiDwYfATD9yJ7j3mLpg4w3ZzH8jvsow6bxSeD0bDGaRrd uon55NRBA1mVJLsy0lGrodI8bE4w6Rjxik6gxkLpDSPcjGFSDO4wMxrINDFvAQ8azdok= X-Gm-Gg: AR+sD10+Cjx42eJU24wAIyygqNyZmKGrN2hVKTZDTEKTEOatOawclfn7hpca9RaFCTm HkbSLLBA8HgsV97RTTaXOTdEQTzh44x71h7TTwXyTndJtX6J6KX1HuiAREkX4irib2wsOIXdm03 IvjTcAxx9OawxD+cZTL4HWKKLB5aQzyTWkEIzLm4ajNuueedQGckNkZZKtm8xsfs7ckhW88EpvD fYkRTrea0UwO/woAbu0D/aeTZAA2UGpeWDq/TKvD4Cia2X6bjiZiapFXkA7PO+jXW6yQBzjHKur +ivyBZFk1hqFnQEaoQP39SwvxwJcGe7dYfWMMQO12dBZ9GpXuBycOysomb5t1ly8+OW/yEmH/hJ qfVahXesXEbvdOMaZPPSSucuSwzDENdpQwA== X-Received: by 2002:a17:90b:2d82:b0:393:194d:5366 with SMTP id 98e67ed59e1d1-396d0f6f8bfmr1853250a91.10.1787853593456; Thu, 27 Aug 2026 10:59:53 -0700 (PDT) X-Received: by 2002:a17:90b:2d82:b0:393:194d:5366 with SMTP id 98e67ed59e1d1-396d0f6f8bfmr1853160a91.10.1787853592820; Thu, 27 Aug 2026 10:59:52 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.10.59.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 10:59:52 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:20 +0530 Subject: [PATCH v2 3/9] soc: qcom: geni-se: Add helper to set SE clock rate via OPP 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-3-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=2911; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=zHylj+HT+odz16Na0xE7+fHmSFeJfsDp+dwqk6ejkcI=; b=w7NHm9ePtmCqH/3jPw8yr1znOlCotzsen4mcclKd4jYwSgqnAUCwLzywWanOrvCDjLjvkCNPx uioUNiPLBtcBegA9YNEWcnR0C9gm3bYAbB7KKI7C4dmnOjgoYDu3r1+ X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX4ISUZGQ5vcDl ZNxHeg2jBhkr+h4DoWZkos9sGdmKex0Y4EHF3+t5vY4yv/xOHa684OfVmf2ls8uLS9gYI+RTAeL ZXGON6f43D7LLfhUk8w7NT3/xZ6aSOo= X-Proofpoint-ORIG-GUID: lJ-Iu5P-ttCGxFp4ReQ400XxWBClt6Op X-Proofpoint-GUID: lJ-Iu5P-ttCGxFp4ReQ400XxWBClt6Op X-Authority-Analysis: v=2.4 cv=G+Ms1dk5 c=1 sm=1 tr=0 ts=6a907b1a cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=590DCAjQX6RtSPayVpcA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX3e+b1KGaQR/U +pMKqyqfKu2JSlLCX9BSWVt0xtYgvih1QuI9s8P1saPzqe9vF+K0gV0ouRiQIVHwQ8RBrQI/wlv I+Nk2fdU+vHJ7LTBR/Y9ygmQY5Dz2KCmpJE4khJ/6mZfzV+dIEdh521iA7B0ZVKu0re/HM7xTPN mIQiSbMQPCZjoU8R9xXaZqWIFvzJwtP87ZYM/t/BOzLkUenJmymrzVgKJxtRAC8kIyciFoHdNhB UVIE6STRkZtoAlNFlBKE+37/borYYrbcpopLfGfqDSqgi4UFGZi6wewdOiyh1mRfzuPcWyIZNW4 p1yvTM85niQyxDYOStYDL3Pa5eyuEoPbDp7WKpAaKZbUGF2ROWbmF/7CkYzqUnZdagekW9czsJ2 +bC6UAF28Yz2vV7J75hyZywvCDO2lybnlKTYeYdwj6jn07aESDIVtWz7HRQdlJHSULsukLQ45mt RDQ51hRHesQTUcXrlEg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 clxscore=1015 bulkscore=0 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 GENI protocol drivers need a common way to scale the SE source clock through the OPP framework. However, the device that owns the OPP table differs depending on how the SE resources are managed. For Linux clock managed platforms, the OPP table is associated with the SE device, whereas on firmware-managed platforms it is associated with the performance power-domain device. This requires protocol drivers to be aware of the underlying resource management model when requesting frequency changes. Introduce geni_se_set_rate(), a common helper that abstracts this difference and applies the requested frequency through the appropriate device. The helper automatically selects the performance-domain device when power domains are attached and falls back to the SE device otherwise. Acked-by: Mukesh Kumar Savaliya Signed-off-by: Praveen Talari --- drivers/soc/qcom/qcom-geni-se.c | 22 ++++++++++++++++++++++ include/linux/soc/qcom/geni-se.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-s= e.c index 447b9cc6babf..04f58a6f26ff 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -1149,6 +1149,28 @@ int geni_se_set_perf_opp(struct geni_se *se, unsigne= d long clk_freq) } EXPORT_SYMBOL_GPL(geni_se_set_perf_opp); =20 +/** + * geni_se_set_rate() - Set the SE source clock rate via the OPP framework. + * @se: Pointer to the struct geni_se instance. + * @freq: The source clock frequency to set. + * + * Applies the given frequency through dev_pm_opp_set_rate(), targeting the + * perf domain device when the SE has power domains attached (firmware + * managed path), or se->dev otherwise (Linux clock managed path). + * + * Return: 0 on success, or a negative error code on failure. + */ +int geni_se_set_rate(struct geni_se *se, unsigned long freq) +{ + struct device *perf_dev =3D se->dev; + + if (se->pd_list && se->pd_list->pd_devs[DOMAIN_IDX_PERF]) + perf_dev =3D se->pd_list->pd_devs[DOMAIN_IDX_PERF]; + + return se->has_opp ? dev_pm_opp_set_rate(perf_dev, freq) : 0; +} +EXPORT_SYMBOL_GPL(geni_se_set_rate); + /** * geni_se_domain_attach() - Attach power domains to a GENI SE device. * @se: Pointer to the geni_se structure representing the GENI SE device. diff --git a/include/linux/soc/qcom/geni-se.h b/include/linux/soc/qcom/geni= -se.h index 29a53bbc0dd4..3b411cba9339 100644 --- a/include/linux/soc/qcom/geni-se.h +++ b/include/linux/soc/qcom/geni-se.h @@ -596,5 +596,7 @@ int geni_se_domain_attach(struct geni_se *se); int geni_se_set_perf_level(struct geni_se *se, unsigned long level); =20 int geni_se_set_perf_opp(struct geni_se *se, unsigned long clk_freq); + +int geni_se_set_rate(struct geni_se *se, unsigned long freq); #endif #endif --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 5ABB04C77BF for ; Thu, 27 Aug 2026 18:00:03 +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=1787853607; cv=none; b=ZyNfCIOSaEQAPwfIblK4PPjWcSMgTYWMp2Wu+ZbXduQ4ITMqniHzTxLK0J7BMBVO5BQw1GnhvPz8VMwwIU3I6T0oUA2uT6j8MtM6xuJgYEIxgPrrHXHrH0Op0ztQ5LHkCVZWAOFfzdrqNcHcJ3F0ocZYW6d32jarF+qT2ZB+m3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853607; c=relaxed/simple; bh=uYtf63EywauTBDLjs8uD8MJtcy5tP9+vyAB+Hmv6QH8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pKbS8qS83KivLVQKwynayAaoKxNBTfO7mfwxxgJWhdlrkw56tC0DHRDQxnPXwAX7wUjm6wj9VJO7PiXkvzc49jp8akoPk/saE0Q83vOHxGThP461Y9FkKke4Zx6UpinhlHAj+bUabPanmNQnsIy1d3RPwy5+A5hzLslNyNDJ0DM= 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=I+Y80KM5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=O9nEls7A; 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="I+Y80KM5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="O9nEls7A" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67RHY4Yq4178782 for ; Thu, 27 Aug 2026 18:00:01 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= nYbKd+3GajDDr0jOEfWiaOSW2NcTlBpxJd3GfO91+J4=; b=I+Y80KM51q9Yk2+a j4H/8pee737PHnA3HwQtTl5QnWER3ePY9GPJX8rYztgUV4jZuiM1lGNdmJVKnETf SyXWlrQFiQETA7yFO8fsTd3V7kA+KBlc6wNhE1O27MWafeUT0WV/RB6AtPhJ8po/ 8q3I9byjRspDJKIwxpqYn0lgGppFENeSo0P3fMOH2AbYWXIhXcXomPuCgem01Uqd IvUcx02zBKzCLsJkkjh4fNNISTR23DxSvAVL1YGy+DzJUcRYQQnN7KcxHPXE0nC3 bIo85WSQ6Ui9xKj8TEb2b02hiwIVsnwrD+Ppx0yJuSrnVupxG2yKGIsghD2/YEDH 0HG4/w== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gaphw14tw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:01 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38f5ac7354dso316499a91.1 for ; Thu, 27 Aug 2026 11:00:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853600; x=1788458400; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=nYbKd+3GajDDr0jOEfWiaOSW2NcTlBpxJd3GfO91+J4=; b=O9nEls7AGMfzmJqYa8CfKB/XkBQaGlkqhT7s3xHxiUs6qtBolpq5V1gUboTvPF3wfa GxOPF+iAVigDYebzIwmyAjNgf5qm3opcAFciSABtUu8d0HBmzvaA5qBWi4oV4bVMnE88 Hk4tdEGu9jbIvEb+awm5K/cAOBprHeMViGmseG0ws1vqw5ypWOwF8TiEVE9wRaNMcVfI 1+Jannx7ynzEcebPxZmGj/t71bCBj5iEyMRJlHfNdufE6WhrMRHauhRIjvOb4L5x6c0p s9HIaCNL/9GWxIjfafjwnXYEiufujZmG2mXF87Ze8y3xhk3O8BshzGOR5egAraH01NL2 SMUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853600; x=1788458400; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=nYbKd+3GajDDr0jOEfWiaOSW2NcTlBpxJd3GfO91+J4=; b=IbRNnafLTftBYjYlOrw1K1XUgGkKK4j1h0ZOoHSbhvSO6hkxeNw+vx3K87Ajlo3Thy 6BEJfaDZtm9bSQnDynyr4AQGGxPsjHciIzNCCEKQZ+caBxqGI3CyMxk0puJd77P68Nwb 59/yognvm0m506dcw+qLp9cCEDKIRH2/NLCTzoki3LZZxKwnZHepmPhxrzDmvMRpm96+ ccJmyFn0beThZ0FTqidZnh00dRkBdnR4xnfTS0ePenxmBWElY8tFiS8EYXHVjijnjVOQ XDUoxBcyGMajfCQCAuZu7j/MUgo5MIkM2Ghgq6oX+mVHQ/sdu2jTbyHKQtECXwuBmgrM Bnsw== X-Forwarded-Encrypted: i=1; AHgh+RoVWS/25aHKdym6Scd5Bq9tQTABHPTn+h+aLaMuRzwqpLvkgEP9kEOVh9HsBM0HzMyWZCVrLBL3c+yuk0k=@vger.kernel.org X-Gm-Message-State: AFuF++nbpk3/VTG2LrNYX7bE6hPNOUYXvj4IrNFM0Ybjf0CpmP5a4v/C pbfzkpr6PwQrL9/HCoYj4wIfA5Vj0EUHztToLWQZLuitmk+azdj3aaZ02OK7ROnr5O50pkEXnOc giOmy/YB1Q5fQKjzOL6AY7X6ZKdpr1I7V2jQdWCViCHi4o8NWFR97v6/bmd7p3+oe7l4= X-Gm-Gg: AR+sD123TH3ZeUmY7SIutL2Q+IDbJMilruAMy/aQf//vrwJUUGdtOSFMiBhuirXQnUC WkT3R/yOeCNJKBbcjBsgaxlbP5VyXbyFDfYPLsl6BeieKxrrHCfLrkpHEigQYMy56+M4lDEiEqr rI/3xL1IM8fsyEkxK6lQvtJZMWM46hlOMN8bQXllfORkKAwoob0zlUZ9Wt86UVCZaQ9DZkv6gze tsXIuwtEYL610On7wgDR0XfOE6cYa78J6CHo/zIURzm0J0YEXNyccSUXi8FecnjJlaJWnh1u58z yojKaHzYDJWM/lwuqsJXps3yMl3eLVkzjvlmamiw8KrNQUT+CUlNF88IbzvVSMCj56IoKHweHd6 BtqJ5i5OLKdpqeqh7dKX4xNaoAzmV0Fx3Tw== X-Received: by 2002:a17:90b:1a8c:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-396d0c0ffb5mr1795743a91.0.1787853600034; Thu, 27 Aug 2026 11:00:00 -0700 (PDT) X-Received: by 2002:a17:90b:1a8c:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-396d0c0ffb5mr1795630a91.0.1787853599347; Thu, 27 Aug 2026 10:59:59 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.10.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 10:59:59 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:21 +0530 Subject: [PATCH v2 4/9] soc: qcom: geni-se: Remove OPP rate reset from resource deactivation 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-4-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=1510; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=uYtf63EywauTBDLjs8uD8MJtcy5tP9+vyAB+Hmv6QH8=; b=yuYXtqOch5+JdddKssp+xdvmeKhNyCOF/ql/3aH+DBJ9+vZFPKVWOtB1ybZnNXz8rc2iiV8As /p7XPI4/WDQAeVMiG8xWSUmsqYQmJgFqpH9oY3Y4fem4xv9ACoLmXqJ X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-GUID: jdtuJMU-_EhKHVfbKaTy4uNTyt0vZKXh X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX/oICIczkti97 +hBeTvMFPcUaLmEFMRTEEJHJ98cG+LO4YVzWA2RB2KpNaG9Nq6aifN5hrx0lvm630e3NBqeZl90 6CTp5ZsKqeXw5G/DeUY719wnNbNC3Qk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX+q3IKdk2UuyK 45XFL4BkOyvoF6pHdEgamFQv5yJ0QJtU8PObEtjk3sz1H5gopwqLKiYo0WekxJLfo/1mrs8USZS 8OlrhwLArpFi3U/HCiCK/Adh3tflaxeH5hNJpdGN7QU/5qi9aMdDumn2UsIOrQgYLrt6XjQ8IM4 NrfM7Y5TOvHT/I5oDm7zjf5dQxjxudY2QnpCASHytfpQB3rRHamarEJTlpM5ci/0KQUi+8pLGBa j3Z8L2qX7ARJ1xDO/nySlHicH/biTzYyie/watp33sqy1qQ9hg3SFwxGbeY7CSZgHUkYqgtvrQ7 MzaEFFJ1emEmeB98yA7r3GJ/LormR5am7P3/BuhfXIDYVaAqIeoNz6sMOKic7dP2n0PSmHfBGvJ 56w724evdYcwXnLeKlJBSsqytD9M4eRrAjPau36aWDugW8feHpYExh+BgH16qVrPr1eH/8RFxQm Y1ByB1C+hvGnMQH6kmw== X-Proofpoint-ORIG-GUID: jdtuJMU-_EhKHVfbKaTy4uNTyt0vZKXh X-Authority-Analysis: v=2.4 cv=E8b9Y6dl c=1 sm=1 tr=0 ts=6a907b21 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=dehDsB7WAhqrwfXEkZwA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 Remove the dev_pm_opp_set_rate(se->dev, 0) call from geni_se_resources_deactivate(). OPP resource management should be controlled by the consumer driver. Additionally, clocks are already disabled by geni_se_clks_off(), making the OPP rate reset unnecessary during resource deactivation. Signed-off-by: Praveen Talari --- drivers/soc/qcom/qcom-geni-se.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-s= e.c index 04f58a6f26ff..d4f0544d73c4 100644 --- a/drivers/soc/qcom/qcom-geni-se.c +++ b/drivers/soc/qcom/qcom-geni-se.c @@ -1039,8 +1039,8 @@ EXPORT_SYMBOL_GPL(geni_icc_disable); * geni_se_resources_deactivate() - Deactivate GENI SE device resources * @se: Pointer to the geni_se structure * - * Deactivates device resources for power saving: OPP rate to 0, pin contr= ol - * to sleep state, turns off clocks, and disables interconnect. Skips ACPI= devices. + * Deactivates device resources for power saving: pin control to sleep + * state, turns off clocks, and disables interconnect. Skips ACPI devices. * * Return: 0 on success, negative error code on failure */ @@ -1051,9 +1051,6 @@ int geni_se_resources_deactivate(struct geni_se *se) if (has_acpi_companion(se->dev)) return 0; =20 - if (se->has_opp) - dev_pm_opp_set_rate(se->dev, 0); - ret =3D pinctrl_pm_select_sleep_state(se->dev); if (ret) return ret; --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 27FE54B04BA for ; Thu, 27 Aug 2026 18:00:07 +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=1787853609; cv=none; b=eGD3GIreCQjX18wx/lQjcz1CKcSxXwugUYpkt9n89TEg2ZSiL2kA5HCxQPKy5l8xJ+FTSAaHJfxkkIq4SP2kh+3/UYDjvtpy8/O6/8X/ZkLdWlbxjq5q82M7hV8PCUMACF3eFTVo+7h8AVedGIIKmk9bP9XCemwpTNtwDaou+18= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853609; c=relaxed/simple; bh=FBDw/I4Waykly4lZ3CvAqJEIzFElSwmZ1beXrSZKiUM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cLKSXKjm4BrjFAcyNX6XYCaB+jcA3HVqZDpt86DUtN2mAMl7HEUkGeUCRnjFJAkRsi+IRfS8RGpVhmbip11Ky1ONv+UwvyV1+K4he1c8Q901aW5w0JOoLwTiLP9cqJoTDHjByBLuXKT41n/uvFV7cdooJxkD7huFA8gX0/aQ5P0= 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=pDQZIbHU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Rh6ePSkG; 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="pDQZIbHU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Rh6ePSkG" 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 67RHXlEN4084312 for ; Thu, 27 Aug 2026 18:00:07 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= B6gN3x8PKcm1sNfVijcrAK0H0yaVuRFKl9zQpFpFyM8=; b=pDQZIbHUJFoO0VNv eLtmuCZWX+K91CL/bR6Gxfkg3W00iGUL+3F8bY4OQ9aMJ+dUJfSXaPAcAOUo70x8 kfJaERqNh+dD5h44D1P1of3B76gFEEc+xyfid8SvrUtgEKnK234l55y/URLtWOXU hz1MLLB08hffmyiExn94SkWFcdBWI5PC8ES1q33DxkTDF5IBs/AhzziPYglDV9ux zYpWLLfCVT1NB4RgoljWFcjRuxsOTokKAdmE3igRN97keIM4En4oSlAraqxL0Kn+ Y6793eJlXfNSeTn2Ekwfm12EnyTZEGGu/dCuDqpCO1ZXaRs9SHVUk1nrsL+eiDhz WjhGqA== 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 4game7svgn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:07 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-cc132709c76so271127a12.3 for ; Thu, 27 Aug 2026 11:00:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853607; x=1788458407; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=B6gN3x8PKcm1sNfVijcrAK0H0yaVuRFKl9zQpFpFyM8=; b=Rh6ePSkGSC3x4Cbr+C7J27OFe+tawd9DKdBzkK16Wk2qurA9ZhGbVg6QOXuyvOCsDx pQaGfpYKFtAVYDPq3NDiXRQYlxhGutk4VYtt0e7KGwryKtFpXkkVDiiFsEa6JnLrp8Ye kMdnNSvJnKqJVY7b6WRUazafTd2NnIW8tJRFvwxRF/9NOGE3hL1A9qNycU+yV9rD8NTw gAz0SnH+z2Yq1E5OdccdJoptyAs5E56Q+57583vBLwQ8N18EpyyT7CB/do0HhUQ4OUJN dRIKPkZkpIpAp0eKpF6r9+8Ab1OPveb94pxLFfkI8o0XGs760K1U9CDRMGTn83MLynF2 a6rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853607; x=1788458407; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=B6gN3x8PKcm1sNfVijcrAK0H0yaVuRFKl9zQpFpFyM8=; b=pDlpvGBdu9dJP05pg5fsEF/KMhRlHtSawWRJxMxcNhMyp0OLDeCbxUNmvkh+9rJyah vcHsaC5DuNKsZcfkoperncJojSWO/1WZICXrMRD6zjBrBs/jpZfw/Z5iy1gs15N34wq7 w7zcQT54kmWX4Pq++9ktxGp5YhwYpRs2G3adR2yQoh1PPsuspbjNtd3jBJtvOGRP/mHF mBoohEMiqXHfpMN1fMWZzx4iampvoEC/cdqPL2RQLGMTSD41U6n9ljNLxfrDsyZxwmV7 A2w7qIcSQpvk4C/ASMBqdcMNq4zdn/WU+WoQq2wCYruQ0pkuI829GGAht4r/0zoS8/ZC x1HQ== X-Forwarded-Encrypted: i=1; AHgh+RorPQHuXTjWK9Z5559t97o8tw6tuFZ+35dvJGVLqw/uOrTsqAfDV824leGLNLGUFDPd6fhkIkp0dlegU+I=@vger.kernel.org X-Gm-Message-State: AFuF++lCupLREzva5dU5tn5ar5xFHd2fhvMimlro+Ii616TfqC6U7g1/ 5yzE0Fmo8LDTFgIm567JuaDiVt9tAKz5NTq6HGjLbwXtlIRhpAomEnh09iHwv6xaluZxEpyMsx5 UgFmiqFJ/9aW0jjR+oxU2YaR2/qleSDRNKzTLqhTAsVCHX8/RSL0rhFcMnUmaCpTxyqI= X-Gm-Gg: AR+sD108YOlvw2wyhFali/5jq4oPa54wSABBx7bYriYRhri3LXHZv/kDiZ22lQjyB3l OBHwWLpxN90pWGMlxYtBahGlzQRJYLhN7FNwuiXO0iVW0zTLE4pSSjQVXpIvn/j6Efyd54lvLOX +EVb8EF4VmybdylaKo3rkYJkZcDnBxk2QTr3ipBC5qRtwavbo6uWRzGjkR6hXjdoBewet+DCzRW sxSMmF/oWMw7JhRFziESR0Uxk5kcwhHbwK6FOqayGe9ApQfaqHq1eP40YPhlDX6lDlflpDHTX+R ShXjc923YMWcYA3ChwC/BtfDnofo+XTqKjcc5YCNewbDQdcmT9mMdeV51lFT3loLn0aRxEL/1xh 4/9Y8/SrLJ1x8gfQWnMwhhXBJ5IgOeAfhBA== X-Received: by 2002:a05:6a21:a09:b0:3b4:61f:1fec with SMTP id adf61e73a8af0-3d26668474amr1671817637.2.1787853606521; Thu, 27 Aug 2026 11:00:06 -0700 (PDT) X-Received: by 2002:a05:6a21:a09:b0:3b4:61f:1fec with SMTP id adf61e73a8af0-3d26668474amr1671648637.2.1787853605873; Thu, 27 Aug 2026 11:00:05 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.10.59.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 11:00:05 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:22 +0530 Subject: [PATCH v2 5/9] serial: qcom-geni: Use geni_se_set_rate() for source clock configuration 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-5-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=4351; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=FBDw/I4Waykly4lZ3CvAqJEIzFElSwmZ1beXrSZKiUM=; b=VgT+A7/GZ3REIZN+WvvXjm2mcwdMPEtOIvgaOslmKLbXnHIQq4y29ZStj5qCPOq4RYkmX7ljr HOmcb3nAFZ0Da7puZcMuSC0WA2YWZwrcgHSUyzzEkCpxqrXAY+WlvJD X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX8bzUH4Jd1m+v 5Ghvhj65QUGiCNK8LvxlJvHMv7McNigstqGCXBSsgEs+XOXaR9QFBsCBGG5C8wpQLEAiExo38Q8 cUGT39T2toSdLLac/enBInok95XD8SsA249zJ0e0oXuiG2Q4qKyw3X/k1uDXicxg4cDdvo1e7iy NqmyvSnv1hNva15xmi1joJgMG/jRfNtyeaL1uJjl2KLHArgwiGHTYW2JSnmW1P04fT3xThiK+qQ ZrvglRGPxD8RR+KQ4l8I5cGeiDiDGSJY7lp3u/iStxhyDD4Q2AChZgd54wk9pjLnaxyV+2n3Aqx +3NqqaDyppXYTzTUICkpzBO2GWTghcQTrIQ00vV81LeAFNA9/XYt+ismbJOq0tkQ4oLtYVlbf76 hlBcPznjr1qJIea6tPGSEj2z57Xaeos7MXDcJcuZ8dJxACD+yWHuZps9irnuFSYjAyzhu1wcMTW WQTH54D8qzlKs7iv9XA== X-Proofpoint-GUID: 6RoquH1D6oJ9ts19HMtKvpsVANepVZs- X-Authority-Analysis: v=2.4 cv=Yrc/gYYX c=1 sm=1 tr=0 ts=6a907b27 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=_eeGUSGHzPgYkwSUgSAA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-ORIG-GUID: 6RoquH1D6oJ9ts19HMtKvpsVANepVZs- X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX6pVxOX9gWXon 46qHl610aWolbTzt5cSBhhs/KFAyoYOTCgjOR3UMHKmJ6IxiUTQZlxX8B9IqSMnqVWFN0esOxFa jdKZX0Ku1gVX1k2MiRsQh2KuNpfvduc= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 clxscore=1015 spamscore=0 priorityscore=1501 adultscore=0 impostorscore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 On the SA8255P platform there is no Linux clock handler for the SE source clock, so the driver has no way to compute the divider needed for a requested baud rate. To work around this, firmware instead exposes the SE HW supported source clock frequencies as OPPs on the perf domain device. geni_se_domain_attach() now populates clk_perf_tbl from the performance-domain OPP table, allowing firmware-managed platforms to use geni_se_clk_freq_match(). Call geni_serial_set_rate() unconditionally from qcom_geni_serial_set_termios(), and use geni_se_set_rate() instead of dev_pm_opp_set_rate() so clock programming is handled centrally by the GENI core, independent of the underlying clock-control mechanism. Signed-off-by: Praveen Talari --- drivers/tty/serial/qcom_geni_serial.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qco= m_geni_serial.c index 3633723acef8..23ecd137c521 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -114,7 +114,6 @@ struct qcom_geni_device_data { bool console; enum geni_se_xfer_mode mode; int (*resources_init)(struct geni_se *se); - int (*set_rate)(struct geni_se *se, unsigned long baud); int (*power_on)(struct geni_se *se); int (*power_off)(struct geni_se *se); }; @@ -1474,7 +1473,10 @@ static int geni_serial_set_rate(struct geni_se *se, = unsigned long baud) =20 uport->uartclk =3D clk_rate; port->clk_rate =3D clk_rate; - dev_pm_opp_set_rate(uport->dev, clk_rate); + ret =3D geni_se_set_rate(&port->se, clk_rate); + if (ret) + return ret; + ser_clk_cfg =3D SER_CLK_EN; ser_clk_cfg |=3D clk_div << CLK_DIV_SHFT; =20 @@ -1513,7 +1515,7 @@ static void qcom_geni_serial_set_termios(struct uart_= port *uport, /* baud rate */ baud =3D uart_get_baud_rate(uport, termios, old, 300, 8000000); =20 - ret =3D port->dev_data->set_rate(&port->se, baud); + ret =3D geni_serial_set_rate(&port->se, baud); if (ret) return; =20 @@ -2039,15 +2041,19 @@ static void qcom_geni_serial_remove(struct platform= _device *pdev) static int __maybe_unused qcom_geni_serial_runtime_suspend(struct device *= dev) { struct qcom_geni_serial_port *port =3D dev_get_drvdata(dev); + int ret; =20 - return port->dev_data->power_off ? - port->dev_data->power_off(&port->se) : 0; + ret =3D port->dev_data->power_off ? + port->dev_data->power_off(&port->se) : 0; + if (ret) + return ret; + + return geni_se_set_rate(&port->se, 0); } =20 static int __maybe_unused qcom_geni_serial_runtime_resume(struct device *d= ev) { struct qcom_geni_serial_port *port =3D dev_get_drvdata(dev); - struct uart_port *uport =3D &port->uport; int ret; =20 if (port->dev_data->power_on) { @@ -2056,8 +2062,8 @@ static int __maybe_unused qcom_geni_serial_runtime_re= sume(struct device *dev) return ret; } =20 - if (port->se.has_opp && port->clk_rate) - return dev_pm_opp_set_rate(uport->dev, port->clk_rate); + if (port->clk_rate) + return geni_se_set_rate(&port->se, port->clk_rate); =20 return 0; } @@ -2116,7 +2122,6 @@ static const struct qcom_geni_device_data qcom_geni_c= onsole_data =3D { .console =3D true, .mode =3D GENI_SE_FIFO, .resources_init =3D geni_se_resources_init, - .set_rate =3D geni_serial_set_rate, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, }; @@ -2125,7 +2130,6 @@ static const struct qcom_geni_device_data sa8255p_qco= m_geni_console_data =3D { .console =3D true, .mode =3D GENI_SE_FIFO, .resources_init =3D geni_se_domain_attach, - .set_rate =3D geni_se_set_perf_level, }; #endif =20 @@ -2133,7 +2137,6 @@ static const struct qcom_geni_device_data qcom_geni_u= art_data =3D { .console =3D false, .mode =3D GENI_SE_DMA, .resources_init =3D geni_se_resources_init, - .set_rate =3D geni_serial_set_rate, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, }; @@ -2142,7 +2145,6 @@ static const struct qcom_geni_device_data sa8255p_qco= m_geni_uart_data =3D { .console =3D false, .mode =3D GENI_SE_DMA, .resources_init =3D geni_se_domain_attach, - .set_rate =3D geni_se_set_perf_level, }; =20 static const struct dev_pm_ops qcom_geni_serial_pm_ops =3D { --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 7FE2F4C9557 for ; Thu, 27 Aug 2026 18:00:16 +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=1787853620; cv=none; b=IG+/ueVZFrFArBpLOcE6+5q45NjXAxpOGRNUiwIUYEl2khrNXMj3UDxUvsZ1KmuXi1sp0iUVYHshf2KK5MQLFjGcWWUHoisASazw25afp27EXuzR6nPKzcrRuQezXoj0JPVouTJVVAi14MvCmLND0BSirfdWQbXEb64fm/ypOQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853620; c=relaxed/simple; bh=evZqvwjAfpStMv2Htuq4lxgmNHVsv9xwkVK1wPRutP8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IfrmzEOAtf5JSJujAWalOdbtQZHOfqaCct/H4z4DI0SKTV+Kxp5fGKYMUXIWI7gOkhoD1QZeI4iduz8fkdhoL5lwWcR1qbWRfeKfrnIeXf8V53UUE1qAqmHU18WFYMZPGzqnEAC7grnpvlm4Bk4t9K+s3ABhU6eLjUVg4sWEU9Y= 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=F5VJpukA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QV07Sl76; 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="F5VJpukA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QV07Sl76" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67RHXicu3613337 for ; Thu, 27 Aug 2026 18:00:14 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= qrrfuWLil1sBb6og+uepTDULJhDr423OHDhRzRLmRws=; b=F5VJpukA8nWWoEm6 KEH7FFOV6rDAeXspvFNaG51xo6w8ZQDOBPHNSX/LrFQsATXjoSxXFSBSGYqmN8ah QZ8HF2Tzjeg4lXRIfsPMXGoIJT4yo8UV5ZvfkGtWl0ax2ZlJaWObl+Ei3b2YTNoW zqZMnz5tO1JcHJf5cdC+l8zDIJJf6Pm6xTQMMi8ziln2xNGard/TvD8tIZ+P0ogY Q6BCwLer7SpDqOaT7NoLTpDAYkdDycnSOm6zgR0+nLhxFCe3TAWEleIsqFWUwNaV 34RA+5UvTlJYumqVe7IW8oac8Z38UF29rfkkvycGdFTp0wmSQ4WKVGnwP6F+6/3l 13bmgw== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gab7t4014-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:14 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-cc1c1cc5206so156639a12.3 for ; Thu, 27 Aug 2026 11:00:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853613; x=1788458413; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=qrrfuWLil1sBb6og+uepTDULJhDr423OHDhRzRLmRws=; b=QV07Sl76foRKCnMzIBNnTaQcBBWABQZh6shTwRo57uZcaNBa1VzhBTHSBjc+7EC54j 8GmPuWF6SCVboVrQBzFhbqiyBuulTLbpe1uw2JsnSGpCtulAubUHsee8Qib9LTKKJ1sQ kyiQOzfzzlzhL2+dqaheR0eVtvNNhEFr+lgiv25FKq4fFWf+ibhLf4WFpK7JGsBKRsaS 0sFMQ9JdwM50Agl1S4w9/0FJEIl8cxBx7yGluf00SLHqyNXb0QkWNQaX6delpP4Nv1yD ff7BTXyK58NFD+jPSMYLhoKbiLlc+BjbqCehET1ynUnOEyRGHiwP4+YV/h7BmRLGtmwg vK8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853613; x=1788458413; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=qrrfuWLil1sBb6og+uepTDULJhDr423OHDhRzRLmRws=; b=aa9I6UKXlfmVZVb642ZVOvFoPTcjVv+3lqogWMVdnuX6d5nRG6N9Wui85gsXmrc1US VyRex/Glh3RW635oNiq1nWxndPwaB9SK3+hdwjjrD+zdl4HwvQQSXNvvGsu63qeKteSR Jw5uCFqbUcWL07TvemLJXelaiXjN4V2LA3/9CRY5sYNr1EGE74KphGcIv1tNz+dn4gMF 3IzG7cqNpfDtnQ0MKKae8w/FaSbp89IQEhDBBsBWR5X2XckY4dejyvhF4k2u124AgLzh b3lxkcanNOlIqICd/qT/5IYKMQlNTen+lpYyCs8UrMMjpX2HV8NMQahUaTUheaJBa8kk kSCQ== X-Forwarded-Encrypted: i=1; AHgh+Romk88AdkzroErRjTpEkPCNJ6dT5tK0LCoInmtZQd8Nu//Yb6jUtMUdCk3x6L3qo9v530NVCtjvO0VE1KE=@vger.kernel.org X-Gm-Message-State: AFuF++kOlv+fqv/g/bnqzx44JqnNi31SrGssgSGOwVnpw3ZvcnmQSJyS 5k8npfFTADVGRHTMKQUgElO9OXTywMix3bOeSlLhvSHF+YG6tQQarOO9xYY/TUhLarXjOGQKoSP tcclkre5PqUN4hKBEm/wQAmqS/kCTpK2vYY5UoyCsWVFh1C07S7wP1ayQySubivdpqjs= X-Gm-Gg: AR+sD10+Gw4R+meglM3sd5Fg0NCYZvyWijPPxht5qYXi8Vn1QuUwU442HZg/UNN9+Wj AZ6fRSp1br2D5kTK6Whl9Pum49K5nzQat8OtrSiBJeCTR556wto7C8i6f4Zk5pcAEIUv+LsBIYh 7cAPEZ6ae94dy7NG0et46T92JHiFT512ktcNAfW4zjm0aU/XyKfJ8viBiUYlDQgmKZG7oOfRf99 tAK2llicgwl5BVkJ+6fk5ENGKY7SjsQPNKn2Z049NVrWoe5kwVvNin0cvqhAXbqeRe6qNmEdawE CZ5gvqYxonyEfwyss38Zi2WCjYlW6uJKRojqNbQyHi7vuJz6SBVMuSKMVBZCaYnSk/KUFmt7JQl 3t188q6Nt+OvvPU1TZkhqratKg40xpTcCrg== X-Received: by 2002:a05:6a20:b7a7:b0:3be:b0b3:3962 with SMTP id adf61e73a8af0-3d268ef9e07mr1288895637.9.1787853613313; Thu, 27 Aug 2026 11:00:13 -0700 (PDT) X-Received: by 2002:a05:6a20:b7a7:b0:3be:b0b3:3962 with SMTP id adf61e73a8af0-3d268ef9e07mr1288711637.9.1787853612629; Thu, 27 Aug 2026 11:00:12 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.11.00.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 11:00:12 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:23 +0530 Subject: [PATCH v2 6/9] spi: qcom-geni: Use geni_se_set_rate() for setting source clock frequency 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-6-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=3796; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=evZqvwjAfpStMv2Htuq4lxgmNHVsv9xwkVK1wPRutP8=; b=KdFxbJvcWSl6qfONQjLStiRv61vbIt8Jhb3N1xzP3igF569m4oAAYDp2Y2j3vj6Twd3akqVQ1 UdZupTNLSC5Dxck/9WtwyVDWsi+sPQM65ZnK2Nmh/sQYq1pYpFEOFqc X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Authority-Analysis: v=2.4 cv=X6Bi7mTe c=1 sm=1 tr=0 ts=6a907b2e cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=V8jFpX-JU2fdHFI84kkA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-ORIG-GUID: cHOB49H1jLhc4-lDEu7vSKU0RXnnwmrc X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX0YdSbhrnT9ye SH+AtRlZswplpm7ZfNAykqwE6OF4lCcaYdmaAW96e9XvvHj/mC6duOQy6VKvAFXfB7A/5G+ARKu /t9XcgH2l7jWAsvSmxPNJEZYdw4tijw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX/EMJ6hy75m52 2SQhmfikKvkOHjJL6l9X6VLm0q0E45FNk8RkYOJJQiLgM0Bs9wK/4R1npkMyx2hcv+4SxSBaxt+ hS7ALaquFCMP5t+eii5Ll7gF1w6IK83pi2269KUBKpoStnUs+R4cxGS1HvYJVrwYoa6v7lmaLkQ dCiiUZJGoL+oSdIp5zOHNNwYscqiXOaRd8aEvpB/Lg5LZuSXDy/pgBi1lY3uu9DuO8RSdT9uCAP /KSx6dzhfRZZjhKfGs5HjzIuZuEHc4dbpEZ7LNGlNmBu1kKdTcEJmFRAPnF0OH6sBaKh/pBQQ5w kUCqgWvTs/P/Pv60lGphaWzA9ScoyVhez+MYbct9rbFhfxbB54HRJdt3nFffPbAYAVYybH5ziDL PmgFPk39eRwi44+A6wwq6lXhFA7UEkqi/LAnGI9XvxxWfFJgvOaWRpSLTvYFB7YBTZCnRsGCvG+ IWw6wl/wmXRbPfBqnLg== X-Proofpoint-GUID: cHOB49H1jLhc4-lDEu7vSKU0RXnnwmrc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 adultscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 On the SA8255P platform there is no Linux clock handler for the SE source clock, so the driver has no way to look up the source clock index and divider needed to fill the GSI CONFIG0 TRE for a requested transfer frequency. To work around this, firmware instead exposes the SE HW supported source clock frequencies as OPPs on the perf domain device. geni_se_domain_attach() now populates clk_perf_tbl from the performance-domain OPP table, allowing firmware-managed platforms to use geni_se_clk_freq_match(). Use geni_se_set_rate() instead of dev_pm_opp_set_rate() so clock programming is handled centrally by the GENI core, independent of the underlying clock-control mechanism. Acked-by: Mark Brown Signed-off-by: Praveen Talari --- drivers/spi/spi-geni-qcom.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c index 6566975eb24f..03ce9eff9c24 100644 --- a/drivers/spi/spi-geni-qcom.c +++ b/drivers/spi/spi-geni-qcom.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -82,7 +81,6 @@ =20 struct geni_spi_desc { int (*resources_init)(struct geni_se *se); - int (*set_rate)(struct geni_se *se, unsigned long clk_freq); int (*power_on)(struct geni_se *se); int (*power_off)(struct geni_se *se); }; @@ -150,9 +148,9 @@ static int get_spi_clk_cfg(unsigned int speed_hz, =20 dev_dbg(mas->dev, "req %u=3D>%u sclk %lu, idx %d, div %d\n", speed_hz, actual_hz, sclk_freq, *clk_idx, *clk_div); - ret =3D dev_pm_opp_set_rate(mas->dev, sclk_freq); + ret =3D geni_se_set_rate(&mas->se, sclk_freq); if (ret) - dev_err(mas->dev, "dev_pm_opp_set_rate failed %d\n", ret); + dev_err(mas->dev, "geni_se_set_rate failed %d\n", ret); else mas->cur_sclk_hz =3D sclk_freq; =20 @@ -847,7 +845,7 @@ static int setup_se_xfer(struct spi_transfer *xfer, } =20 /* Speed and bits per word can be overridden per transfer */ - ret =3D mas->dev_data->set_rate(&mas->se, xfer->speed_hz); + ret =3D geni_spi_set_clock_and_bw(&mas->se, xfer->speed_hz); if (ret) return ret; =20 @@ -1161,9 +1159,14 @@ static int __maybe_unused spi_geni_runtime_suspend(s= truct device *dev) { struct spi_controller *spi =3D dev_get_drvdata(dev); struct spi_geni_master *mas =3D spi_controller_get_devdata(spi); + int ret; + + ret =3D mas->dev_data->power_off ? + mas->dev_data->power_off(&mas->se) : 0; + if (ret) + return ret; =20 - return mas->dev_data->power_off ? - mas->dev_data->power_off(&mas->se) : 0; + return geni_se_set_rate(&mas->se, 0); } =20 static int __maybe_unused spi_geni_runtime_resume(struct device *dev) @@ -1178,10 +1181,7 @@ static int __maybe_unused spi_geni_runtime_resume(st= ruct device *dev) return ret; } =20 - if (mas->se.has_opp) - return dev_pm_opp_set_rate(mas->dev, mas->cur_sclk_hz); - - return 0; + return geni_se_set_rate(&mas->se, mas->cur_sclk_hz); } =20 static int __maybe_unused spi_geni_suspend(struct device *dev) @@ -1224,14 +1224,12 @@ static const struct dev_pm_ops spi_geni_pm_ops =3D { =20 static const struct geni_spi_desc geni_spi =3D { .resources_init =3D geni_se_resources_init, - .set_rate =3D geni_spi_set_clock_and_bw, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, }; =20 static const struct geni_spi_desc sa8255p_geni_spi =3D { .resources_init =3D geni_se_domain_attach, - .set_rate =3D geni_se_set_perf_opp, }; =20 static const struct of_device_id spi_geni_dt_match[] =3D { --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 7EA844B048A for ; Thu, 27 Aug 2026 18:00:24 +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=1787853629; cv=none; b=JxA8ZBulCvTuctZ4gRIYzagf4WnuI1Cs3ICgVcbSKC81N+mtw7wq6Gcrm9rCG4H7/amFuXnlBhsOJ4GUKUpJYO0yYgt6FxfluDxkpHbh/zga+tFhzM0JE4RSJCKGzl3opG7X7dGaqQEfBT8b/wmj6ZBz50oTVq+OzbneZd9MHsY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853629; c=relaxed/simple; bh=UFbtM3Wi59vHG7aQiqHHkhJP0XzUIMUsc/8Fo4UwloU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LjKd5o7W+Ra86E+Gah8ztiPoBU+XXI6kaX77UHRHZoRHHu9vi6NJRogJsHVHYO3Bt940SVKEQPV7Uqu8LqcVK7xRS5WXO+xrQyO3ofJZALk+0TFiqAuO9nPq5T2YnuRuKDsYQKodzQ9c2SGTSJtMatyFp8y9H1kffiA62jKk+f8= 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=og+R+JU0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Bkae4TtW; 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="og+R+JU0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Bkae4TtW" 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 67RHXcWj614547 for ; Thu, 27 Aug 2026 18:00:23 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= gOQ6tcmRQHIn01iUxXOVIhspNTiTc1cqfMZOOm1oy+s=; b=og+R+JU0M/Xyh+NY il8boC8rRpr2LcJNFgKK3uRjBgXrJCotMPGRzS+MKtXlD/vZfvpsqYTwNZL+n74+ ZikFJENA/nvVdHFCghsFjUHOYMG/7z1OEn7f8opKvUvY3g3OHMpXFgjTKkB92S4j DcuexOthjFH1MABKMS38AvH3ZESEbwesBPWJdh3Kg2eWXTpaZbk9sNzCVlCXHj7E e8KvOzxc6zjzbzmYrYzd7Fh+6jT53jFWBAfCrXmhuEr85be9WLgxjicnPaw1bVZW +xHpQlVtcJ9N7+6JXpBwLkAJ5fKgJycFGdRzOVgqXtTMZNK5gcLrod9DWUddz/JF g0WH3A== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ganr69b6b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:23 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38f5ac7416eso247962a91.3 for ; Thu, 27 Aug 2026 11:00:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853622; x=1788458422; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gOQ6tcmRQHIn01iUxXOVIhspNTiTc1cqfMZOOm1oy+s=; b=Bkae4TtWpZlXXpR1X9WgOwIUQ5N6V5hc8rzDJFI31/H0T6PjR3edqPkMfm1UplONB/ 6uq13zx0nf1uejA7oud2Oi3/OqGcplEU4P33AAX0Zy52lm4PXzhxCUpPmI1aN75bu7W4 9bIpPkVwpgLSk7EpxE3tWtIu1izoIcZD9OIpGOo22u3v9byv0PP9P6TUz/HwaJMmGvbf Yu9ONW6hh4Ov8FyR2hA45X+J3iD1FTByZZopnH5UN0XmcB7G1n3c+AfJ+u9GHZuniTp3 SOcveLDfZj9jKMWEltnft5+gm8XkyGfITJ4FpGhUQ0U+AGcq9BNi7MChYLWC3yhblAA1 vR1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853622; x=1788458422; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gOQ6tcmRQHIn01iUxXOVIhspNTiTc1cqfMZOOm1oy+s=; b=sVm9jl77mE9Hypdn3XZub951GngLdHeBKmJTta6sG8k2FULZ4WUvcuFUtHybZseo9f TDB2nygBNm698TLNvV4ak51PvP+g6iTqlFMfXD5nmyK6PxwjgUDkG3dgI1vn6h5kXz2H JE8gC121DR/2sXbPc4VfHclcMtck0mqpUEg62VzofFKs1wMhY7FnL98oSUq0ea4LTcK5 FT2DwA/PyeffjKf73kKiFKWq+qlH0E1hJF2ArGouCrT5V1bP4lYN82XVLcQeouMmy+om SAl3evpXVz0YwN1s7f6G4YgwX3NVZYw6XU6uf1DIgdhvNkWC8nMb+imDUWvm5au3PMPc D5pw== X-Forwarded-Encrypted: i=1; AHgh+RqzQqmy1/7Wdy+Jq5OvOHurTM/T3vmPjAj9cMFDs0olpvYvakmcfihQy2OgEZ7GsOwO1vSZBeZpK6b6rWw=@vger.kernel.org X-Gm-Message-State: AFuF++l2YLaaNIPDuV9549BG+lwaDPhzNDQ3GGlTsUJl18RPSrqlpJ4J NSI34RdQtSHojZOLaDPdJMOj6FHT3G1Wgs8rZyy3hgZxoGtqfPK23ZHt9Ve4uHqddxWr5lc1YxT 4YGiljftAESWEBKPxhDSHddNvwEgB1e6wx6OJ1U1gc1whd06IClmgMkphvx4HJuKc0js= X-Gm-Gg: AR+sD12FQbE1hyea+JNa3a8Dmb2prIKmw+Ma2Lrl2tI0jmx5alrqs1n6IrEtVzFpBv5 nghMCqTTSj+wAsG2Blk0DZa1aJv/AfoiIIUezyKk9QwDHuNP6FrI4oN5dt75/nH5zvZdRa00O8z drlxhkvuAHVUtk3bF0qWWDQc689QqPeKNSJZA8bEjiGypgaRV96OIq1cCQWvgPZV60QdGQaMPpI Wq1EqG9Y4U7Lp+g1k57OupUFntSpkAaBZtl5qcs/YN754V5nWr1BqrtfPQJDgtXZ7jqJFnZAmkz Z5YxKMqyzmwJG6/QKDYJZ4RPsjQFbpkurIe79+GH0TUNnBtcYCyOatuYb4MWrrCgbTc4h7DpMNH als1Vg3bcHkjakbs6oAdN5ADSE0Kmpyq/nA== X-Received: by 2002:a17:90b:2d82:b0:38e:5c6:4db9 with SMTP id 98e67ed59e1d1-396d0f2f709mr1910702a91.11.1787853620731; Thu, 27 Aug 2026 11:00:20 -0700 (PDT) X-Received: by 2002:a17:90b:2d82:b0:38e:5c6:4db9 with SMTP id 98e67ed59e1d1-396d0f2f709mr1910262a91.11.1787853619265; Thu, 27 Aug 2026 11:00:19 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.11.00.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 11:00:18 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:24 +0530 Subject: [PATCH v2 7/9] i2c: qcom-geni: Vote for SE clock rate using OPP 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-7-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=3900; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=UFbtM3Wi59vHG7aQiqHHkhJP0XzUIMUsc/8Fo4UwloU=; b=SuK46GH8fU7Buoy8TzORlm6WEiTSHXMtcOF2tPugNtpZDBh4ldOCJthkNf1e+NaN4d1ZK5Edy hg5t7jDP88uBZIMEGFemCXKBci5gBezainJ+OKoU0BCFjS0noAt1+I5 X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX4GnUAOYLhv3t PyuGiGPLOIQE/nD875uChk6MaDMB1bVdSAqybqXUVViFHlAnf6avENuGQm4i1pN+pPjWukCtw3Y RR442V2kWa6Z9B1xykSLAH2TCeZmlmdS3kN0SO00/SHhQIztj/ADnEdadJNgb4Xy5zdw+jRzpxX pitn60jm5W4SwG8uvP9gTKXiHwWXpuvpMU9Zcj4xlJy2dEIGV0Sjfm1FyPQSroHxMfZ8PwMs+BL MgqAqW+jm6bJePBfHhWJPuSQ4tEO0/gq+KVJekbqd5OAu0lgpLWXYVvHXoavt0kYkXx0yQ6VI4n rDR88jxutm565p7zu4RXBlfq94fviS2TvzykA6Gv/DwMfHOEDb54FYt6Wdn10w1eLfpp4cfRhSi AlZHLo+a5QB7B1No1/w2TuOilllc4lV5MTggScTXr6kl45JT8cIP1HxUtTqWgQ8lBJi/cUD15MT N3DcoaEwZ5rKHmKT/Ew== X-Authority-Analysis: v=2.4 cv=d5DFDxjE c=1 sm=1 tr=0 ts=6a907b37 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=YnqcSKFZeAXWn-m59-0A:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: VCZsjQ08Y4dxEORzcyoNCbqUEjMuf1vY X-Proofpoint-ORIG-GUID: VCZsjQ08Y4dxEORzcyoNCbqUEjMuf1vY X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX5fSsfxV+ocwy HZ2+fpV9Wg+5X+sbEglcIP02dN1joicEM1/+VNUXZRcgNh7faF5j226SRBvkCyzaCSp7FVoYJtG LR7dx2LSfQrzc4mfCdVrDPKUHEY2gHY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 The I2C driver currently assumes a fixed source clock selection and always programs SE_GENI_CLK_SEL to 0, which is not sufficient when the controller needs to switch between different source clocks. Add the source clock index and frequency to the I2C clock map entries and use them while configuring the controller. Request the required source clock rate through dev_pm_opp_set_rate() and program SE_GENI_CLK_SEL with the matching source index. Signed-off-by: Praveen Talari --- drivers/i2c/busses/i2c-qcom-geni.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index 658636c1ee0e..a3b7609e3cf9 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -165,8 +166,13 @@ struct geni_i2c_clk_fld { u8 t_high_cnt; u8 t_low_cnt; u8 t_cycle_cnt; + u8 src_indx; + u32 src_clk_freq; }; =20 +#define CLK_19P2MHZ (19200 * HZ_PER_KHZ) +#define CLK_32MHZ (32 * HZ_PER_MHZ) + /* * Hardware uses the underlying formula to calculate time periods of * SCL clock cycle. Firmware uses some additional cycles excluded from the @@ -180,17 +186,17 @@ struct geni_i2c_clk_fld { * source_clock =3D 19.2 MHz */ static const struct geni_i2c_clk_fld geni_i2c_clk_map_19p2mhz[] =3D { - { I2C_MAX_STANDARD_MODE_FREQ, 7, 10, 12, 26 }, - { I2C_MAX_FAST_MODE_FREQ, 2, 5, 11, 22 }, - { I2C_MAX_FAST_MODE_PLUS_FREQ, 1, 2, 8, 18 }, + { I2C_MAX_STANDARD_MODE_FREQ, 7, 10, 12, 26, 0, CLK_19P2MHZ }, + { I2C_MAX_FAST_MODE_FREQ, 2, 5, 11, 22, 0, CLK_19P2MHZ }, + { I2C_MAX_FAST_MODE_PLUS_FREQ, 1, 2, 8, 18, 0, CLK_19P2MHZ }, {} }; =20 /* source_clock =3D 32 MHz */ static const struct geni_i2c_clk_fld geni_i2c_clk_map_32mhz[] =3D { - { I2C_MAX_STANDARD_MODE_FREQ, 8, 14, 18, 38 }, - { I2C_MAX_FAST_MODE_FREQ, 4, 3, 9, 19 }, - { I2C_MAX_FAST_MODE_PLUS_FREQ, 2, 3, 5, 15 }, + { I2C_MAX_STANDARD_MODE_FREQ, 8, 14, 18, 38, 1, CLK_32MHZ }, + { I2C_MAX_FAST_MODE_FREQ, 4, 3, 9, 19, 1, CLK_32MHZ }, + { I2C_MAX_FAST_MODE_PLUS_FREQ, 2, 3, 5, 15, 1, CLK_32MHZ }, {} }; =20 @@ -198,7 +204,7 @@ static int geni_i2c_clk_map_idx(struct geni_i2c_dev *gi= 2c) { const struct geni_i2c_clk_fld *itr; =20 - if (clk_get_rate(gi2c->se.clk) =3D=3D 32 * HZ_PER_MHZ) + if (clk_get_rate(gi2c->se.clk) =3D=3D CLK_32MHZ) itr =3D geni_i2c_clk_map_32mhz; else itr =3D geni_i2c_clk_map_19p2mhz; @@ -218,8 +224,13 @@ static int qcom_geni_i2c_conf(struct geni_se *se, unsi= gned long freq) struct geni_i2c_dev *gi2c =3D dev_get_drvdata(se->dev); const struct geni_i2c_clk_fld *itr =3D gi2c->clk_fld; u32 val; + int ret; + + ret =3D dev_pm_opp_set_rate(se->dev, itr->src_clk_freq); + if (ret) + return ret; =20 - writel_relaxed(0, gi2c->se.base + SE_GENI_CLK_SEL); + writel_relaxed(itr->src_indx, gi2c->se.base + SE_GENI_CLK_SEL); =20 val =3D (itr->clk_div << CLK_DIV_SHFT) | SER_CLK_EN; writel_relaxed(val, gi2c->se.base + GENI_SER_M_CLK_CFG); @@ -1228,6 +1239,8 @@ static int __maybe_unused geni_i2c_runtime_suspend(st= ruct device *dev) } } =20 + dev_pm_opp_set_rate(dev, 0); + return 0; } =20 @@ -1236,6 +1249,12 @@ static int __maybe_unused geni_i2c_runtime_resume(st= ruct device *dev) int ret =3D 0; struct geni_i2c_dev *gi2c =3D dev_get_drvdata(dev); =20 + if (gi2c->clk_fld && gi2c->clk_fld->src_clk_freq) { + ret =3D dev_pm_opp_set_rate(dev, gi2c->clk_fld->src_clk_freq); + if (ret) + return ret; + } + if (gi2c->dev_data->power_on) { ret =3D gi2c->dev_data->power_on(&gi2c->se); if (ret) --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 828B94A2E15 for ; Thu, 27 Aug 2026 18:00:30 +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=1787853635; cv=none; b=kObpsgOat/uLOzMFmIJyoZLrzJGfYAvYbDgswV5OaeNubHeoejSFCSLf6gFwAEvMjE3INFZn059bGLoakhGF217U8CBFyk4+CrLk+cZHgGoMN8foPbBMil7tWqI8F92OTkMTVuEpoeXcYnna8XkYueB8uDhnvxvgU3gz26YoK1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853635; c=relaxed/simple; bh=w5pv/KNIEdlnHDT3uJaPurHB9sUygy6lp1p1Tpumn1I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TlUju0CK9f/76KiBwN8AXN5pPsTzHQH8ciRoRopwmAWOB+ysnFy16HxMPdgS2KIczZffeH7CmCfbUvKh2EFe5qYjD1ajoNolfCp0363HSv+/otegTOAbFafsywHZr2+sPXY18JlTskgn1DipZEpl3T4EYJ4Vrs4vsCJSZfd8PNY= 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=C88KNkNM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hmSqK/nv; 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="C88KNkNM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hmSqK/nv" 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 67RHXbsk419724 for ; Thu, 27 Aug 2026 18:00: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= 98+ip0Wb3BBuztCCDHQ2Rp/wdTyxXqiBl8ycdGuMnbI=; b=C88KNkNMelO7r2sf yDI+hrbFKEWqA5Um2t1rGa1czu7xI43Yx9W7hJ87lOrl6gWht7X4Pcg2g+OWfqc9 6/UQx/ZcQMIXaB4Uazh5RHUHB8BTSg7O72btawORm/z/dEQmfEsWiVqrHheUSQ5M DstzmUbvRXn/C5fuymm4IFcC+OF0jYhrIfBnemsXiEDSFGpuXGEybJocxPkbg6VJ c+BFiyizWQ2fxW3W8Q/lBbU2Hy+BKdoo/i49oDmEsNHbc/qqG+r5OBenGbYlWTot vYhILlD2tlOTEjzj7D58he9l717qb1NsjoYv0FVnFbTjbFWHpjh9kyClQZ/7Q13p oaLY5Q== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gagjftptm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:27 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38dde0df80bso381984a91.3 for ; Thu, 27 Aug 2026 11:00:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853626; x=1788458426; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=98+ip0Wb3BBuztCCDHQ2Rp/wdTyxXqiBl8ycdGuMnbI=; b=hmSqK/nvQJHbdeD2+46WfT38qmd+BvFa+YmP6noFKzZqaclH25pgqjOld9zp9ULfrd 31xtJEvKLsuWFyzVWIik200qj3n2EyfgxttGRx6MpNqZedA/1373fsnO+ct1axytRWHB x1h5Gwn1ZFJusnmgBONO0o6Bwv1zTO2lVsT6rNfXJJpd3JGpaqPYmQBYNY3PFRkVTW64 P1x9r4jB3G7iIMj0CS4IMIVpTlzfTFNzd0ff/hVVQnKwOvJHgBhwUV5+a9ly2geF9M2b Gqqc+gaLSLW2PJZBdj5ohpPfJ5fAy65ea0CzssBGZYnX8ambwcXv5GPGqncPHSWFsfIB v+fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853626; x=1788458426; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=98+ip0Wb3BBuztCCDHQ2Rp/wdTyxXqiBl8ycdGuMnbI=; b=EMjxxd2xSyqO9c2fcHiKGJluqZRTbm31vy2+PxY0iXjmrLjD7CpRCB0juDWLBhPpnZ fdbciVGgGbBe0t3mTOJZZlKW1uZWeQdW0o7bvL+QHdrd9ByyrE6G+GtaULpt3gWo+JP5 V/KBjsshQFTL5HxPlr44ak1hfc274KeoCM9KkL4hmkPLV3hMT/l3MU5i5StsJOzGfZfm NN2Dpg7h8Y+elNIgQulJ2UOFbDUajpEOk4ijWvTEtaXOxoPfeWtiIjpbP+7OvnNoTpDD kFYeEMfuwYZNbKDn5t1ZrMm6iwTP6//CnaCx3bxfyF1XzG3A5rRhugUEaqRtS+Vhe85i zkbw== X-Forwarded-Encrypted: i=1; AHgh+Rraatp+UrDRfjfeNKEiux794wyUWwxnhNJ0qqrI+fDGi5uB0/501NKT0Js82OjvM3C01uFThPkPUiHn7nE=@vger.kernel.org X-Gm-Message-State: AFuF++m9QlHfmS+Iybj6VNmztOr2U1bsnOHvv9gMxzKzUeIS6Mr1xbkt v3X0sT/n0onxpKqnIu3OdTQSm6dVgPqaOxU77CWrQ3Fhsa3YkQE7tSM2TBRJGR3kp6jhWa67M7A 3PhAYfQWxY0OovZSuSSkyvaBTXMpcYFI5/ULzGwcij3P8SvBaXdfdPxOO8hwjKnWzmVs= X-Gm-Gg: AR+sD108B/E11obIh2sGtTAKptbKVOx6ZocAVl3JZFrWr0VBLxTulIJqga9eZOBwpOz Zpr4yoJpaCUBh11rL4YZy9jEAtCJ5pkVKn61KqWKHpvTuXjFVT1/1QCtEwqmOy6A7eDvTVi0RBx 8TPuei/koOVXBAUvvf87JLdcSNEp+EEodu0ji1/8VRrhdMqI91bxRLJi/UDYbIF2itoxFQSWNlp rxtqY2ziF/RJ72waYkMfNr2qj71y/4G2dLRbuGq7+GKFQDe425r/jhtP0LhP6de+r9x4lu7rmml ZsiQSTXZbTmyaHfACeCXTWmZN6EzlSFnniAZo9Y4IOwW1Ea1VvU9uT3pv69sP/DLZlknHeOiPgY Y+UiFZ5VLJ5zfcwRsZajfErHyNumj/C6N2A== X-Received: by 2002:a17:90b:5249:b0:396:40e6:f631 with SMTP id 98e67ed59e1d1-396d0e306e0mr1998430a91.3.1787853626484; Thu, 27 Aug 2026 11:00:26 -0700 (PDT) X-Received: by 2002:a17:90b:5249:b0:396:40e6:f631 with SMTP id 98e67ed59e1d1-396d0e306e0mr1998281a91.3.1787853625847; Thu, 27 Aug 2026 11:00:25 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.11.00.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 11:00:25 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:25 +0530 Subject: [PATCH v2 8/9] i2c: qcom-geni: Use common GENI resource initialization helper 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-8-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=3130; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=w5pv/KNIEdlnHDT3uJaPurHB9sUygy6lp1p1Tpumn1I=; b=RpUaUAw4SKyeq/cMnDINFjUHMhU8BrCF7nO0MIN9bUEOAtoiVOMD/WJLDNub+JvNeH6he/jUe 5Mfv+iUwybdB1Cy0ZdXhE2WefHG4NrCHaa3XdNT4+Q6x/TuYvwULgFI X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-ORIG-GUID: yzSDv5-gf3hIjqHr5PoE8Jp_nBaP4gXv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX25nHAh5ew5Sk 6JMtb1iLb0Dw/NHn7TMFYgyMcBbB6eWtsLdiMkgG80R4JJpM60wVqVBbRk5Cfd+oySCofDcaoHp 2FbtTpxik+cwNV1GM1Q6dLPrmQ0p6K0E1B34A1kp4Nx2emyYhKXAqhyPUKZNehZKMY2Qn8JoHxb tqojStOUVpFzBK6l5FTnx+dyXK3yojfPHm8xKdGRFvoLb1tCQ5GWYnTVL02bfJzXi3K2gTOPoWV zCYeViXmFzCe5ujAnKW8Hbk7CBQhqLrNWrWzxOm6sR5Cbenh4Ct8InaqRHyvn5WXswnlFuNZjL+ 02ARL7WQ5oT0qjJtC2BjhlfLdJPOzP8xxW/okj2MCrhDyQeEuyOGsgIz13mSVmsQb5VoYnpA/DI 7Gvp4bWxtlNayCn11tqaZiQzBUgiIkI8iMGE0iacEZR88yUaOG57JusWnIR25scPqTLHTWrso3a WImIjDegh8AyfN5OlUw== X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX1j5FlQQrkogV 2GGXocM8lBSG1/fyesy/ovMKmUKfRwo3EnlwjXdbLWjJtmkEGifU4yqVfZcOefesgWs05H6dGdA Dvjd1eBd4uytUQepA7MyXmnllfbhRZ0= X-Proofpoint-GUID: yzSDv5-gf3hIjqHr5PoE8Jp_nBaP4gXv X-Authority-Analysis: v=2.4 cv=dd+wG3Xe c=1 sm=1 tr=0 ts=6a907b3b cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=2yxW5TxCEIWXvfGmYYcA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 bulkscore=0 adultscore=0 suspectscore=0 impostorscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 The driver implements a custom resources_init() callback for clock frequency validation and bandwidth vote programming. Neither operation is required for resource initialization itself. Move clock frequency validation to probe and program the ICC bandwidth vote from qcom_geni_i2c_conf(), where the bus frequency is configured. This allows the driver to use geni_se_resources_init() directly and removes the I2C-specific resource initialization wrapper. Signed-off-by: Praveen Talari --- drivers/i2c/busses/i2c-qcom-geni.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index a3b7609e3cf9..0b178701e1d1 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -242,7 +242,9 @@ static int qcom_geni_i2c_conf(struct geni_se *se, unsig= ned long freq) trace_geni_i2c_bus_setup(gi2c->se.dev, gi2c->clk_freq_out, itr->clk_div, itr->t_high_cnt, itr->t_low_cnt, itr->t_cycle_cnt); - return 0; + + return geni_icc_set_bw_ab(&gi2c->se, GENI_DEFAULT_BW, GENI_DEFAULT_BW, + Bps_to_icc(gi2c->clk_freq_out)); } =20 static void geni_i2c_err_misc(struct geni_i2c_dev *gi2c) @@ -1111,24 +1113,6 @@ static int geni_i2c_init(struct geni_i2c_dev *gi2c) return ret; } =20 -static int geni_i2c_resources_init(struct geni_se *se) -{ - struct geni_i2c_dev *gi2c =3D dev_get_drvdata(se->dev); - int ret; - - ret =3D geni_se_resources_init(&gi2c->se); - if (ret) - return ret; - - ret =3D geni_i2c_clk_map_idx(gi2c); - if (ret) - return dev_err_probe(gi2c->se.dev, ret, "Invalid clk frequency %d Hz\n", - gi2c->clk_freq_out); - - return geni_icc_set_bw_ab(&gi2c->se, GENI_DEFAULT_BW, GENI_DEFAULT_BW, - Bps_to_icc(gi2c->clk_freq_out)); -} - static int geni_i2c_probe(struct platform_device *pdev) { struct geni_i2c_dev *gi2c; @@ -1199,6 +1183,11 @@ static int geni_i2c_probe(struct platform_device *pd= ev) if (ret < 0) return ret; =20 + ret =3D geni_i2c_clk_map_idx(gi2c); + if (ret) + return dev_err_probe(gi2c->se.dev, ret, "Invalid clk frequency %d Hz\n", + gi2c->clk_freq_out); + ret =3D i2c_add_adapter(&gi2c->adap); if (ret) return dev_err_probe(dev, ret, "Error adding i2c adapter\n"); @@ -1300,7 +1289,7 @@ static const struct dev_pm_ops geni_i2c_pm_ops =3D { }; =20 static const struct geni_i2c_desc geni_i2c =3D { - .resources_init =3D geni_i2c_resources_init, + .resources_init =3D geni_se_resources_init, .set_rate =3D qcom_geni_i2c_conf, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, @@ -1309,7 +1298,7 @@ static const struct geni_i2c_desc geni_i2c =3D { static const struct geni_i2c_desc i2c_master_hub =3D { .no_dma_support =3D true, .tx_fifo_depth =3D 16, - .resources_init =3D geni_i2c_resources_init, + .resources_init =3D geni_se_resources_init, .set_rate =3D qcom_geni_i2c_conf, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, --=20 2.34.1 From nobody Sun Sep 27 00:44:25 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 7AF954D90BF for ; Thu, 27 Aug 2026 18:00:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853644; cv=none; b=j9T1JOhDVsWWoniaATwEz2U98dvYEic+dCRai1D0K2PffnQJEFgpWTBbpvxE1YgWfOaAI2CHhTlTVvlTc7exDe6s7l1q/RnSUfsWPM0oyPeRqXYXpmm78R6Xn4BWjBjWD6P1H+8t6AtrO5MNqVI+ViHrMVdAvvfmDKjYed+Q/rw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787853644; c=relaxed/simple; bh=NjCwN+DsAYC8C+NrLmOLrNQM+M1WYqvKKDKj63mj+98=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FAWTAqYKWxyNxad4fdOnLjILpuukrSqaNJeXU7Ir6D/SKaoBXfa+55ODuNxwMs+7IhN1/17/7iAPKqQYSfkpyefZlg124Z4MhLDSzmIePNQd8g5GLW32GIW1KBxfDlGIF4Q2k79SPBxJRAsOrkVU4l3VmD9IkR+K02bqjl4qjbU= 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=Ppmv8yPK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WW02I8Vp; 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="Ppmv8yPK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WW02I8Vp" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67RHXawm4178250 for ; Thu, 27 Aug 2026 18:00:37 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= +QvdWGn5rqFtTcef6NfYXo2PfwQibN77OSCU6yboIRk=; b=Ppmv8yPKbb9PHUQa uo8WRtVl4iinZTO2w9ED9nUIJ8fEyPnMYBqDvE/P7e1vMbyjoWEzFH5549C/TIni CGIDYKmn+CnZ2ffU64ONax2SutM9EXNkp6HaAHb0uOimGMXcI71e67HFt7sy23bZ m9WqgUocbnJiH6C2p98B8+FluWdmXmRknFm8d/fxJaxHbRneFosHn6lMQMY7/jF1 UvnZCVUfeUqzImgs4j0ZE39rtYaRYRLlWAAqYFMgZN/TijQc46Lttd5/aFEEB7Dp jRxNLA72WAb5X6PCfAgTV2JRuHF+U2WsZvFdiEq4uiL1crN1y9KpFaavKKF+1JLw yUUc4Q== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gaphw14wn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 27 Aug 2026 18:00:37 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-396901263b6so261703a91.2 for ; Thu, 27 Aug 2026 11:00:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787853636; x=1788458436; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+QvdWGn5rqFtTcef6NfYXo2PfwQibN77OSCU6yboIRk=; b=WW02I8VpuLYg1SRAR7E7d3sZrPyulyxkyvY33R//xkC9qNxLHVOZTRXn9jkTZt0gFp TRkDZZxZ1yKxTH5RXsOV33/xDQQ5SLPr6H2iuP/OqA3YJ+jqEV6MoNvJ4LsaZ/pMbdqG JrCAPgZE7u/o7AoCzAldVN6nMxCgm92kn5986MKWQW8uSmgQIDUrCNVPnVQTqJgs9s9s oJxweCx5c9x2tZTAbiQ8AXU6Rt0V/af847755CLCms41bdd5EF10xfi9S2qBxGhoevQ8 uHmmXI+Fym2Fu45hcmFi/JYjb5DyyTYB5qq8/eEpAngcalqBetDVF0EUAAIGMcVUHajp Qaug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787853636; x=1788458436; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+QvdWGn5rqFtTcef6NfYXo2PfwQibN77OSCU6yboIRk=; b=G8I0mCy3RqSkoC/YRGFNBk7arbAJfkAWr9nzAs8Vp3yH5+cp2zQur8w/Yfho4h5Yie mtJYy6FOIR8uAJH/tpoP/K3yNYhUN6EAc2J/a3wWQJgMpdv9kJ4VbvevMZkRJ3JOElFL bHbf0OYfZcT/J45Onr0/Ek/I71/GmeMTgdOud+7gqS0okmwke6vK5Tn1xf0kiRwMCuYQ fkj3t6oIoQt12SFCig6misrSqHNyxBH9K5j6OZ9Jnqjs5g2UIgy+skmRyK17+QKFTzMA N2/zZ9Ox3HTkcC+AZnC3mCen+cfjTMwjhOXkDJOkMrginnCtYsXiuXJZko35J2UFb73+ J5qA== X-Forwarded-Encrypted: i=1; AHgh+RoZxY7oUnHJNoE4/efDsqqa6QZNu/rVS5NGVmqTQXqdPt5YvFocBXCt07Yh7XvHtOswJV5qU0DPnJru5NA=@vger.kernel.org X-Gm-Message-State: AFuF++mGuTROJw/xP1K/aYOpV6NtbgaAPRc3YSe1gnW+GPzE3aPSBONU WMPj6GH7LA87yao/UWUcThLVcHcM9YCLfvBQtk5iDEODEp1sM17rmn8qv9XzwPbtza10O1nK9+h RTIstxVONj4YJITldwVzhIgfTpXDM8JP85UobFHzNpp5AncrAe+xDrLIeubrOI3sesCY= X-Gm-Gg: AR+sD11RY8HkAPEVjEW6oJZl70eccKPJ5SjWOMY5Ii9UaZujmzJZtMcNGjF3/smm4/b jcozz9j4oLghM/cg/Bvi9svSCWdo66poBUc7O7kG3/3FKxLl65hMqDsQiTeQ2x4SjG8HicWrLi3 Ovm8GPGNgWQXsx6pFXNpHWanfqHbwGJ4RkZB92qHLbXh6PPnEtIjhAkKBt+PLWKEBSiFoyOl3Bf A/uhFDCJulUGLsJHAM0zeC7qnwzMbQ97P4Mfuf9Osdx84n+v36PA7bk8zrY8FiQF8bMohj1MqvD 448OBL4iVjwjgZYXcwz/WkkHExbvS7TpjlYEmiGFtIdvm2id7MJPNxzfUMmTwceD/7bJbVHYU7C +ZOyYBGkRBYmqf5vkirImZRyBBXQg+t21wQ== X-Received: by 2002:a17:90b:17c2:b0:396:b918:c2a with SMTP id 98e67ed59e1d1-396d0faa459mr1359104a91.12.1787853636369; Thu, 27 Aug 2026 11:00:36 -0700 (PDT) X-Received: by 2002:a17:90b:17c2:b0:396:b918:c2a with SMTP id 98e67ed59e1d1-396d0faa459mr1358225a91.12.1787853632427; Thu, 27 Aug 2026 11:00:32 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a905cf38sm27437523c88.12.2026.08.27.11.00.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 11:00:32 -0700 (PDT) From: Praveen Talari Date: Thu, 27 Aug 2026 23:29:26 +0530 Subject: [PATCH v2 9/9] i2c: qcom-geni: Use geni_se_set_rate() for setting source clock frequency 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: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-9-091697dbeb02@oss.qualcomm.com> References: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> In-Reply-To: <20260827-derive_clk_perf_tbl_from_perf_domain_opp_table-v2-0-091697dbeb02@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: mukesh.savaliya@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787853566; l=3297; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=NjCwN+DsAYC8C+NrLmOLrNQM+M1WYqvKKDKj63mj+98=; b=it9A0O4HyitFGzlN8icAAHt99GLQ4iEQWhvQvTQy1VFytbLLTb33k1x+gZt/2GLUyQamW0TmR qBFXMl3rJimAGo0vjRZviG9h3ZLpZX8wqYXM1VWD6awoH4nAqu23Rlb X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-GUID: kmWkmYsiC9LgF4u0CxURJikrVF_T3mX1 X-Proofpoint-Spam-Info: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX/KE3EdMOMJda QrVwpxU7/qEfNLW8nh0czDBeS6ucWdUV9Ptf+UnsSPWiHzG43NJ8ndIW6wrtNbuH5zy9sEdLtnH BDFFfWUn9ZcobnP78VMJPIY4QjSBMoI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI3MDE1MSBTYWx0ZWRfX/GISumzVA44Z Sz9iOJL6h41sFoqYYNDuw4dPiiHp1BYl3g1bhvPf1CxJb4GHyxpg5HK/tU2T4O89zcXJdfrz5Z7 oPCCu4SFPh5oRcuCWoBZNgVkU8CuqIUNtq8DOmQjGhAbl7WEy99aclwjDEP0KGc5pZhyjTOuRnG +QDCyG5chbYLQ06+2jtVktfiNdpawWrgVpysjPyBqQ6c2J8YE5VtXIV/RRad3KYXSpsu72r+Mbk xhmpPhcZstuVR+qo43jqA8v7z/5l9DJhAZAombgbYseCI4GpsD0/J8QJ1vasMHkL7WzegXpfQYN 48VvC275RxWiTsKEKxmaKSqnHNNhsbbXvYhjyIWHeY9LGJeofFafzHIfxkZm3PB+jZklVDfXlKb ZhHefgu+4lrVYwIvDCHACZC7JZOmGl+y1FRzmhCPhyL03nltxGI9g7UNhDDz38oXkxOcmYRpk9Q MAtreXOEQHo/2QhDGVA== X-Proofpoint-ORIG-GUID: kmWkmYsiC9LgF4u0CxURJikrVF_T3mX1 X-Authority-Analysis: v=2.4 cv=E8b9Y6dl c=1 sm=1 tr=0 ts=6a907b45 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=V8jFpX-JU2fdHFI84kkA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-27_07,2026-08-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608270151 GENI resource management may be handled either through the Linux clock framework or a firmware-managed performance domain. Source clock programming currently depends on platform-specific callbacks. Use geni_se_set_rate() for source clock programming and perform the source clock configuration from qcom_geni_i2c_conf(), allowing the GENI core to abstract the underlying resource-management mechanism from the I2C driver. This removes the need for platform-specific rate-setting callbacks and enables a common code path across all GENI I2C platforms. Signed-off-by: Praveen Talari --- drivers/i2c/busses/i2c-qcom-geni.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index 0b178701e1d1..deb0d822290c 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -219,14 +218,14 @@ static int geni_i2c_clk_map_idx(struct geni_i2c_dev *= gi2c) return -EINVAL; } =20 -static int qcom_geni_i2c_conf(struct geni_se *se, unsigned long freq) +static int qcom_geni_i2c_conf(struct geni_se *se) { struct geni_i2c_dev *gi2c =3D dev_get_drvdata(se->dev); const struct geni_i2c_clk_fld *itr =3D gi2c->clk_fld; u32 val; int ret; =20 - ret =3D dev_pm_opp_set_rate(se->dev, itr->src_clk_freq); + ret =3D geni_se_set_rate(&gi2c->se, itr->src_clk_freq); if (ret) return ret; =20 @@ -985,7 +984,7 @@ static int geni_i2c_xfer(struct i2c_adapter *adap, return ret; } =20 - ret =3D gi2c->dev_data->set_rate(&gi2c->se, gi2c->clk_freq_out); + ret =3D qcom_geni_i2c_conf(&gi2c->se); if (ret) return ret; =20 @@ -1228,7 +1227,7 @@ static int __maybe_unused geni_i2c_runtime_suspend(st= ruct device *dev) } } =20 - dev_pm_opp_set_rate(dev, 0); + geni_se_set_rate(&gi2c->se, 0); =20 return 0; } @@ -1239,7 +1238,7 @@ static int __maybe_unused geni_i2c_runtime_resume(str= uct device *dev) struct geni_i2c_dev *gi2c =3D dev_get_drvdata(dev); =20 if (gi2c->clk_fld && gi2c->clk_fld->src_clk_freq) { - ret =3D dev_pm_opp_set_rate(dev, gi2c->clk_fld->src_clk_freq); + ret =3D geni_se_set_rate(&gi2c->se, gi2c->clk_fld->src_clk_freq); if (ret) return ret; } @@ -1290,7 +1289,6 @@ static const struct dev_pm_ops geni_i2c_pm_ops =3D { =20 static const struct geni_i2c_desc geni_i2c =3D { .resources_init =3D geni_se_resources_init, - .set_rate =3D qcom_geni_i2c_conf, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, }; @@ -1299,14 +1297,12 @@ static const struct geni_i2c_desc i2c_master_hub = =3D { .no_dma_support =3D true, .tx_fifo_depth =3D 16, .resources_init =3D geni_se_resources_init, - .set_rate =3D qcom_geni_i2c_conf, .power_on =3D geni_se_resources_activate, .power_off =3D geni_se_resources_deactivate, }; =20 static const struct geni_i2c_desc sa8255p_geni_i2c =3D { .resources_init =3D geni_se_domain_attach, - .set_rate =3D geni_se_set_perf_opp, }; =20 #ifdef CONFIG_ACPI --=20 2.34.1