From nobody Thu Apr 2 09:34:02 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 D5A563E9594 for ; Fri, 27 Feb 2026 06:17:14 +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=1772173036; cv=none; b=j1p3H+zVvHiCht5EIHzeTsN/xWm7vR+I587IFYYROg4CX+ywiQDdiXSizgX45A2k/jLICdui6b6wjIBZ/VplrdV6EnYXctF5861GT5q/WcCKFaWy7eXJm6wfbQUtJvVubZsaEuYd6ZnFRAp+MezmMxRk/dIa9lAftP0k+kiuexY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772173036; c=relaxed/simple; bh=Cy0n1JMcshW/tt8MYoyLcvBwcTixFL9leAwlKd2BDy8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aROYsb06BoDlUoJzxEjHBJf6vtI/8Gt1OHqjsS0Rpdf4Rj0nE0UkCGxgyznDRPS0uCAvmQ3u9KdeThh1dxXpb05LjuUmGFHJUoKyt2j0kYo2xCdOI4vIyW36Z/KHQ+/FE1l59yvFk8l/PawwqUChCeyFuv05NyyaKvp4rkqzobA= 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=EGrJ03eG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NPdlrQ26; 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="EGrJ03eG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NPdlrQ26" 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 61R2JwUI3747005 for ; Fri, 27 Feb 2026 06:17:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=uk/dtu6n7L5 B614MlsUj2gA0vvgJ0BV4B7ONL7wOcl4=; b=EGrJ03eGg/r2nGiXyK6X0dAVPgg p3leuIOW/zV2g3hziQ7XotBqroAqgNGhPZrSjNrQHRBzFyF6skEDL32tc0TA8aaM cu5xB0VUZ+COUhOcIhqWhsmwruusqGYGCc0t3EN0z4I6KZMovYX63axPbHe0aYwG EKp0YycoOgdumeZhHvgMQ7Yc2D04NcD8Y+YLXyIGZ+KnCPkqpBIvFW0AmvDoYsEP XEBHq/60rXm5eZ6BktYnmRM1ZXG/yLTHMjV3nFbGaQB4bYnD9T/Yl5+lCcw0jIde +9w6WbN4/0nvSx91eR+OeKFQJDgBRQOvLoToWMXgselg/p1CiMw+rzWRRaA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cjuur1tt6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 06:17:13 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2add1118c19so10532975ad.2 for ; Thu, 26 Feb 2026 22:17:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772173032; x=1772777832; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uk/dtu6n7L5B614MlsUj2gA0vvgJ0BV4B7ONL7wOcl4=; b=NPdlrQ26gGbwpMHIjBVdOKpnHcdhiUnc2kpmFOUt/uHEuLm6ZqU5yeKr8GRvD6LZha YohQpYqwiXT5sNJTolKBTIXMxugBD+v7YWdhlhUlAi+mgbePaN3WHjEGTz7m4CUTfvUH GPlvgeftjNEfNgB8YSP4VLxE5eNsCxcmwAH77pt+Gjwy8Q4EISzhGW5n0KZEBUrGetAc 9M+sALeAEyciKdkTjT1Lvyu6pWn8Fw8VQqzcD0SAyD237fXn7vhWCFrsOYBKcWeF1xHz SjsmiaWAKCr9u0VGVXeQoSXouQCvMo449yXt7MdcdYHUef9W7VrYN1DThSnbOOoDKkZv a1Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772173032; x=1772777832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uk/dtu6n7L5B614MlsUj2gA0vvgJ0BV4B7ONL7wOcl4=; b=Er2Ljl30rHuWvopL7hWOqqZ1K971wzHSbD1Nnhla3B91gWvtuPliwK6Fcd8RiYnViG sBtpWDprJsfdEEIK2N0UvGfeRiFoOn25hhK1pFB6w/I7n2yQX6nPbsIcDBDkV20Kc9zs Elxu0YAKH3uZNqh+V1WvZ+ugdUDKwmdWcQPq88B3QUAvlo/1TVKZvN0n4QAIazOrgoQB mTSTlvLyeLvhMz3DxSZ9cyrNsHRieBsFdNLBf1zhefKcOUjijiDCNtH3QYXb/z/KzXB8 0DvHtmMS6Hb5ZL85WMaPu6yYOmAx9iUOwk8cnsC3Xq0RqmWeo4ghCn1dJC8HqEWl+L/n noMQ== X-Forwarded-Encrypted: i=1; AJvYcCVqCuXi3XAkaSna1LMfcO7z7yGgjIW/7nijEgVPVpass9+RCA1LlLijTSALERVcCBRG7GZNt5Bre6hI7sU=@vger.kernel.org X-Gm-Message-State: AOJu0YxaT1d5e0rGTboHRVrGaXdnHVhU9mOqo+Qauty73B0ESuH7C7h6 /teL6h1iUC46swnDt7ZanjZV1tWHVFlQcB1XbcUvh9QHPsuHMZ3HEmiCmGdTjNFhlE7xVe+KUAA nd6634pJQg3SU63mZ1uqD7itio3hFwc+OmDk710k8jxjuun73hWWPf3iUE3AsgJaxPzo= X-Gm-Gg: ATEYQzxS1uM/NeOx6iGuuv1XETpWspLIhPIyx8rHJBz3iOj2P5l48fqtI4iiwWdRv/1 8/Q2cJ4e9ArXINbZzygZLZYb6QN9yXRVi+So35WttNa0SSixCaP76w6A3YdEk4arOA3E0wy9SnL 0xAQmjwLwLDd0tQs65C/9QsrDosClajZlZLpZAxDaVOjgSP62Eu/206zEvRsYxbSw3C6n6dcQfp O01jf0tB3TkbGgDduaU7M4c5n9O4dsJee9/mz7PFOxGmSMfBIbM/tAehIBuFDOS/hcJYhh1ANo5 XVm9jvpMZwJox4/l2TYvd6s5zt8GoNPUd6NTTAr6s7NGKLHMNpOWohTZlVcLl9Gx7C2ElPAXvW7 ZRkuULsRMNezDOB5FR6lOIkoHuBcSQ6TqetE/mBw8DI9Q7VcI8RewwpI= X-Received: by 2002:a17:902:e891:b0:2ad:bdc4:c39a with SMTP id d9443c01a7336-2ae2e4b0921mr16507655ad.30.1772173031975; Thu, 26 Feb 2026 22:17:11 -0800 (PST) X-Received: by 2002:a17:902:e891:b0:2ad:bdc4:c39a with SMTP id d9443c01a7336-2ae2e4b0921mr16507025ad.30.1772173031005; Thu, 26 Feb 2026 22:17:11 -0800 (PST) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2adfb6a043dsm64813025ad.54.2026.02.26.22.17.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 22:17:10 -0800 (PST) From: Praveen Talari To: Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mukesh Kumar Savaliya , Viken Dadhaniya , Bjorn Andersson , Konrad Dybcio , Praveen Talari , linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bjorn.andersson@oss.qualcomm.com, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: prasad.sodagudi@oss.qualcomm.com, aniket.randive@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, jyothi.seerapu@oss.qualcomm.com, chiluka.harish@oss.qualcomm.com Subject: [PATCH v6 11/13] i2c: qcom-geni: Use resources helper APIs in runtime PM functions Date: Fri, 27 Feb 2026 11:45:42 +0530 Message-Id: <20260227061544.1785978-12-praveen.talari@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260227061544.1785978-1-praveen.talari@oss.qualcomm.com> References: <20260227061544.1785978-1-praveen.talari@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: nucclgSxKhrU7eXyb2DtBurDkr9fnkFj X-Authority-Analysis: v=2.4 cv=PN8COPqC c=1 sm=1 tr=0 ts=69a136e9 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=3PeDo36KSfG0vlEF63sA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDA1MCBTYWx0ZWRfXzI6K574A+Tf9 nJbXFNLHk0s/jJWOtd1Ly5e5yJ2GGyLNOlJBTqg4/P/nX6DGvqcMgUvK0tTzM6GagKaj37S68VN 3T+/Rx2SQBnvB6pwRqAySFENN4uq58oyEh5IE13T7HB4X18AlOtJx0Wu9JPxQYAq2r9o58vboli DeVzcXiCKvubqOxvHaYGIMeX8F+rnDSXNTzHndkE5bZmOu3+3VQpjIlK5UivjCfguOl4FtlH5xU IyGlu53y1BOjDTwh6CFPsHFAT7ErFANEy37WNMg2ZrYF7bgV1lDlAHc+n9UeFkzhV70oZvEkqoJ 365W2z8xzbtyeQYxHl0Cssjx94tOs92Lf5IUnXOzPDen6IQFIq7qE+nFuI2jZLHDCioWv3UOvVG jxQu2cpCP+riHet3vqZ4vKBm0h4mXh3BUeRhrLvzXzKLGVHRpDTb5ZdH0fOjmYMBvHl3dn3Q/LA MLE80ZOdWUjzwIFpS4g== X-Proofpoint-ORIG-GUID: nucclgSxKhrU7eXyb2DtBurDkr9fnkFj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_01,2026-02-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270050 Content-Type: text/plain; charset="utf-8" To manage GENI serial engine resources during runtime power management, drivers currently need to call functions for ICC, clock, and SE resource operations in both suspend and resume paths, resulting in code duplication across drivers. The new geni_se_resources_activate() and geni_se_resources_deactivate() helper APIs addresses this issue by providing a streamlined method to enable or disable all resources based, thereby eliminating redundancy across drivers. Acked-by: Viken Dadhaniya Reviewed-by: Konrad Dybcio Signed-off-by: Praveen Talari --- v5->v6: Konrad: - Updated last return value as "0". - Added Reviewed-by v3->v4: - Added Acked-by tag. v1->v2: Bjorn: - Remove geni_se_resources_state() API. - Used geni_se_resources_activate() and geni_se_resources_deactivate() to enable/disable resources. --- drivers/i2c/busses/i2c-qcom-geni.c | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index a67634ca0c7c..0ea4abbcd170 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -1160,18 +1160,15 @@ static int __maybe_unused geni_i2c_runtime_suspend(= struct device *dev) struct geni_i2c_dev *gi2c =3D dev_get_drvdata(dev); =20 disable_irq(gi2c->irq); - ret =3D geni_se_resources_off(&gi2c->se); + + ret =3D geni_se_resources_deactivate(&gi2c->se); if (ret) { enable_irq(gi2c->irq); return ret; - - } else { - gi2c->suspended =3D 1; } =20 - clk_disable_unprepare(gi2c->se.core_clk); - - return geni_icc_disable(&gi2c->se); + gi2c->suspended =3D 1; + return 0; } =20 static int __maybe_unused geni_i2c_runtime_resume(struct device *dev) @@ -1179,29 +1176,14 @@ static int __maybe_unused geni_i2c_runtime_resume(s= truct device *dev) int ret; struct geni_i2c_dev *gi2c =3D dev_get_drvdata(dev); =20 - ret =3D geni_icc_enable(&gi2c->se); + ret =3D geni_se_resources_activate(&gi2c->se); if (ret) return ret; =20 - ret =3D clk_prepare_enable(gi2c->se.core_clk); - if (ret) - goto out_icc_disable; - - ret =3D geni_se_resources_on(&gi2c->se); - if (ret) - goto out_clk_disable; - enable_irq(gi2c->irq); gi2c->suspended =3D 0; =20 return 0; - -out_clk_disable: - clk_disable_unprepare(gi2c->se.core_clk); -out_icc_disable: - geni_icc_disable(&gi2c->se); - - return ret; } =20 static int __maybe_unused geni_i2c_suspend_noirq(struct device *dev) --=20 2.34.1