From nobody Sat Jul 25 02:13:30 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 79377401A27 for ; Mon, 20 Jul 2026 15:37:23 +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=1784561845; cv=none; b=R0AppX04uoz6hkycZIlhBzaFx/JfEk76RUBoTVZ8fkJ/tOBAw+Ai/+KfHCyG/xTF2C3WiogbjfQiiX6JqqX7oY8lOeeQXf+KkQKuFkAJujjPvJhZtrzJbBSrhZeQz52ctJGP/VvFiVOq3QDQvamADputqeRQlQ27mlqpff8sKxc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784561845; c=relaxed/simple; bh=ETMJ6aJUjQDC/YVIh0I4Vf8wferbQVh2mtgDYw8tyfI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lbCeXrRuUGLQPLbkFXogH6Q++zsw2nEHFWylN22rTfdJne91Kwzvtb28EWf48vv2TM5vLzz3ipiTZyQoiFFbNHsuh8sKERGey6Zw9EjGlPl5mKPRkZUyrjU+v34S6wY7Lk/IhFYdcghxLsGffTcmlA+tQ2bFm/j0hQqDbPW4QIU= 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=ipSiQkGM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IDl4gxVL; 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="ipSiQkGM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IDl4gxVL" 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 66KFLSvQ2957716 for ; Mon, 20 Jul 2026 15:37:22 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= Zt4rjJh0Mr/fd1Jmxd+h3Cy43pcxP7RnHzW6QwphjHA=; b=ipSiQkGMB8uT7Q4J agNdYf0/hXgoXHNPVd6QxvV9Y/o5j+mJNxJC0X/nTmiQ5jQZHzwR3XN19B63bcZb THK/Ng7KQZQUXqUgRR96qj6qbfZjUYBMEDHQLS5EwWE+gkxILSfeAYA6aH2IUMJK dODwpbhLE5/EnDTeHW9t6zkW5Q6x2GrQCcbg4OWYy7x34PyuMb+n8UbJU5x+zpKw Jble9j+dZHSQhXEtd6zeSWZizau9ox5vRZKUCXxbTFfm/fpESVINp3N+Byqab4KE asCQoI/BSPUPxQA7V/D8x2Yus9u0Ty0tiQZDvowxvGvSQUopZJpzOqLqdBDyP2M7 KZHAgQ== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhk2f918u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 15:37:21 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c9c26587e67so4335005a12.0 for ; Mon, 20 Jul 2026 08:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784561841; x=1785166641; 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=Zt4rjJh0Mr/fd1Jmxd+h3Cy43pcxP7RnHzW6QwphjHA=; b=IDl4gxVL1SjYDUsB2eauldQ9UyMTc+KbXRNtUM44KrvQkHPuuJ88WfY3HXnur5Y39u Qonipr8oCM+TQy8ZHl9ygMqyVK8pqS/XBQjzSvNXaH6+EFOs0hi0hI+oM5bj07Opd7Ps 4DfcDK8saHJFioNYJsnC4vp4PURHgzJY2VOyGamLyJFwKu0PrxBaNhxfa7QQ4R7lO4D0 gspnOhsC3Z5nWzSW2/vD/AHTIMJ7a7rzNfFLxsldIOfyxLB76A/VDEjsc5BYwu1NmO9D d+Y1V7Ay8iRHWd/jzYDKSbf0hQdX07Ht27x6yqTv13zXWFao/U2/5TR/E37byrx9/0NS 7dEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784561841; x=1785166641; 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=Zt4rjJh0Mr/fd1Jmxd+h3Cy43pcxP7RnHzW6QwphjHA=; b=TRE7WqjIBdLci9aWblyOZqAhGtS6eiUCEjRegt601OzirA01wkWZ/p6zNQc2fqEDfR w6uzQXaZYzctq1Y65GRtx4RQg4tzPynCwKFIbf07ghW85EttWG7kXeNx95lwN4OZqtk8 H8JjVGx40V/iNuTdtvRtvRV/WqdB77X3EFOAfR4oFEoSmYUHjEaf+YDlnayCfViU1ozo VWhCn/ASxqCKtLOVsH+5T0lajNnun3R81ysKklJR0e/KSa5LEXfOdr/OtVc/unCpEkaS PH4yApZbqHEpI5JD4rOa5ciZBRuXId2qb+VIIFiUVUeVVlEpVLT7a0RhZE2ONLCJYKLH BiBg== X-Forwarded-Encrypted: i=1; AHgh+RptSMdGEu5yvu7mVj4BbZb3sIgzastHyBQFKkFSVJ5pCIb/Wy1Adt5j04vz8O9NSHv5FyA9WH9ZSO7jkeg=@vger.kernel.org X-Gm-Message-State: AOJu0YwxIPZrZAkSkCUEevuQkn1o9s1IYS0+Q2EmhafYSW8JApNzCX0e +AV74XD4Sxmt9sHLDXkik8Yv6o/FV50JCUUQ6MhETHHvTdxPMS6kCyTEqSJAvQJnCgLZDE8Bjc+ DYmvKTsmKmy+m/FuMIwahmdESLHaVrRLe5RM5tZiPKEblzoLQFh+fC13G7x7V3+ZUb92d51D7f8 Y= X-Gm-Gg: AfdE7cmoshigUfUGQIQhTGb6uh/9snVJb13HdvKCTkZuCbMPi+dGZM6M2tPEpby2HYo 11kGkxnn3M+ipCjrE8UkgGbWcKgNCgUCcPv3egtNj0nwa8lOu7RF1sL7bYiwzkyC2XB0OZsxgHk ZWsxOyhnxz+6kdw2MvyuM5m9TpuP8VqE95nFuwPEbDTF6S3YvHeP+ZHx+dRrrVxQEb4vTR/lTdO 0GfE+P1C0vQmXUQHupDMsQk+cXk2B/u2lNk2inNA9WRYYj4GSFuQIHfF33/qUcZUVt9LYT+Qo6q 1vcoiEEF0u9Da97i+mwyqsTnyQRDZk3gQaACX4vkOz56kiy1K2KZsdWUvmcofqLoIwXHYeVfHPw 0WFvGDt5/s/R+pa3wWpM/CcgQIGmJpQ== X-Received: by 2002:a05:6a20:93a1:b0:3a2:c9a1:2c26 with SMTP id adf61e73a8af0-3c38d8cffe2mr20870491637.7.1784561840825; Mon, 20 Jul 2026 08:37:20 -0700 (PDT) X-Received: by 2002:a05:6a20:93a1:b0:3a2:c9a1:2c26 with SMTP id adf61e73a8af0-3c38d8cffe2mr20870450637.7.1784561840272; Mon, 20 Jul 2026 08:37:20 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31429cf22b3sm38572824eec.0.2026.07.20.08.37.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 08:37:19 -0700 (PDT) From: Kamal Wadhwa Date: Mon, 20 Jul 2026 21:06:38 +0530 Subject: [PATCH v5 1/4] soc: qcom: rpmh: Add support to read back resource settings 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: <20260720-b4-read-rpmh-v5-v5-1-cb93fb95f565@oss.qualcomm.com> References: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> In-Reply-To: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: Kamal Wadhwa , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Maulik Shah , Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784561832; l=7518; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=qXqGyOeLWQGaBEmgdBm09rvUYbv256ay6Gp1qlrL2is=; b=6ul/ktN9Prl8u5PIImBi705mcNY4nnFZWSGcRTGElrIVGRRufutuFCuRllUCF9MapIDEIgq96 G2CFTS4d4scC24rHqTj6norLmSpjUIsTTwVgArb+r62QiQdW1k1Loav X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-ORIG-GUID: DTjjxcbImCL0-bcrQsxo97337xtTmitv X-Authority-Analysis: v=2.4 cv=X8xi7mTe c=1 sm=1 tr=0 ts=6a5e40b2 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=RgaPuue0vXMEEcOqpiYA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfXx5VJReEcWywh aW9h4L7BdtaiXKLFhmAyKyAOQB+VgKT57OF+aHOA6WYSluZX57v7DdOuSpl9DBfFWaG/Z/lavuy JSsGqLWnWkGCYzPgJiCavGkSTbC6Aks= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX+Tm6FGL/BrVy 1ADE27D2QzANcgRoezGGZMoZ4DWxQ5zuCMsRHTeKzRkZd8/yJ75I4d7eNN5FLCIwWVc99ZAHV+Y ZCydAnN9OD5STaANyRym0bw8NFMCYPnOoZy6OtMidb/yqKqmPTLnenI4dvQzWoCrDLsFKhCYRHw ym+Dr0ovDKFDiGqKEwQ3mmiL+OXclQUYvMHWlxFr8BfM7qeOU5h9bCDkCEvnWJc0h6igIrYaBb1 XSlbJTaj8bs5a0vBLocwDbl6ZauyMS0K2pOLiiOXabT/R3m+7jyh/GWZAgXVwoBbcX5okJk+PsT kivb3WdlxjjX8D7Lbkd9RHfPbqVHUHcWZRPtkCmQdJhvSHCWXjWsxSlGyo+9FW+l0b6D6aIk7Yo QVvZO+cKGz7BpuBonChL3CfxSdNxPpGuzfWMDbrQCFBpAw3fQDYoBOwUNrP7QmQ9z98BN+V6ZuZ 0b9+LcLGQTTuxuLtKeA== X-Proofpoint-GUID: DTjjxcbImCL0-bcrQsxo97337xtTmitv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_03,2026-07-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1015 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607200174 From: Maulik Shah All rpmh_*() APIs so far have supported placing votes for various resource settings but the H/W also have option to read resource settings. Add new rpmh_read() API to allow clients to read back resource setting from H/W. This will be useful for clients like regulators, which currently don't have a way to know the settings applied during bootloader stage. Reviewed-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov Signed-off-by: Maulik Shah Signed-off-by: Kamal Wadhwa --- drivers/soc/qcom/rpmh-rsc.c | 13 +++++++++++-- drivers/soc/qcom/rpmh.c | 47 +++++++++++++++++++++++++++++++++++++++++= ---- include/soc/qcom/rpmh.h | 5 +++++ include/soc/qcom/tcs.h | 2 ++ 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c index c6f7d5c9c493..ec85c457ea45 100644 --- a/drivers/soc/qcom/rpmh-rsc.c +++ b/drivers/soc/qcom/rpmh-rsc.c @@ -443,6 +443,7 @@ static irqreturn_t tcs_tx_done(int irq, void *p) int i; unsigned long irq_status; const struct tcs_request *req; + u32 reg; =20 irq_status =3D readl_relaxed(drv->tcs_base + drv->regs[RSC_DRV_IRQ_STATUS= ]); =20 @@ -453,6 +454,11 @@ static irqreturn_t tcs_tx_done(int irq, void *p) =20 trace_rpmh_tx_done(drv, i, req); =20 + if (req->is_read) { + reg =3D drv->regs[RSC_DRV_CMD_RESP_DATA]; + req->cmds[0].data =3D read_tcs_reg(drv, reg, i); + } + /* Clear AMC trigger & enable modes and * disable interrupt for this TCS */ @@ -493,13 +499,15 @@ static void __tcs_buffer_write(struct rsc_drv *drv, i= nt tcs_id, int cmd_id, const struct tcs_request *msg) { u32 msgid; - u32 cmd_msgid =3D CMD_MSGID_LEN | CMD_MSGID_WRITE; + u32 cmd_msgid =3D CMD_MSGID_LEN; u32 cmd_enable =3D 0; struct tcs_cmd *cmd; int i, j; =20 /* Convert all commands to RR when the request has wait_for_compl set */ cmd_msgid |=3D msg->wait_for_compl ? CMD_MSGID_RESP_REQ : 0; + if (!msg->is_read) + cmd_msgid |=3D CMD_MSGID_WRITE; =20 for (i =3D 0, j =3D cmd_id; i < msg->num_cmds; i++, j++) { cmd =3D &msg->cmds[i]; @@ -513,7 +521,8 @@ static void __tcs_buffer_write(struct rsc_drv *drv, int= tcs_id, int cmd_id, =20 write_tcs_cmd(drv, drv->regs[RSC_DRV_CMD_MSGID], tcs_id, j, msgid); write_tcs_cmd(drv, drv->regs[RSC_DRV_CMD_ADDR], tcs_id, j, cmd->addr); - write_tcs_cmd(drv, drv->regs[RSC_DRV_CMD_DATA], tcs_id, j, cmd->data); + if (!msg->is_read) + write_tcs_cmd(drv, drv->regs[RSC_DRV_CMD_DATA], tcs_id, j, cmd->data); trace_rpmh_send_msg(drv, tcs_id, msg->state, j, msgid, cmd); } =20 diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c index ca37da3dc2b1..f881c4c757ec 100644 --- a/drivers/soc/qcom/rpmh.c +++ b/drivers/soc/qcom/rpmh.c @@ -175,6 +175,9 @@ static int __rpmh_write(const struct device *dev, enum = rpmh_state state, struct cache_req *req; int i; =20 + if (rpm_msg->msg.is_read) + goto send_data; + /* Cache the request in our store and link the payload */ for (i =3D 0; i < rpm_msg->msg.num_cmds; i++) { req =3D cache_rpm_request(ctrlr, state, &rpm_msg->msg.cmds[i]); @@ -182,6 +185,7 @@ static int __rpmh_write(const struct device *dev, enum = rpmh_state state, return PTR_ERR(req); } =20 +send_data: if (state =3D=3D RPMH_ACTIVE_ONLY_STATE) { ret =3D rpmh_rsc_send_data(ctrlr_to_drv(ctrlr), &rpm_msg->msg); } else { @@ -194,7 +198,7 @@ static int __rpmh_write(const struct device *dev, enum = rpmh_state state, } =20 static int __fill_rpmh_msg(struct rpmh_request *req, enum rpmh_state state, - const struct tcs_cmd *cmd, u32 n) + const struct tcs_cmd *cmd, u32 n, bool is_read) { if (!cmd || !n || n > MAX_RPMH_PAYLOAD) return -EINVAL; @@ -204,10 +208,45 @@ static int __fill_rpmh_msg(struct rpmh_request *req, = enum rpmh_state state, req->msg.state =3D state; req->msg.cmds =3D req->cmd; req->msg.num_cmds =3D n; + req->msg.is_read =3D is_read; =20 return 0; } =20 +/** + * rpmh_read: Read a resource value + * + * @dev: The device making the request + * @cmd: The payload having address of resource to read + * + * Reads the value for the resource address given in tcs_cmd->addr + * and returns the tcs_cmd->data filled with same. + * + * Context: May sleep. Do not call from atomic contexts. + * + * Return: 0 on success, negative errno on failure + */ +int rpmh_read(const struct device *dev, struct tcs_cmd *cmd) +{ + DECLARE_COMPLETION_ONSTACK(compl); + DEFINE_RPMH_MSG_ONSTACK(dev, RPMH_ACTIVE_ONLY_STATE, &compl, rpm_msg); + int ret; + + ret =3D __fill_rpmh_msg(&rpm_msg, RPMH_ACTIVE_ONLY_STATE, cmd, 1, true); + if (ret) + return ret; + + ret =3D __rpmh_write(dev, RPMH_ACTIVE_ONLY_STATE, &rpm_msg); + if (ret) + return ret; + + ret =3D wait_for_completion_timeout(&compl, RPMH_TIMEOUT_MS); + cmd[0].data =3D rpm_msg.cmd[0].data; + + return (ret > 0) ? 0 : -ETIMEDOUT; +} +EXPORT_SYMBOL_GPL(rpmh_read); + /** * rpmh_write_async: Write a set of RPMH commands * @@ -230,7 +269,7 @@ int rpmh_write_async(const struct device *dev, enum rpm= h_state state, return -ENOMEM; rpm_msg->needs_free =3D true; =20 - ret =3D __fill_rpmh_msg(rpm_msg, state, cmd, n); + ret =3D __fill_rpmh_msg(rpm_msg, state, cmd, n, false); if (ret) { kfree(rpm_msg); return ret; @@ -257,7 +296,7 @@ int rpmh_write(const struct device *dev, enum rpmh_stat= e state, DEFINE_RPMH_MSG_ONSTACK(dev, state, &compl, rpm_msg); int ret; =20 - ret =3D __fill_rpmh_msg(&rpm_msg, state, cmd, n); + ret =3D __fill_rpmh_msg(&rpm_msg, state, cmd, n, false); if (ret) return ret; =20 @@ -352,7 +391,7 @@ int rpmh_write_batch(const struct device *dev, enum rpm= h_state state, rpm_msgs =3D req->rpm_msgs; =20 for (i =3D 0; i < count; i++) { - __fill_rpmh_msg(rpm_msgs + i, state, cmd, n[i]); + __fill_rpmh_msg(rpm_msgs + i, state, cmd, n[i], false); cmd +=3D n[i]; } =20 diff --git a/include/soc/qcom/rpmh.h b/include/soc/qcom/rpmh.h index bdbee1a97d36..14ecbf242b6b 100644 --- a/include/soc/qcom/rpmh.h +++ b/include/soc/qcom/rpmh.h @@ -11,6 +11,8 @@ =20 =20 #if IS_ENABLED(CONFIG_QCOM_RPMH) +int rpmh_read(const struct device *dev, struct tcs_cmd *cmd); + int rpmh_write(const struct device *dev, enum rpmh_state state, const struct tcs_cmd *cmd, u32 n); =20 @@ -24,6 +26,9 @@ void rpmh_invalidate(const struct device *dev); =20 #else =20 +static inline int rpmh_read(const struct device *dev, struct tcs_cmd *cmd) +{ return -ENODEV; } + static inline int rpmh_write(const struct device *dev, enum rpmh_state sta= te, const struct tcs_cmd *cmd, u32 n) { return -ENODEV; } diff --git a/include/soc/qcom/tcs.h b/include/soc/qcom/tcs.h index cff67ce25488..45b8513be2f9 100644 --- a/include/soc/qcom/tcs.h +++ b/include/soc/qcom/tcs.h @@ -51,6 +51,7 @@ struct tcs_cmd { * struct tcs_request: A set of tcs_cmds sent together in a TCS * * @state: state for the request. + * @is_read: set for read only requests * @wait_for_compl: wait until we get a response from the h/w accelerator * (same as setting cmd->wait for all commands in the req= uest) * @num_cmds: the number of @cmds in this request @@ -58,6 +59,7 @@ struct tcs_cmd { */ struct tcs_request { enum rpmh_state state; + bool is_read; u32 wait_for_compl; u32 num_cmds; struct tcs_cmd *cmds; --=20 2.43.0 From nobody Sat Jul 25 02:13:30 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 0746440B381 for ; Mon, 20 Jul 2026 15:37:27 +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=1784561849; cv=none; b=FF+YEUya8nuzVnj0Bl4Wb0rj+yLcUsDXAdzgndtelPEynwo1USSO08tcZKhaTK4uZNWreCIkHLZYLRaB1NaFLaTEYjmikwR11/SA3ikavQVrHdgqgRrO5Acq8UDnsB3VdK5J/b+3w1vZnWzm+1QAulLCmipBtmzifQsGcFjzeRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784561849; c=relaxed/simple; bh=GyeeFMzv3svicQKUiZtWEfryK8EEAEfIq1rrZuVTlRk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OrIJ/Oyf125TTnug97oP8EmskOqT7PqwMrgN7dNDqIP/k0l3Ny7R8wI5or4yUKUyIcrABuyf7rUJo5c4DzoaT+AeQuUTFO01+w4TbBrA7VbuXfGUUY4+i8vNattuPd9/aW38jXkuukqVpUHyaDn67+g8FWDE2O/+aZ1NpEuu2GI= 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=RP2IY5fy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=O8GmSCIH; 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="RP2IY5fy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="O8GmSCIH" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66KFLqvB3018990 for ; Mon, 20 Jul 2026 15:37:26 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= s+OoXSRKnm336YYjxQK273iUKtlXI+xsznHIMq6fieY=; b=RP2IY5fyHaKAp80G VLwOTExgzucfB9LhK0UoJK34UgEoadELpeE+owpkFXPc9bMY0kPCb6IJh5agyOtU EBBAhR+6gnMkFD5oqcgAi1AIWiZOwCks+iwTqV8LJ6OsnfNIe476QGsNrG2C2/x5 0OcZXgYxqdPj+Lf9ItLIe133Qhj9e/l5xlnhsKEYvmDqAtSRnvcMbhiUq2Tv6KXX G+Bi9zFQd0rdw8msZpOI5AJqyc3/kQbR/tIVlc1Nv2HFBgWypjMa4Id9MLMlnPfp 0Z9hTyWmOqS3pwOnamd4vPzKmXeZbRPyFCV9UOprdQiSRzZrtTDlapyW4me/nciU lBcKKg== 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 4fhgre9qb2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 15:37:26 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cc88e22f92so220882605ad.1 for ; Mon, 20 Jul 2026 08:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784561846; x=1785166646; 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=s+OoXSRKnm336YYjxQK273iUKtlXI+xsznHIMq6fieY=; b=O8GmSCIHJXktZ3qf/uJxwrnHM68Wo1HljKM8eiXAX2PBOFL+l3gHuay2qCQP2X94je yj9+k8DlXQDHWVVZoTNtw66nSqwvGflNEBodhZ6qCkb6itjZKneUBOP+tqmNwF3U5LXT 36eI+0WRdwHvOuZ+VEgVbiKyeX4aGiKFD3XOLzJbwjXWDygkuKrxSkjvtUxTCe7z90EP WM8NDcOhxzcLbTYZxv9sxOR19l/hiif+AhGHpWnhio03yBHt7OPygIQDXHJgGPad/uaG +hKB/ZP5xsbmtQ7jV7uzR+C6Xd6AcpLkTo8iU8Bh/5VNMNmHCkh0n4tI+X7F1HIL9EGo LpnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784561846; x=1785166646; 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=s+OoXSRKnm336YYjxQK273iUKtlXI+xsznHIMq6fieY=; b=mAH/sQ9VgLCBFLNFe4edmf2nxXRgXUiGgtGPGle1AbF8FZpd+fwxxSDyYZuIyocpvT 80PgHG8X5YODy5qPV6/K084zjOFFxrTurPs2asQStRomRI2wVlFvMIoF8ztEvRHarnst /uUJjYoOkTYEMIsrQ/s+QltM7q03naGTACHu4yXYhE2LSe8E5EsvuCefzA75QH0rnYam 48mq8J9QHxEWpdJBHiy0htHm9UGQPSP2q1UfTWGYEPdY04hWmxbtg0RLtyy70PKrfKRq J5IETiBSUtTaCwFbfBOFEA70/Rj0HoEcbchI7odC/jO1ujWb5rJhYa7T7bnkPy+1GPgR kIeQ== X-Forwarded-Encrypted: i=1; AHgh+RpOuVCGrfY8e49CtIX16vF5eEVE85TFTFVz4dBK7lpvb7FGN9QunFQoYZ4MU/Rz2oW8h4H1w07T2ju1wXo=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/qNUz9RAsSb3XU2eyzd4uC6NsBiQi6L6CFFxWqCHbqhHxf+lQ qAhMW4t7dSbQQsFnO1C2d+8eevtfy2797G2rey595CR7RLeW02AQS8hvA6axMnI0SGZttyPgICu 4f0qeZVYkY7yjkLze859jufAMOgC+qr2awG9ekqSovrZhNTkgREz8zSmtD8udQBFrfdM= X-Gm-Gg: AR+sD12v3xVrJF1Y0xnA66wUqtfjE9m4Xy7M1lPslFgO2FqIfsMMKFmRJJtWZOWEKfJ gX6qfP7mVdPM8HvXRgZ+rw8K2SOnWfSxsx0ZAYLm7nWDKGSx5eaxhm/pockfZOycKkDExCxzge4 lgYVikd0+d6RtO4qwCNBrgQohUY3VaMlyGvOyYwMBas7XkeG3pq062gEu2rUlDjsBgPKTRH8wGG v/NgaXZQ8jlvKOsiXhuFPYEKRviOV+V+t7euee0pHengjZnEQOOb6HmHHHhBM9PY2F0mkqGg+F6 DB+HnOfdV0wjSDc4f+EmjFGn5fag4vBn1ffQwkS0nu7KSg8I00MaLmJ0uv81c4/hR5le8yuZa3m GySzjJWha47FtPNcjmsKk8Yxd7yZpnw== X-Received: by 2002:a17:902:da88:b0:2ce:7563:70a5 with SMTP id d9443c01a7336-2cf3484ea61mr166751085ad.6.1784561845468; Mon, 20 Jul 2026 08:37:25 -0700 (PDT) X-Received: by 2002:a17:902:da88:b0:2ce:7563:70a5 with SMTP id d9443c01a7336-2cf3484ea61mr166750185ad.6.1784561844023; Mon, 20 Jul 2026 08:37:24 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31429cf22b3sm38572824eec.0.2026.07.20.08.37.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 08:37:23 -0700 (PDT) From: Kamal Wadhwa Date: Mon, 20 Jul 2026 21:06:39 +0530 Subject: [PATCH v5 2/4] regulator: qcom-rpmh: Fix PMIC5 BOB bypass mode handling 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: <20260720-b4-read-rpmh-v5-v5-2-cb93fb95f565@oss.qualcomm.com> References: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> In-Reply-To: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: Kamal Wadhwa , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov , Konrad Dybcio X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784561832; l=2563; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=GyeeFMzv3svicQKUiZtWEfryK8EEAEfIq1rrZuVTlRk=; b=N0iiMLND25DXfG7oMvfrzn536H1Ed+m30bkTDCYC/xNyyFNG+iVFN63m1k9hIfUvq6ultPYm/ 1AOBjMG1bh4ABkSE9DB3wES+KMEyXn9hm+Dt0EXJPYoYHNguvhDlSsW X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX1PnQWr/oIJtl +oeggQsghqALtVjHZRlegNnk1LOPn/y9iCL7G++PKqomD/ZzFlMpKUnZYTHRPqbaVDYGi5tTiOZ 2+s97fagv8IsElL+cjoVVeowcjbj0yk= X-Proofpoint-GUID: IHmxR-RMIA40DcfDtGaIwmyDWREWkr-D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX4begA5SLX3rw 9yQyUE8nbMLSRPQ8DcD/QQrK2jfFXVEjJNeOiMNXjO+AUb9WejfHRM2mJTX0ZdgOBvpJh0xOL+0 I9Jdo58yqwKrWExSyBihSDhleUPHSwAOvPfdXOs9xkTY4G6imDbs9XSNcfoY5TTw0MYq+ASF/Ro J47F79XsRFfnSHU/8fqkLR/yOi/uyBwhgaRz8MzvEalvyvWzmr1GCUJu0OOi6UMsQDVULcdKsXA ycyJI1q1HGkvHL4OOJ/MH6luqgzEGYj+CmyqHIohJwrhpcDH3q3jagOV9DLih1iZfmvAhdAQ+LJ 69hHlKrCfAd0Kc4j/RZ1rjJoW1O04xcJDYoCQWSEhWy7RtRK+Sz3svYz2bkNRCjp2vm3oX7b2mJ u/4SBksM2dn4MauPtLLcR6fQAEQlWw8SNceiPPb6fu8TH4+RNSzUhD1VMLFSuLLqVE1p9nfVtOR Q3n+gOxIn1pLARI3+0Q== X-Proofpoint-ORIG-GUID: IHmxR-RMIA40DcfDtGaIwmyDWREWkr-D X-Authority-Analysis: v=2.4 cv=foLsol4f c=1 sm=1 tr=0 ts=6a5e40b6 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=kIXBIbc_WAS2GchaIWAA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_03,2026-07-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 clxscore=1011 lowpriorityscore=0 bulkscore=0 malwarescore=0 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607200174 Currently, when `rpmh_regulator_set_mode_bypass()` helper function is called to set bypass mode, it sends PMIC4's BOB bypass mode value for even if its a PMIC5 BOB. To fix this, introduce new hw_data parameter`pmic_bypass_mode` to store bypass mode value. Use it to send correct PMIC bypass mode value that corresponds to PMIC4/5 BOB regulators from the helper function. Fixes: 610f29e5cc0e8d58 ("regulator: qcom-rpmh: Update PMIC modes for PMIC5= ") Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Signed-off-by: Kamal Wadhwa --- drivers/regulator/qcom-rpmh-regulator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qc= om-rpmh-regulator.c index 756a4201225e..c47dc9f92279 100644 --- a/drivers/regulator/qcom-rpmh-regulator.c +++ b/drivers/regulator/qcom-rpmh-regulator.c @@ -111,6 +111,7 @@ static const struct resource_name_formats vreg_rsc_name= _lookup[NUM_REGULATOR_TYP * @hpm_min_load_uA: Minimum load current in microamps that requires * high power mode (HPM) operation. This is used * for LDO hardware type regulators only. + * @pmic_bypass_mode: The PMIC bypass mode value. * @pmic_mode_map: Array indexed by regulator framework mode * containing PMIC hardware modes. Must be large * enough to index all framework modes supported @@ -125,6 +126,7 @@ struct rpmh_vreg_hw_data { int n_linear_ranges; int n_voltages; int hpm_min_load_uA; + int pmic_bypass_mode; const int *pmic_mode_map; unsigned int (*of_map_mode)(unsigned int mode); }; @@ -311,7 +313,7 @@ static int rpmh_regulator_vrm_set_mode_bypass(struct rp= mh_vreg *vreg, return pmic_mode; =20 if (bypassed) - cmd.data =3D PMIC4_BOB_MODE_PASS; + cmd.data =3D vreg->hw_data->pmic_bypass_mode; else cmd.data =3D pmic_mode; =20 @@ -767,6 +769,7 @@ static const struct rpmh_vreg_hw_data pmic4_bob =3D { }, .n_linear_ranges =3D 1, .n_voltages =3D 84, + .pmic_bypass_mode =3D PMIC4_BOB_MODE_PASS, .pmic_mode_map =3D pmic_mode_map_pmic4_bob, .of_map_mode =3D rpmh_regulator_pmic4_bob_of_map_mode, }; @@ -975,6 +978,7 @@ static const struct rpmh_vreg_hw_data pmic5_bob =3D { }, .n_linear_ranges =3D 1, .n_voltages =3D 32, + .pmic_bypass_mode =3D PMIC5_BOB_MODE_PASS, .pmic_mode_map =3D pmic_mode_map_pmic5_bob, .of_map_mode =3D rpmh_regulator_pmic4_bob_of_map_mode, }; --=20 2.43.0 From nobody Sat Jul 25 02:13:30 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 93D0C412BFE for ; Mon, 20 Jul 2026 15:37:31 +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=1784561854; cv=none; b=r6+MgOuuXyFYx6OVnW2rjO+jBtBLt7aBJqKnw9xRKQX7W5hziC2qjELbUVuwZw72i9jzu1T6xMH8yFaiMkHgX6MHuwzK0owtS8ad2SutMvY6nXRuteuQvSKZB7pbck0m9+DqdCM5AZ08MhjI6xbsMMBetOrAdYq0vUYPcSo433A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784561854; c=relaxed/simple; bh=LDV/7ZZjELHLmEvMXWv/iTwNwGbpfh6h+meYtaQ+ZRA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o+JAhLZ7hqVZDY2m0b+nDJ88/a9YWGyxd+3DyKqhUx3eQ5nStfs7eLFbdKIOtXS8sVY63gRMUCeubIqwd40AQo61TA1c5RRyHYKIq5Qv32cYg2j+vf86gCawOleWtHu8PWIc7kGy/8hzCApRUDzdenRpA9SBo7k5SgQLP5qDxZ0= 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=i1WbS9KD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=H7HWk/GV; 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="i1WbS9KD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="H7HWk/GV" 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 66KFLpUJ3086158 for ; Mon, 20 Jul 2026 15:37:30 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= 8VmVZ61RHHStejQPEUBpRnq7JV+D2OKXHPHl5T5rsqM=; b=i1WbS9KDyuSh/09v hSVrE2E9yV++Hqz4aNhdor/uStMKGNqtehgcmuBdarQSDPhBhWFBQl+7PdxzAPtl uV95bR5HFOFWgt3/17LD2SE7bhz7qlvJj3soSrKdSg4cQrw4DpWhSOCRkM1g80Cp vb1u5fNA3uOR34oVtfac+9dkfoTXCI1tjuJCYVrOpcYuuJorFFH2F7JYO6/asGiX GaNzvtXkpkElsKP8u9M7nhWGu2G9sVEas/kILK8lxMQeA4JFudmznDlZAgU9f5j6 zF3Rxa8na7avxNtsmviv28I/mEccvJC3gi9IcyGlxFI66nqBtLXB3aZ8VD6PoMfh 0Qc2gg== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhf0kt6qn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 15:37:30 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-84a251c2e3eso4223722b3a.1 for ; Mon, 20 Jul 2026 08:37:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784561849; x=1785166649; 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=8VmVZ61RHHStejQPEUBpRnq7JV+D2OKXHPHl5T5rsqM=; b=H7HWk/GV1HOAkMNPj+IqbZqRIzD9eurNwAs7gaVthOxOx7WPVYnHq75X3ILdNxtGz1 mA/T5+jVKWIr53q6sjcZ+DZE9hB4aC25ZAT7o9qc6/AldKO/gtBI3bEToGIUKLpd9xzJ s7UBOIrhxz7JxoETaD9HN+uRqsabMMvjYcobdJvzYNXSlbQCOBlOVLG2V7D86cUGmtLS Xp6MsHjp9y4PYIc9lS/BNzX6rGEC9eSx2TPmMpFl61u6E6iMDokB5ixKRD/w2EaLOA+z TX2IIywIlXoR+r86T4KpQ3qG6rKZJUE0G1G9qsv9PkgmiutzZVfb4inJIwy/Bq9hOLMU dV3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784561849; x=1785166649; 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=8VmVZ61RHHStejQPEUBpRnq7JV+D2OKXHPHl5T5rsqM=; b=pEJpoS0dmM/QaqFvWPPoljuhocBTNYg42MHn4Z4bR/KLZPBk87Is73GPMfJm6D+wCJ 7DAa1zgJFEX9DwR9WoJaWnn/5wGqSmQjM6sBbsuMePvhVlaCLZxqpCWgYMiYCHXTkcNC LENaX1nobPDmCF+1neCF/L0+Q0IHVy8g2YJ2ADr/EUFGW/v8e+OlqhR3UhFX5osdeI7E kG8jE5kzHXXFwiQi4jSkQ6I9N+Q/p3bWCYTk+eBEk+0Mq6kEPiA+67j2XqNKWNqnAYmU I6HwxTdX81RskVhljnje5L24MJfgbMF2X2bX1+Wt70R1WKeI59XSzxXLwZ64ip/MLi/N dY+g== X-Forwarded-Encrypted: i=1; AHgh+Rq2U1gLKbzzVPspNf2gNovRseb8D1FdHWQshYhOV/YaJeCXbcNMpJ1ZaECPaPL9l9NzQIwALTVHUovfZ8U=@vger.kernel.org X-Gm-Message-State: AOJu0YwK7ahep0LS6vPxhGhSZFbITnOXWolpVq0e+w0EpJ5I3kNJ/JcI 3vJZlDQulWHjJ4kZCwqWN3ecq2xIh3oKV/uLFe+lON1P6AXRuMe3rHkDBMYWaBvMj5fZWulFfFi lw1Q0RLD54spfVtWYmqGSTNBNmsA/VAs9K92nUiApLv6Nqp72SafETqIUdK1e3KlDUFQ= X-Gm-Gg: AfdE7cmbryGSQT2MU7a7KlZpzSJ4d6kcyfAHfszoAowXROfPZxeH1jwiwJMCLPer4n0 GtuR4HNd22SgvOs33g+nLJR5PzepZR7d6klXTXB42itXiIzEaZ15xINPHeSrBKb1Byv1x58IPU1 e+/dCpBCDuKPqVifNInWF9kY+2iLOpdwgEQBke4jb65h9kXmxQD/aOHldPSLHRDmRfmxP8UIkzY HHLxKYmJ7qloP67SG1GxOJypBlrlnrSgnOdTmeQGzwQa1fhrkQ6yUoazgRd+3hVmneiSWX7Iiqt J7xZu1wjyL64dRfKuNBz6L/qACYMeQmV/I1J8qyoFDV6G1arL2Wqu01cxilJM5dfzuT/PNmwUCs GBh7E3+Eyn0kpTeIgmPZvQO1wKHMV+A== X-Received: by 2002:a05:6a20:748e:b0:3bf:9bd9:cf60 with SMTP id adf61e73a8af0-3c38d8cf148mr19391989637.6.1784561848961; Mon, 20 Jul 2026 08:37:28 -0700 (PDT) X-Received: by 2002:a05:6a20:748e:b0:3bf:9bd9:cf60 with SMTP id adf61e73a8af0-3c38d8cf148mr19391943637.6.1784561848298; Mon, 20 Jul 2026 08:37:28 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31429cf22b3sm38572824eec.0.2026.07.20.08.37.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 08:37:27 -0700 (PDT) From: Kamal Wadhwa Date: Mon, 20 Jul 2026 21:06:40 +0530 Subject: [PATCH v5 3/4] regulator: qcom-rpmh: readback voltage/bypass/mode/status set during bootup 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: <20260720-b4-read-rpmh-v5-v5-3-cb93fb95f565@oss.qualcomm.com> References: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> In-Reply-To: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: Kamal Wadhwa , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784561832; l=9539; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=LDV/7ZZjELHLmEvMXWv/iTwNwGbpfh6h+meYtaQ+ZRA=; b=8B+Fnh6UTh9QYVSphjh53GC2HrFUKSu0kpDnQOiAz4I0bmUQt/HY06nd9EF+Vx7vqkSrJpxdH fN1NDncwXlVBnpWlaxz21PAFCE7vm+Y8SuqJpIm0LSJRG3XOM9Hc0PM X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-ORIG-GUID: tweWLBGr6SWDrfDIWxoOp26pZzbNs8Ld X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX0A1K2L+0hfbY NvXMJF+Mr38m2boNAxI5lT7Acg5++xqVYc7dG3TKHuWTmlByEc0bta+XcM0l5iVz8gSx1hqC1W/ TKvZCJ6G8QrX/cR86FubGU2MVeUCt3w= X-Authority-Analysis: v=2.4 cv=G58s1dk5 c=1 sm=1 tr=0 ts=6a5e40ba cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=IFsKEvjZkw_ifPfLhG8A:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX2UqWUH4x9RvB HcqspdB5QY5Ci4WgTb4pVVO2GRALfzHtdKk71f+nITpGHZ3dOuv2BH/xwLVwKN4TCsLyiRLKkMy Sv+U6LX/O/I6xqag3bcWiSAWZwjgB2DJ/5rGB2IH9h/vd5jNL1kgibsyEwfpF508vi/1UBw2MlI ugpuDIUxRwHIB2zo370gWYGPmgzOU4daiVydTAwhbLWKmXW9mdGjv+YIuWTQGL68XOzH8DND49+ pSWA+Q10Y1ItFJrNKlXY0rMfDdptzpkLjaCI9rQdVVtg4YYYHzp8RxYieqUSdnLFm5WmNbkwM8F vl14lQDwI490PgozDazM52YLQZTz61zM93aaKCJhmjcDZ9gcasdJJIDX+hPVlTDmZLSKRRMEPSS a4U6ZWLdR2FSkkRaWpevM3vaFgKKjeEdK2jxO8NlXvGGuVwh0NuFvxh8Odj6LNbFN1tSWKgVKGu FTqRNWbNdZtyvHB1VGQ== X-Proofpoint-GUID: tweWLBGr6SWDrfDIWxoOp26pZzbNs8Ld X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_03,2026-07-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1011 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 phishscore=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-2607200174 Currently, during regulator registration, regulator framework sends an unnecessary `min-microvolts` request for the rpmh-regulator device. This happens because in current design, we do not have a way to readback the voltage settings that was set during the bootloader stage. Fix this by using the rpmh_read() API to read the regulator voltage settings done during boot and make it available to regulator framework from the very first read after the bootup. Also use this API to read the status/mode/bypass settings as well. This will provide the regulator framework a sense of the initial settings done by bootloader and thus preventing any redundents writes for any setting post bootup incase the same setting was already applied during bootup. Signed-off-by: Kamal Wadhwa --- drivers/regulator/qcom-rpmh-regulator.c | 161 ++++++++++++++++++++++++++++= ++++ 1 file changed, 161 insertions(+) diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qc= om-rpmh-regulator.c index c47dc9f92279..56a51f8893b6 100644 --- a/drivers/regulator/qcom-rpmh-regulator.c +++ b/drivers/regulator/qcom-rpmh-regulator.c @@ -4,6 +4,7 @@ =20 #define pr_fmt(fmt) "%s: " fmt, __func__ =20 +#include #include #include #include @@ -61,8 +62,13 @@ static const struct resource_name_formats vreg_rsc_name_= lookup[NUM_REGULATOR_TYP }; =20 #define RPMH_REGULATOR_REG_VRM_VOLTAGE 0x0 +#define RPMH_REGULATOR_VOLTAGE_MASK GENMASK(12, 0) + #define RPMH_REGULATOR_REG_ENABLE 0x4 +#define RPMH_REGULATOR_ENABLE_MASK BIT(0) + #define RPMH_REGULATOR_REG_VRM_MODE 0x8 +#define RPMH_REGULATOR_MODE_MASK GENMASK(2, 0) =20 #define PMIC4_LDO_MODE_RETENTION 4 #define PMIC4_LDO_MODE_LPM 5 @@ -154,6 +160,7 @@ struct rpmh_vreg_hw_data { * @voltage_selector: Selector used for get_voltage_sel() and * set_voltage_sel() callbacks * @mode: RPMh VRM regulator current framework mode + * @status: RPMh VRM regulator current framework status */ struct rpmh_vreg { struct device *dev; @@ -166,6 +173,7 @@ struct rpmh_vreg { bool bypassed; int voltage_selector; unsigned int mode; + unsigned int status; }; =20 /** @@ -210,6 +218,16 @@ static int rpmh_regulator_send_request(struct rpmh_vre= g *vreg, return ret; } =20 +static void rpmh_vreg_update_status(struct rpmh_vreg *vreg) +{ + if (!vreg->enabled) + vreg->status =3D REGULATOR_STATUS_OFF; + else if (vreg->bypassed) + vreg->status =3D REGULATOR_STATUS_BYPASS; + else + vreg->status =3D regulator_mode_to_status(vreg->mode); +} + static int _rpmh_regulator_vrm_set_voltage_sel(struct regulator_dev *rdev, unsigned int selector, bool wait_for_ack) { @@ -248,9 +266,34 @@ static int rpmh_regulator_vrm_set_voltage_sel(struct r= egulator_dev *rdev, selector > vreg->voltage_selector); } =20 +static int _rpmh_regulator_vrm_get_voltage(struct regulator_dev *rdev, int= *uV) +{ + struct rpmh_vreg *vreg =3D rdev_get_drvdata(rdev); + struct tcs_cmd cmd =3D { + .addr =3D vreg->addr + RPMH_REGULATOR_REG_VRM_VOLTAGE, + }; + int ret; + + ret =3D rpmh_read(vreg->dev, &cmd); + if (!ret) + *uV =3D (cmd.data & RPMH_REGULATOR_VOLTAGE_MASK) * 1000; + else + dev_err(vreg->dev, "failed to read VOLTAGE ret =3D %d\n", ret); + + return ret; +} + static int rpmh_regulator_vrm_get_voltage_sel(struct regulator_dev *rdev) { struct rpmh_vreg *vreg =3D rdev_get_drvdata(rdev); + int ret, uV =3D 0; + + if (vreg->voltage_selector < 0) { + ret =3D _rpmh_regulator_vrm_get_voltage(rdev, &uV); + if (!ret && uV !=3D 0) + vreg->voltage_selector =3D regulator_map_voltage_linear_range(rdev, + uV, INT_MAX); + } =20 return vreg->voltage_selector; } @@ -284,6 +327,8 @@ static int rpmh_regulator_set_enable_state(struct regul= ator_dev *rdev, if (!ret) vreg->enabled =3D enable; =20 + rpmh_vreg_update_status(vreg); + return ret; } =20 @@ -333,9 +378,27 @@ static int rpmh_regulator_vrm_set_mode(struct regulato= r_dev *rdev, if (!ret) vreg->mode =3D mode; =20 + rpmh_vreg_update_status(vreg); + return ret; } =20 +static int rpmh_regulator_vrm_get_pmic_mode(struct rpmh_vreg *vreg, int *p= mic_mode) +{ + struct tcs_cmd cmd =3D { + .addr =3D vreg->addr + RPMH_REGULATOR_REG_VRM_MODE, + }; + int ret; + + ret =3D rpmh_read(vreg->dev, &cmd); + if (!ret) + *pmic_mode =3D cmd.data & RPMH_REGULATOR_MODE_MASK; + else + return -EINVAL; + + return 0; +} + static unsigned int rpmh_regulator_vrm_get_mode(struct regulator_dev *rdev) { struct rpmh_vreg *vreg =3D rdev_get_drvdata(rdev); @@ -343,6 +406,13 @@ static unsigned int rpmh_regulator_vrm_get_mode(struct= regulator_dev *rdev) return vreg->mode; } =20 +static int rpmh_regulator_vrm_get_status(struct regulator_dev *rdev) +{ + struct rpmh_vreg *vreg =3D rdev_get_drvdata(rdev); + + return vreg->status; +} + /** * rpmh_regulator_vrm_get_optimum_mode() - get the mode based on the load * @rdev: Regulator device pointer for the rpmh-regulator @@ -379,6 +449,8 @@ static int rpmh_regulator_vrm_set_bypass(struct regulat= or_dev *rdev, if (!ret) vreg->bypassed =3D enable; =20 + rpmh_vreg_update_status(vreg); + return ret; } =20 @@ -401,6 +473,7 @@ static const struct regulator_ops rpmh_regulator_vrm_op= s =3D { .list_voltage =3D regulator_list_voltage_linear_range, .set_mode =3D rpmh_regulator_vrm_set_mode, .get_mode =3D rpmh_regulator_vrm_get_mode, + .get_status =3D rpmh_regulator_vrm_get_status, }; =20 static const struct regulator_ops rpmh_regulator_vrm_drms_ops =3D { @@ -412,6 +485,7 @@ static const struct regulator_ops rpmh_regulator_vrm_dr= ms_ops =3D { .list_voltage =3D regulator_list_voltage_linear_range, .set_mode =3D rpmh_regulator_vrm_set_mode, .get_mode =3D rpmh_regulator_vrm_get_mode, + .get_status =3D rpmh_regulator_vrm_get_status, .get_optimum_mode =3D rpmh_regulator_vrm_get_optimum_mode, }; =20 @@ -424,6 +498,7 @@ static const struct regulator_ops rpmh_regulator_vrm_by= pass_ops =3D { .list_voltage =3D regulator_list_voltage_linear_range, .set_mode =3D rpmh_regulator_vrm_set_mode, .get_mode =3D rpmh_regulator_vrm_get_mode, + .get_status =3D rpmh_regulator_vrm_get_status, .set_bypass =3D rpmh_regulator_vrm_set_bypass, .get_bypass =3D rpmh_regulator_vrm_get_bypass, }; @@ -432,6 +507,7 @@ static const struct regulator_ops rpmh_regulator_xob_op= s =3D { .enable =3D rpmh_regulator_enable, .disable =3D rpmh_regulator_disable, .is_enabled =3D rpmh_regulator_is_enabled, + .get_status =3D rpmh_regulator_vrm_get_status, }; =20 /** @@ -540,6 +616,85 @@ static int rpmh_regulator_init_vreg(struct rpmh_vreg *= vreg, struct device *dev, return 0; } =20 +static int rpmh_regulator_determine_initial_status(struct rpmh_vreg *vreg) +{ + struct tcs_cmd cmd =3D { + .addr =3D vreg->addr + RPMH_REGULATOR_REG_ENABLE, + }; + int ret, pmic_mode, mode; + int sts; + + ret =3D rpmh_read(vreg->dev, &cmd); + if (ret) { + vreg->status =3D REGULATOR_STATUS_UNDEFINED; + dev_err(vreg->dev, "failed to read ENABLE status ret =3D %d\n", ret); + + return ret; + } + + sts =3D cmd.data & RPMH_REGULATOR_ENABLE_MASK; + if (!sts) { + vreg->status =3D REGULATOR_STATUS_OFF; + + return 0; + } + + if (vreg->hw_data->regulator_type =3D=3D XOB) { + vreg->status =3D REGULATOR_STATUS_ON; + + return 0; + } + + ret =3D rpmh_regulator_vrm_get_pmic_mode(vreg, &pmic_mode); + if (ret < 0) { + vreg->mode =3D REGULATOR_MODE_INVALID; + vreg->status =3D REGULATOR_STATUS_UNDEFINED; + dev_err(vreg->dev, "failed to read pmic_mode ret =3D %d\n", ret); + + return ret; + } + + /* + * NOTE: Since BOB4 BYPASS_MODE value =3D 0 we cannot confirm if that BOB + * regulator has been sent into bypass mode by bootloader or if bootloader + * just has not requested for any mode voting. Due this limitation, we + * must check if the read pmic_mode value is non-zero before comparing it + * to bypass mode value. This also is needed to avoid setting BYPASS stat= us + * for LDOs which dont support bypass mode, and have the pmic_bypass_mode + * uninitialized value as zero in the vreg hw data. For such cases assume + * lowest mode/status, if pmic_mode is zero, to allow for mode voting. + */ + if (!pmic_mode) { + for (mode =3D REGULATOR_MODE_STANDBY; mode > REGULATOR_MODE_INVALID; mod= e >>=3D 1) { + if (vreg->hw_data->pmic_mode_map[mode] >=3D 0) { + vreg->mode =3D mode; + break; + } + } + + vreg->status =3D regulator_mode_to_status(vreg->mode); + + return 0; + } + + if (vreg->hw_data->pmic_bypass_mode =3D=3D pmic_mode) { + vreg->bypassed =3D true; + vreg->status =3D REGULATOR_STATUS_BYPASS; + + return 0; + } + + for (mode =3D REGULATOR_MODE_STANDBY; mode > REGULATOR_MODE_INVALID; mode= >>=3D 1) { + if (pmic_mode =3D=3D vreg->hw_data->pmic_mode_map[mode]) { + vreg->mode =3D mode; + vreg->status =3D regulator_mode_to_status(vreg->mode); + break; + } + } + + return 0; +} + static const int pmic_mode_map_pmic4_ldo[REGULATOR_MODE_STANDBY + 1] =3D { [REGULATOR_MODE_INVALID] =3D -EINVAL, [REGULATOR_MODE_STANDBY] =3D PMIC4_LDO_MODE_RETENTION, @@ -1838,6 +1993,12 @@ static int rpmh_regulator_probe(struct platform_devi= ce *pdev) vreg_data); if (ret < 0) return ret; + + ret =3D rpmh_regulator_determine_initial_status(vreg); + if (ret < 0) + dev_err(dev, "failed to read initial status for %s\n", + vreg->rdesc.name); + } =20 return 0; --=20 2.43.0 From nobody Sat Jul 25 02:13:30 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 76F6540E8E3 for ; Mon, 20 Jul 2026 15:37:34 +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=1784561855; cv=none; b=sR0sH3iBgt2mBGvinPmkmQkpcoaJYgqlM2spI5uUR0vdWdIvHZOf+bAXgOOP274B/570GY5bNQCM2wU3atb2Q48cI0YzTybZMlx7UOojoG/IC0fFt+HpQE1YHxngnWB3VuzTbnCtwYfQGvDyqa8siq4KeaWzRvG8qtSe9LaJL8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784561855; c=relaxed/simple; bh=M+cOvocJ8K5dmYoG9bsRGxaN5PNHj3usbZfHoWLjrwk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SXV/8V5IRz+8iwfLfGt8Xbus20VafsqLdrwko3W/CcDopg7elL49OwhiOnltZI+0OaAaQsPPgyVS72jeLpY9KJ5RX+HLTPq1CQBlfgygM/C6nzWwxnCaFh2V7ruIIfNEpY3DEH4A8fk4qoOkUVjALgMBVtal2bsHpsiS/at4a9Y= 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=dstzQmkT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LlUXiJXu; 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="dstzQmkT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LlUXiJXu" 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 66KFLXcJ2957824 for ; Mon, 20 Jul 2026 15:37:33 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= xXyCNJJhao0kgWF8vvBz98GHDz2GruhfMdt7aLZC6YU=; b=dstzQmkTX2D9Hqiu MKFYxcHQf6JuVFsXrGZkbfuNVQKhN097em3CW25Y59m+Fgx+jVhxThjEIZ++kuxb vVLE9IVQPAcB7n783g/G+TNd/VEytvyHRGaIMwirP23v+t3gXxGRFD7RBpjD1rN/ 3Ahjz9MA2brui2cud1dOSEcbmzi6Wsvle3ZCdQmn9LZuWfY/ORBVuzmEzBfasZoO ml/LHbDhtaV251u6B9pqg0inHf/aZYLi9o8/+qN8isK1RKXFqza5GjhBZ43cDZud Y2Q+WbVm94L5jT90exGIoyMNSZ2cPkS1jbuJ7OhQze4GEHBlDUXPNH888iQm9iMe vDfhDw== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhk2f919u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 15:37:33 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c9151bf6ce7so11215949a12.3 for ; Mon, 20 Jul 2026 08:37:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784561852; x=1785166652; 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=xXyCNJJhao0kgWF8vvBz98GHDz2GruhfMdt7aLZC6YU=; b=LlUXiJXumxxYEOIBs18t4aUb6ppiCiD6OUaLZa8w7fxiVGKeESM3DJHwf//KkfI+Sv onrG9hldDYw2b6I2oD2Ebp8KdLD/u7tA1Fxl8lXQn5HDI3vkZXTBufy4bmsZjXOIYdhM 4ybpz9vA9Jgj8CaeCZiOeoKt9jAv+AbEjRRnPr8lD6fzDHvgf5NfT77l7Qpk7TeWFJ9t kMBE8SwDjrETBjebWIbJdwBWJpV0k/6xa+Q1MAnUEWAeQh2o4WKLNdySEn8Z5HJ4vNJT MvJ9ZMLnuDFArWZ6GY5HjG9c80kfS/jQK216JsTTl2Y1IgxnQptv2PGrkvagM7yfmZ1P honw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784561852; x=1785166652; 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=xXyCNJJhao0kgWF8vvBz98GHDz2GruhfMdt7aLZC6YU=; b=RhNWRUJwDBFpi9jMMyzE7YW5s0rKNahIqY8F5VFJWJ9GPqEkD0rEzYK4Gd3sCkiBH/ MRU2KU1MS02vdTXiwbR5TBrf7OKeRBAJT77LasznXAu+LImsj3Dt4vh9vKMLYnp7cusl 69/qilGbmW/CO1LP8Luuw7zYhI22+3CM+A4pwVG66iwiS7uz0nzMP2VnNEMsuq37o32S kp9sGaFKtxi7PG0Zj4Yy26omlc/mm6kSasinxSjt+lsOxJpQTC4sOqKaJcFzoeUdh7uY QTc+2XUzt+5e2/lnu82uj8JoyT5oOmM3ygIE6QPiGGakRKdqmikPNekeEwRFVgg6hg2D zvFw== X-Forwarded-Encrypted: i=1; AHgh+RrTwq0r8229/dBkB5LPf78B2Uzjux/OXj47bE756DwQoqVPfjlELheaY00XjnIRlGqONz+2tFutksHTFXY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4LPTGHohP5UsJuP6DURplX15YTU9FTDKjbBpmVXPonNMqxTvN XVKF94IqOcdiLWqsrXtDAB1IINKO+tOeX+CZdqPu2S4x1WZGEjnHUlNXiZ4Sovh4y239tXmSdvJ 8we6uwmZycSgfPVN1IGbnpxlCSL3KY11VA+LBrBppIXUWzzS/0mORi/wkC63jmw7c6C4= X-Gm-Gg: AfdE7ckCm7nsqiyEPak+h3G3zlFaJF5JSBx7nq5MTTZn6+edqfV2jNVlT0NdfyZR+A7 LAH4zWKJSLflypnmFd7mNDfDdXmbvpQBa3D2XZfUKro5g8s85ZJEeknB13S4jYYwPotshvE8FO/ lKh5yh378VvBagQZdjkFr3ZL3q/6+vC9W2fBcjpjsIFkkz9nWQgMO3Jk3vTegk+PoxiFrLunxot vVTyeKB0RKhYrDFmwJ5xzNmF4WKYCoDEqKtH2pShpb59sB/iLEGE49scIvvFrpkVxixpYQJTx89 MMQNmkxXg9kJOkoc1Vrm4yn/2SXtfw69xVkC5Wt0p2s7YOKMTR6nFnzv2O6GYV9QUWvD52l+wwe gaHo6bk1eqvC7k9AdvzIfjiCcwuQ7Dw== X-Received: by 2002:a05:6a21:4a97:b0:3b4:8f18:33a with SMTP id adf61e73a8af0-3c3ad5d7a8dmr15764341637.1.1784561852275; Mon, 20 Jul 2026 08:37:32 -0700 (PDT) X-Received: by 2002:a05:6a21:4a97:b0:3b4:8f18:33a with SMTP id adf61e73a8af0-3c3ad5d7a8dmr15764299637.1.1784561851798; Mon, 20 Jul 2026 08:37:31 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31429cf22b3sm38572824eec.0.2026.07.20.08.37.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 08:37:31 -0700 (PDT) From: Kamal Wadhwa Date: Mon, 20 Jul 2026 21:06:41 +0530 Subject: [PATCH v5 4/4] regulator: qcom-rpmh: Fix coding style issues 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: <20260720-b4-read-rpmh-v5-v5-4-cb93fb95f565@oss.qualcomm.com> References: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> In-Reply-To: <20260720-b4-read-rpmh-v5-v5-0-cb93fb95f565@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: Kamal Wadhwa , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784561832; l=1010; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=M+cOvocJ8K5dmYoG9bsRGxaN5PNHj3usbZfHoWLjrwk=; b=9ZtWm+zMHbcTEslY/01MrX5TPH5A6EUzZkJnc3uGC1riw07p2w72+tlQWTMFLvYf76Knvuc6O S74B5o2u0gRC/Z54A160X/V7wHSx7iteb7h/vDblzXNIw6Qjsvoiazm X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-ORIG-GUID: Pr8SJU9pet90_R26PiWu-jwn-W0TYgRK X-Authority-Analysis: v=2.4 cv=X8xi7mTe c=1 sm=1 tr=0 ts=6a5e40bd cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=5CyPyIk1yY-pfn5d-v8A:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX4e58tGXFdmD7 lEiXwg54oY1P2hZKtUFpVIW2J9BgBmv6/hq60iJInpMDUvFmpZAPkICAXxwZG0qM6DLbMvPeboY Q9mx7Ha+5BrBdZd7tf0EggPeWDhM+Ds= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDE3NCBTYWx0ZWRfX0ojth8GbMYba nRaDGJ6MCSt1p5QgydLPg0VTwAfGJ4+D8xHytyneJpYRQivfIZnvNk0q7MopqaELu+h18yXTaZV mHMRcw1DT7F/jZvPGg5pXeKCKhepYHrLJ68QRfS0mvEuueiAwFBkwHFABtGxpcHFG7kg6Z0DLf2 x27u83TgjcFiGxftUrwSmWlxpI+7Ve0qseZiL8y2ntNhGUNeiH63POCwyZbg1usZEX6UU0Ltk5Q zYprI793GlUwPcUG9aKimKh0i+Ry3nWphbQb6RmK7+oCnTe2PNSRlqnMMoCO7RfD2sD3IZkUjpY f47nPWBVJHU3kREJ0ltHSYb2P2ZaTi94fa2NPUEnQ4H/AEhQ897UiTLq+HO8rW2mvsibEaAzlXP /kSoZ+U3BWqF1tD3vDrIHLDfRGYZ7WLVeyd4PBSL+d3uXPE6GIMbLlN9m9ofzF/oH7cyAMDx992 cZCBTZXpd/URNpKrHTw== X-Proofpoint-GUID: Pr8SJU9pet90_R26PiWu-jwn-W0TYgRK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_03,2026-07-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1015 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607200174 Fix the code style/format issues reported by checkpatch.pl script. Reviewed-by: Dmitry Baryshkov Signed-off-by: Kamal Wadhwa --- drivers/regulator/qcom-rpmh-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qc= om-rpmh-regulator.c index 56a51f8893b6..1845c865c735 100644 --- a/drivers/regulator/qcom-rpmh-regulator.c +++ b/drivers/regulator/qcom-rpmh-regulator.c @@ -110,7 +110,7 @@ static const struct resource_name_formats vreg_rsc_name= _lookup[NUM_REGULATOR_TYP * regulator * @ops: Pointer to regulator ops callback structure * @voltage_ranges: The possible ranges of voltages supported by this - * PMIC regulator type + * PMIC regulator type * @n_linear_ranges: Number of entries in voltage_ranges * @n_voltages: The number of unique voltage set points defined * by voltage_ranges --=20 2.43.0