From nobody Mon Jun 15 00:20:58 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 7D014339714 for ; Tue, 7 Apr 2026 04:43:43 +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=1775537025; cv=none; b=bKpKfh9fpC3wHF1J25RVDGNJp+1XAjhvjRiSb86rCve9l2W8R/61niMdR/9jQSbUy1z5SaQ9JnXkZluzJIOR8tvNY5fbEsjmpxfxX+pWTv1GTP59I/JvfEQMsbesFst0kWlRkQ2PHUtUA8eGeAjmHQR53K/KN0EctAiWP4uKKig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775537025; c=relaxed/simple; bh=21UOHw2FDKEN+NQXLQB0bKtW8K7sDULKYSr/W26DbLE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ff9UEfH/YJDIXhnTT7unMZyIfmItFDQMwJZ93xY3i25v3twFuFO3+J0lhH31Rj++aREbyZ5V4bfdvA8QYCYYUC0QDxVHZpNfLicmHtN+HyvN6ejltZMcS1tms2vzSMn/7pFSnuOYJDA7DWVwOLmLhYqtQQgrGpUjPoUwHverif8= 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=hfPczcsi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jowAfdip; 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="hfPczcsi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jowAfdip" 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 636LQfJ44008692 for ; Tue, 7 Apr 2026 04:43:42 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= d5wQ0jNKwTs0v9LfGYmAGw0dotNG//GXL5JPO5LvjF8=; b=hfPczcsii5WvHWyv PWiuGHCddGYuIXk6ktNy1zkkPkvPIEQRExsRZ4v8GiYOs5HP6eo+sjFQC7Fpcq6e uE0hTBjrD+8FD9h2DNYuTofND7BQanygv/rmDlHPIPOuPNOLfkNp/XE3oZ3fpBbw QImxC7OSEVyT4Y/6zNMITV3jJrnaY8Vq5cbr+0jcn/QFgrHX4Oakgg+6S3Q0T0Pi Qeioadww608jctcYOioy3YV+23GxR7EfsPpKmFR0vbh6+fSeeMJwG4av9V+sDT1m wtObmh/7bOi06y4BfIDmvRlnmzuOsuv/7hnG+k7G6Q/D7aAFo+CrC7uklMlxNvxg sRMKCw== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmrks19a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 04:43:42 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-82cf8dcd079so3298661b3a.1 for ; Mon, 06 Apr 2026 21:43:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775537021; x=1776141821; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=d5wQ0jNKwTs0v9LfGYmAGw0dotNG//GXL5JPO5LvjF8=; b=jowAfdipQuG+LDHDJfgMBtJPp4Z6AQDTiB+jLvtJ+JB+EbQTVwQM5NEvtWLd4QvOao 8WsNzHsxiD0VfbvRVt+e1XdnerTCIB62yAePD143huF3o+JSLA4NG1KXkeBOM8CE37p3 gT7rgEX0pBsE7vliT8jN+NNVclbMHK3qGvw9sB2kzt0LjUQgwkL2MdgXnlpuuaE8TrXG C6m5htgHedhMPSXV0zyAYyu76ADvPScdesmXOUCq4K15kETffwd9KntxXQbIjcOj888i g6oAOW3maVXW74klrIDCePoSL/86AnccljhKpmXPO+rHr8hteCxT40w2OoVFQ4oKFQ93 OORg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775537021; x=1776141821; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=d5wQ0jNKwTs0v9LfGYmAGw0dotNG//GXL5JPO5LvjF8=; b=KKA37FGe7gXNJACVRSmOfMTFGHnynLYyH1bQ6G2wUoBsWpZ78fX6Nt/nm8mmwVbDuR YOuxcPyr9eRnDaZmD9HCJxI4tA14/igu9cG6+WQdg86xMgAa6qZTOMIpxmgSYm9HQywZ nWC661atzJPdYe7iDrKPbWjKIetkkfKMz29zVjHP7pMc3HrHK8vdlCeot/yNabzhcEQT Bc4iy3caQelRAKwvh2UgItS7syaqRJ+7/P30AXmdrPhdU9eVvSxEFnbYhCGNfjaFHpKl pSMVWdeXdXoJ/Gcm3b1Ypbw+Z/JlAZf28UxeD7zzpYms3EerYEgVWKOIBWKsTn2s5RML SyXQ== X-Forwarded-Encrypted: i=1; AJvYcCXtPwNtqpCPwxJ7bSc2wZLLtttTFfqtyuyDbwhwls6ElChyQSeraHYHNMh0a3v4EIOVriyohdKlUKY20AU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3FmjRMvoFyzR+gXK05CWR8+fSy+GfFiaZP5r7xaamSZ/bFvvb p8PHO7qmpcRyqD28C4QUgxQRr1bD3qYbrMt0GMfCdsgSPZjLWj3w3urovGS5DXNlPQjMe6bh6px aXtcworqroOEHENFrYXHgKgXJ2zq5SztVrPvhrQYqbYHNTmboM5Kcyg6ewTMPr1VDAhE= X-Gm-Gg: AeBDiesDimmCQdIEwE2VVRHZ5Bf5GuIMw6jqlqmNctiWd4FZTR7ScCqZQxKtHwzaIvp UpM1W4pxE1yBiMw/EsHhiwhake5ufp0cMZ3GiCpDPPdMu9cfb19w1DnjGvOUtzBZA6Lp0dp16oi CIoR6lsoF4GKMS0IDeXIaTfvD358NsB2zhJ9p3cAzCqgMqAsZ1Fvo8oVXHVtteU01Au0vcCwpBH rCNEEXmrDd01K9YKRvImVKeNrRMesvWZiUBQNeUrN5kLkuR6AdJ1pnlvjlGoMVy89eT7t6rNa7R 50ZUUEv7MQ0T6EYIugh18XCDuOyAKjeJYbZ6gXr74JNfLFqGWeetGpjXcdGNQt2SZ0W9OEgIofv 3rBTDLL9OWfwi3W7GFyrbHh+SRHizWMFsg1XjFWAWikXfWFzo2gE= X-Received: by 2002:a05:6a00:1ad3:b0:82c:e5d0:5248 with SMTP id d2e1a72fcca58-82d0db53f0bmr13749227b3a.31.1775537021166; Mon, 06 Apr 2026 21:43:41 -0700 (PDT) X-Received: by 2002:a05:6a00:1ad3:b0:82c:e5d0:5248 with SMTP id d2e1a72fcca58-82d0db53f0bmr13749163b3a.31.1775537020564; Mon, 06 Apr 2026 21:43:40 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9c6ba2fsm16123299b3a.45.2026.04.06.21.43.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2026 21:43:40 -0700 (PDT) From: Kamal Wadhwa Date: Tue, 07 Apr 2026 10:13:29 +0530 Subject: [PATCH v3 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: <20260407-read-rpmh-v3-v3-1-34079f92691c@oss.qualcomm.com> References: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> In-Reply-To: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Kamal Wadhwa , Maulik Shah X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775537013; l=7614; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=qzVzmZ1EREIjmG4dbbMdDRDlit/vRooP9sfacElO0es=; b=dFnOPxqzhhYosJSn5DWzT4XFlXVQAoN2NTL939crRAQNdb4MQXntN+npmi3NhxKgioOOKk0Xv WgKfp1r2Dr0DImguPY5BNSc0gxwiceV18pkjfPPfNNu0fgmkQUA+DTa X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Authority-Analysis: v=2.4 cv=Rrz16imK c=1 sm=1 tr=0 ts=69d48b7e cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=RgaPuue0vXMEEcOqpiYA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-ORIG-GUID: u6oAIW4Q_3IsSxJino12m4kOFgqdm7Ux X-Proofpoint-GUID: u6oAIW4Q_3IsSxJino12m4kOFgqdm7Ux X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDA0MSBTYWx0ZWRfX84NNOeklygTz p/yWUll6fz02W+Te4nqi8nVlTHjLpSRy8PQZ16CvLmDKXP0bZjvzL+G4Lvv/ermHqQlKHkwah84 Tfn80ARXNkBK5/lrkI8GNgUAHFY589yUgFVx1QrxCn9C1MVSKQxN19AiBHKsZOl5icrEwzE97id fEAFUxRZWv3jCiOTXqjWpw7QbyUbQC62Bm1oyHPz7VcLX1t6C6j5fxuRtuJRWRe4dmNyXiGS4KX SrFMOk4f09bpNSWFhnfNHGIlp3DVmnpDvwOoowR5pgwCeKUFQ6iQqSk6p5ZQA69udwyEiZOfQW0 JQa32Mlzz5Ep9G/Xhoq/AZ+sK/xQ3slnOaKkfj3ln4/imuq7y1gHBEau87EuHFfyWnbuLn3aIZQ Duk3UEG7hpKNW6kZH56YNIks6os7G1uPetlY3JCTxkTCAm8kmVoHvGbkOXPZ+VhJ4TPS9PUEUQH V+hWmWpI9Jj2VRHuiFA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_02,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070041 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. Signed-off-by: Maulik Shah Signed-off-by: Kamal Wadhwa Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- 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 c6f7d5c9c493d9e06c048930b8a14a38660df4b1..ec85c457ea4527f94339c2033bf= cc12346e3c443 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 ca37da3dc2b148c76e50e25885bd85a0cb47c9b6..f881c4c757ec8302b09eabf2f18= bc79941a6f2c5 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 bdbee1a97d3685d8a6153d586ddf650bd3bd3dde..14ecbf242b6bd67c8167c176ed0= 970f42432f4f4 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 cff67ce25488e2d3603a7707af2ca77f8266a713..45b8513be2f9bb0957796476f60= 31146ee34e931 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.25.1 From nobody Mon Jun 15 00:20:58 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 D81E83370EC for ; Tue, 7 Apr 2026 04:43:45 +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=1775537027; cv=none; b=KqPIDOsypjHMm2EREqZC3YUGHBJpLBc0kbp7L919BKcZwZEUYggO9/Bg9uocEsS72h8m43GJpe+GBArakRlhTXXkEHNrhCEQPT0Xki5/W48+tstNiE7gR3FGj0N/SO3HkpUofZt9vhnL4n8RcH8uc6IG01Kj72OKtn99XJVIhAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775537027; c=relaxed/simple; bh=sL0AAcPy7viWgfA/9FLqMUV4KTxuU7dUv5w4fRLlIiw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IKYCvkF9r//Y6KDKNSzkOn4UkUbU6IozGirNKv8B5Y8Owd+GpZK3FvEv/QyCWWNgem4KzEdDztXLrV3YRLpLej0e6c4psKCcuAZZxZiw1keuasxyKowzBgRx+obb/e6R7OyyfhfGg/5/9QfHxdZzzbXf54UhmxBRewzV9tH0og8= 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=Toet7sZS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aE4nlGSj; 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="Toet7sZS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aE4nlGSj" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 636LQ6x03536836 for ; Tue, 7 Apr 2026 04:43:45 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= O3fRITYQAHKvF88MQ+Ws0Zlfylc75OFlgS1WmTi0q9E=; b=Toet7sZSwUu+9Wt5 1868Ty139sUSvpET9u2xLALthc7jRsG1DzdVOgFAGpUY3hqjbLD9NRDq8K4VL4jk jVUEIi89MAKTKTQ0wZAEhusx8T5HbJdY2QTGo1b8ROCiVQTBLKwnJ1Q01wOPc80V QMLQc+p/KNwpBzZqt+MlywJOSVR0fUjMK+riteCXqHVW8N5lrBXWM37OSdGJoOVK Zg4wlUzAGvI0XG+OcspcB6Io/3T59AFTDr7ZtoSgvq6w9AZUPOQHyEdzRYtUJOAi iqd9BHae7JVYAPl+iphreSQV6AUGjTK/DU6XkxpMOcX0my1nLfXhgsWLT7/nPkQH 6cd5kQ== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmra11sg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 04:43:45 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82a77f807e4so5925929b3a.3 for ; Mon, 06 Apr 2026 21:43:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775537024; x=1776141824; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=O3fRITYQAHKvF88MQ+Ws0Zlfylc75OFlgS1WmTi0q9E=; b=aE4nlGSjUf6MT+AR7A6HpLwQxeL7lCCt53iofC8fIj+jIZwFAMTPZMibsYXI/Qb5hE GG/yKTAW7EsePyGT5GVCPYTLX0JUdm1mwPL4ZDZpwzL951juMU9e6UJyg3WhIBdaKsH0 oVVPUtVbDE8cdfRPBrUA5+BXX+CrSm9AGd3y+6MNCXHKHJBOIhYkanVBZ1a69+qSJ9lu OIqzED7I+CNkULYEY0SPuR326ZxL+uyUolREM9izOtXizsQ6K/6TJDeJwsk8SRFlzeCw B3xOPNWEtqZsR4+tvug26ADmk+lfVmh34UyEo3lwuMp6N79ZY6gK0czNFEnqjwz1mSH1 BD0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775537024; x=1776141824; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=O3fRITYQAHKvF88MQ+Ws0Zlfylc75OFlgS1WmTi0q9E=; b=YRJyzd4OzWKxuYVFFiQRp2AEWgTnwfdi9zloblY+dYLk67XtPlj5TVF3Sl5qHEU5Bu lbpuvfzkYasgj9aY5dcixI1oY/ukoUyl5ufmO+QR3kPvwNVi4HlkstIu2oU/Ddf1zl/O Vt22NBhLgaKod7a5uQrzyX4IL1WiKTg/T4qw3dGv3jhDAQlZApuc4w1Bdm4kIH/grNgP 8vDbAzg6NXZ75+JBUhBF0fV+rOt0RCpV7npAt6WzmIWsbESpbu5n81lJtghSjqHxorf4 yApnAq8F3PjdPvrSsCqVhtrbhYVf/SMy4rtjHxMxmYwpUoATSTS81AWzVxmECkISVXTz 4NHA== X-Forwarded-Encrypted: i=1; AJvYcCUbAm7pk/D8U+LhTf+8MkyvWh5Xuaoqt+3WVOZYtLF9vF+CHDDdqBrZ3hB9vK75N6y4I9WVNBkYXtfgumI=@vger.kernel.org X-Gm-Message-State: AOJu0YwSNOLTSLjfiPxw1iYmNXRPT1zWmg6+drptO5Cf21qfZMJihwpy yFRLrvr3tp76yU1Wqpkyqnw14iphXE8pigowVFiAM1nPHgp5SgYIMGU0cgWhbrKoww8wmgFkyu6 VlhVqLz3YxVEPPmdz8XDC5+XI7TnUm+d0JoyXBqvJYmo0jStS+0mx3SYwd5aBxfqO3fs= X-Gm-Gg: AeBDieudTu70ifgYyQXsDL33uzii5eoDH7/pYZ034B2kz8i6ieD38lqAzHZgV1btaE7 NBs6uhss4DRMqSbVnXtwNSUFrSiEdZPnCNawrA6swHUlUTJ/xHM2VNP3XrhSAqVoEdLoy/HBRTD lc6gx3P5dNaoLUWjgRCQ9fWHE4VIR82x70sZy0rbt49IC/qCTjqqL25ZUtGvPRhGo7j5BNZHvwQ OwziMJGlcwcTZaMaXKN7pJW9Ovxbq0bzKY2RpNc7+V61Bca2O+e/+K9xmYtr79zBI/eOF32yKKQ zGnNvMAXYfB4ky/uhizOBskigUvfDYorDOsAM2Ek1/dd4c+7XVsbsawRe+Tqhh9fOtnnySXfVNQ +eZjSXYEnQwhTDEBcRRxHHbYwlqmT4SDfsH8UVATZJtNmaB08LoA= X-Received: by 2002:a05:6a00:1388:b0:82c:9c4f:da3 with SMTP id d2e1a72fcca58-82d0db5abefmr15433915b3a.31.1775537024427; Mon, 06 Apr 2026 21:43:44 -0700 (PDT) X-Received: by 2002:a05:6a00:1388:b0:82c:9c4f:da3 with SMTP id d2e1a72fcca58-82d0db5abefmr15433890b3a.31.1775537023903; Mon, 06 Apr 2026 21:43:43 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9c6ba2fsm16123299b3a.45.2026.04.06.21.43.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2026 21:43:43 -0700 (PDT) From: Kamal Wadhwa Date: Tue, 07 Apr 2026 10:13:30 +0530 Subject: [PATCH v3 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: <20260407-read-rpmh-v3-v3-2-34079f92691c@oss.qualcomm.com> References: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> In-Reply-To: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Kamal Wadhwa , Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775537013; l=2552; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=sL0AAcPy7viWgfA/9FLqMUV4KTxuU7dUv5w4fRLlIiw=; b=NIIGHNktix1DXynEvtU9KwCqHdjL3PptMxd2COJfS2yZEY3KV5TLIufXLLhtq83rTi3CqG5Mi zwUa6tBLRA7CBGVG6TuD+m+CYmDdxAvvnvur0AA4lWVURkfRNBxwrTR X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-ORIG-GUID: Y-Ijr-uzupO4VEgxKZjWOLRlhmNMZTym X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDA0MSBTYWx0ZWRfX4c8SOc/4lk8q CQ0nTi/s988nmCF9P+5uMyUZdl94VL3fbz3TT9GJxQcQB9v2QdjKbix+RP3T6MsQfDOuC0azrJP XiAwUwrHboo+kH4BTrDNFCUKRHZQyYLAP0MnNhUXLS7U4epH3bd/B0Hshl5D9wDxcMTAbP80GW+ iWQ3tqzJ2KjrtmncUaVomSbaImF2m7qSQ2aZayaE6TuMZzu2pOUvrG6caQwPFsznwDqJDuCrDTq jQUUZYqRtl8OxFdEk+QHnLI2h+MXLtpil9oe7XkGz1vzMzEcd1xQC5vsx8Jzfg8mZaBoJWBKUcB PqVXXErOp0uGA1K4/PPOl/OSJOobEA0kQJQmL/4DXBqNIzw2PvQK3QTuAugwE4KOakPEOFy7pzn fdCO/9NLdN5jxPCtqKHH4pxAY41UP2LX4qNlkvz7qe/qVCdU/jItOYTJ9JNZb2F3wIop81FuA8S C8XQ3ZU6hm9q3aJkZMg== X-Authority-Analysis: v=2.4 cv=BKGDalQG c=1 sm=1 tr=0 ts=69d48b81 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=W0IsM1cLceJ2lu2XXEMA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-GUID: Y-Ijr-uzupO4VEgxKZjWOLRlhmNMZTym X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_02,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 clxscore=1015 bulkscore=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070041 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: Konrad Dybcio Signed-off-by: Kamal Wadhwa Reviewed-by: Dmitry Baryshkov --- 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 6e4cb2871fca8d7f371660ceb0c73a092507a5ce..85fbf10f74bb3393071bc656813= 56312f27b7527 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.25.1 From nobody Mon Jun 15 00:20:58 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 3CB7C33D6D6 for ; Tue, 7 Apr 2026 04:43:49 +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=1775537030; cv=none; b=YjCuived3mUunaIHOBSkHIw7qOdQG8VHXq3TsdwjMs1CnrGOruNk/UQ6RVgfAA5xiSDyOLfP+EEDXITmdRv1mG1NTYLYl7U+eY1nc689GXeodZHh83AVCsIHORNAPz1ki+WPTudw1GshOjqCSx1yq+l/uN9VALx1pE1UmUgFjZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775537030; c=relaxed/simple; bh=oX1pSlo7oUBLgGkMV37O1JTibd7jfWXwVtm/LiTas2E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PXLS+BVTIAAaDziWBeuFrSwpftZTCbNVp1R6FThPXo5CA+PQn9h7zxJo6pCgpC8UG4zdCIiDj+ZAzKm/VuU1rfpi3kyLsfyQGEeHuupEXkCSRuOGGdu0Wo6MCEurAPvQvfSttUbftZNba9HFNsu9eGMfE0ybbc428omqQWHNRE8= 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=Ojd2mJMO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Pzo0SKk4; 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="Ojd2mJMO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Pzo0SKk4" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 636LSfjG2328763 for ; Tue, 7 Apr 2026 04:43: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= hlETBh+6cM//2TJo2BGkD6OW7HngQwmBVKNomE0A2UY=; b=Ojd2mJMOdPnOaBtk 1g3EVgArWEYFc1rberxX5W01P0f9tqo9bOiGKuO0KpDtnehSL1n6k5GoeFh1F2EE U/vfXe5Es+OM/snVVha8uruZHkbYGmQi8ONjo4cerpqWicdUSs6+VosSjkGpHZH4 hr/cdRmxpa2thlpgVd6GAYf3vK936aebRP8IOR4oEhpp7mUc1cnF5w66SGyAWSn5 TVj5Me3XvyZAxP7+nSCqstTKkiH3vyBfiQsVD50AxiGz3U1kNcYYBfV9OQoVT1uh DMZEVI8FAsvk7Hz4nk5q39F/8uVtvvomIlyAlZEh6IPhCE93DSz4BE/7WLDF3Y69 7k4flA== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcms4s1mk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 04:43:48 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c76b6ccf298so2640871a12.0 for ; Mon, 06 Apr 2026 21:43:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775537028; x=1776141828; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hlETBh+6cM//2TJo2BGkD6OW7HngQwmBVKNomE0A2UY=; b=Pzo0SKk4HQT9TO+mW4K+u3NR//l2Brl2ZUwLO3sO0uUe+3JCItTSYwT4KWBGY1apYS VimBmg8b0qriLLFZ2xYlgl7Dpu3Oq1R8MInJqpDykz4BB0CISQu/nO2zIzk7mLxeujev BWB/iZU1OrFct6+YVZTfDO0bZBBKL1RgPu6LYbvdWT4N+InzpJXU3dtnfuyHmZ6rA69Y oH9DaJGcCfuwokiCdE3LLIyB5NvWbcgROMVm09VfBzqoLfZYyAW9mpNFIDfvWPTlJY1S wvlOXo6AXlu0oLI49dMRQ6YTjjhK0XIPQPhXxfNEMLVdEnQu+Us046jVUH4tU4mLl5Bm C8TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775537028; x=1776141828; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=hlETBh+6cM//2TJo2BGkD6OW7HngQwmBVKNomE0A2UY=; b=E0bbNPV6MWwRMECGAx32KFEWlH4Z+yz4/mEZzP7yla+RhDeFH8lfOoQED5cqczZHYh 0OgIZgOducavvYqVAYqEpaS46FbzZZ6F9PGGoN0k4qdN5PQsRyzMDqYJjAphLTwZVRFk u5vWz1M5UjQYUxiz3cbs5blMhYclqkd+lXy9gfylYoZWnJ8+B6rB7jeKmT0Qhv11/hTx wkrVgPJKQ7iAInXzIwj94r3k3yOJ05KD+GoHA+rkNwWoB06BEQ/e06ajO3ecmdHdntiw R2ZaD17F3qz+zjKxaeOp3p8GXqN6Gow6lA8CoREGC09XFjQwUnyuJQdwqeXekMColQPL h6JA== X-Forwarded-Encrypted: i=1; AJvYcCXhJ6x45QvCAtsN9YWJQHhYwhUKsymcRn61eK8xHbf6XvDntc2Sqo1w5wZZkccUqiXYTsz96wXDZsAeE3Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5/tY3+AsWPbCTiLB+pjZqoLkdeKwpWtAU+HFfP3/NKKzImDOZ aDV+loCh/cKHisLsILnK7Gm/0YabnNbfYyoi9DiYog9jS1eDNx43NA2QbYQA3R4MwOE3NHbo2ah aCcJ6IcrYSlX2RNS7cp927uGjGwGNHIWfVs95/eDtXoMd1erO9dYFojOy7fomecyT++I= X-Gm-Gg: AeBDievUu0SV1888yBUoDGD8iIzP6F5FqsxDSuQEj0ED7chbcilh7J2Y7IWM7yzyeg6 wXF+jqOPEdFiYQ6+JyLm3OK0axmdgfPbgPrJWjJk5omX0qx8ldSalj3cM6yoD/9vgTq7Ptbm6v5 oA7cMIlZ+dVHqnGFuEV6T3zQe4uACwrJJSvJdyDlBlnpo9KAtrY7cqgEa5Q3Z6tc+wDD8l6OVat dci67dR+VaT9xvJwkh+ZD7o0uC8NaC6kcnVHnLNi/pqIvW89tu/JhwXcrNT8x5ChxtRQTV/NG54 JOJPLd2Gow7ZmS045Q32PO9eBm5OSNShxd2ph4XXiRknDu7nkc5TSbC6TKiqJHtXCoFisl+t8j7 8SeMZw0SvVp9Dn3eCrkfEuPWekOJJz9LDiPj4Um0wr+hH0wDfb/s= X-Received: by 2002:a05:6a00:414b:b0:82c:d8c3:6983 with SMTP id d2e1a72fcca58-82d0dbcfdd5mr15052892b3a.51.1775537027592; Mon, 06 Apr 2026 21:43:47 -0700 (PDT) X-Received: by 2002:a05:6a00:414b:b0:82c:d8c3:6983 with SMTP id d2e1a72fcca58-82d0dbcfdd5mr15052862b3a.51.1775537027024; Mon, 06 Apr 2026 21:43:47 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9c6ba2fsm16123299b3a.45.2026.04.06.21.43.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2026 21:43:46 -0700 (PDT) From: Kamal Wadhwa Date: Tue, 07 Apr 2026 10:13:31 +0530 Subject: [PATCH v3 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: <20260407-read-rpmh-v3-v3-3-34079f92691c@oss.qualcomm.com> References: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> In-Reply-To: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Kamal Wadhwa X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775537013; l=10099; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=oX1pSlo7oUBLgGkMV37O1JTibd7jfWXwVtm/LiTas2E=; b=X7IAq6hoQNeYRLev1HYl9QD1RD/IuvK/rPLzagP6iUm/H6SS4vGfFG9iNKisfh/CsVFys9AH+ hIHUDQet9baDfD5s95ajU8DpnCyJ0V/XiauYObs6FPCbFDYXw8mXJhb X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDA0MSBTYWx0ZWRfX/Nkpn6fwVdhz AqauEq7yTVZh402ixEqol7ag/P/szpWTpBUaG4Im2JHf2KyAbrnVOJ0esosTvZZBd+iYFwb2+3Q 2pSUc78oqvSH+bf007cgtJuTN+gcW5dMpkYIfSuDaZo9Oqcukj9LDj2aer4kmadz0rb5yFijuWu ks8Ym4Bu1dZeqvk4pToaPKiFTtwAhaZVwZIWk3X+pGpelArppCtJI+T1shItRsahnaMGiZfLf2r WmtHf++UmBetz5lgz6afist5NTDr2OHabBxtIKAYtcznj4WYincdnQxDGdblp7ifZOh4ZEaLO5d SO1tnHTURMXwksi9bXDJrpUkGVW3rzP5ICmX79jLEclgAqBCFsawWdU0YfIuicqnWQ9+INzh1/k RWiTzx6H/GVY875Fx04lnO/Y+Ha/uJTKh4ha8rm5FGakIAxe3G4F9/ABWEfHSbpiiCXra5qquqE e8xesrOdzSRW72O5GkA== X-Proofpoint-ORIG-GUID: uR5GVVjt1t7ybCDPIujbH3pVKf194IUs X-Authority-Analysis: v=2.4 cv=WNZPmHsR c=1 sm=1 tr=0 ts=69d48b84 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=tHHH2asN0IuRntgD_GYA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-GUID: uR5GVVjt1t7ybCDPIujbH3pVKf194IUs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_02,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 phishscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070041 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 | 178 ++++++++++++++++++++++++++++= ++++ 1 file changed, 178 insertions(+) diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qc= om-rpmh-regulator.c index 85fbf10f74bb3393071bc65681356312f27b7527..8e1c576b718b595bbbff7f5fa76= de84d4e90f3bb 100644 --- a/drivers/regulator/qcom-rpmh-regulator.c +++ b/drivers/regulator/qcom-rpmh-regulator.c @@ -61,8 +61,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 0x1FFF + #define RPMH_REGULATOR_REG_ENABLE 0x4 +#define RPMH_REGULATOR_ENABLE_MASK 0x1 + #define RPMH_REGULATOR_REG_VRM_MODE 0x8 +#define RPMH_REGULATOR_MODE_MASK 0x7 =20 #define PMIC4_LDO_MODE_RETENTION 4 #define PMIC4_LDO_MODE_LPM 5 @@ -154,6 +159,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 +172,7 @@ struct rpmh_vreg { bool bypassed; int voltage_selector; unsigned int mode; + unsigned int status; }; =20 /** @@ -210,6 +217,28 @@ static int rpmh_regulator_send_request(struct rpmh_vre= g *vreg, return ret; } =20 +/** + * rpmh_regulator_read_data() - read data from RPMh + * @vreg: Pointer to the RPMh regulator + * @cmd: Pointer to the RPMh command struct to readback data + * + * Return: 0 on success, or a negative error number on failure + */ +static int rpmh_regulator_read_data(struct rpmh_vreg *vreg, struct tcs_cmd= *cmd) +{ + return rpmh_read(vreg->dev, cmd); +} + +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 +277,42 @@ 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 min_uV =3D rdev->constraints->min_uV; + int max_uV =3D rdev->constraints->max_uV; + int ret, _uV =3D 0; + + ret =3D rpmh_regulator_read_data(vreg, &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); + + if (!_uV || (_uV >=3D min_uV && _uV <=3D max_uV)) + *uV =3D _uV; + else + dev_err(vreg->dev, "read voltage %d is out-of-range[%d:%d]\n", + _uV, min_uV, max_uV); + + 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 +346,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 +397,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_regulator_read_data(vreg, &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 +425,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 +468,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 +492,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 +504,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 +517,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 +526,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 +635,83 @@ 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 =3D 0; + + ret =3D rpmh_regulator_read_data(vreg, &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 sts ? REGULATOR_STATUS_ON : REGULATOR_STATUS_OFF; + + 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, @@ -1823,6 +1995,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.25.1 From nobody Mon Jun 15 00:20:58 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 ADF3833AD9D for ; Tue, 7 Apr 2026 04:43:52 +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=1775537033; cv=none; b=aSGhMzKiaUi/WNpYy1Ht8S7ZB+1uV4/a6Pi6zwEuk2hokhYM4zuwsGvqa2ZHlfUVFO3JakQfdIosXS0Gzo3GHy0R6FLcTk8VhIpMSmpn9i6m4SvGFvqcIsKT903X+xC6BogZAZtS7xprka/Sk5u2rbor8Ye5o5tHcuuc029lTSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775537033; c=relaxed/simple; bh=1YgVKodJDZ8iM/R/e5OEt67Xb1kzFcKpq6G+59ZkhJQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sLHYdyflRw92X8S6fT6TU4t6Om1f7gPnuiZUk0IE12qAt3Yhaih85piCylPJbZsXJFB/7yuqcCmknpjfP6BDhpJGnDQOlIG/7P9uC4Msd58B6MPv961Nr5YcdyIbs9N/QMbrV+adNJ9YxEDoqPRRmLT9P99vl/CZiJNIwULHWE8= 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=dtEotud9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fPZHlcQI; 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="dtEotud9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fPZHlcQI" 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 636LQmJU4009170 for ; Tue, 7 Apr 2026 04:43:51 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= KKUudFy5GoN8EsapexJf1THKoHxcD0tb+86k8TrzqJg=; b=dtEotud9rMRW4Ivm B5B2tO8A5mHYERj1MxPFIsmFK2RHjbNY+SYL7PgEARsJ6VAoDUjAGTMWG0wDCNS8 IlSYi2gmuPp5CWUo9H9wdj81D6zKBylqMla7kAOrd6gSb+snREEtCIs0+Vvc5CSZ r/bc9bZgwlcGWvYUAIta+bG+ifQ+mTdykjQaR0hcF80arfvTdsD11+s9Sn93s//H 9oQceCQyoKFa97LKs5svzMKtdajsqEyxetLaIXF2kKJTuRELxg1SJGt1OyljAfw9 qfT6L4xLHvp4mKLoCKPn1mPzxawufR6jTyMxc47IBMv7rVYEbRqNTQGdc0Lkepfs PYSN3w== 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 4dcmrks19y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Apr 2026 04:43:51 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c76c2bb3149so2575263a12.1 for ; Mon, 06 Apr 2026 21:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775537031; x=1776141831; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KKUudFy5GoN8EsapexJf1THKoHxcD0tb+86k8TrzqJg=; b=fPZHlcQIzTUdT5YUEFPH0GNrb7Ti1ZUevDtVlX5LnQADnCTqNAK1zLhHryYi8hZ8WX TDKSoIJRKNoNJ+b+NZrLHAz09iwv15U7jlQlxoh18n6RFM8cZJiM/+//UzbQMZ4RwDek PVsQLoR+p5iU3JUyxiHIwYQqp9BYP6l9hZ4v4AYPigzIjkc3wf0/KO/k3Cmpzff+6NFP C1AXamHGRkPYSufWE8+npgUYPEXvmnhXs9YhfD6FhB+9fC5BO8s2aH13jkQJ5AnKouuT yxyp7Ay4O06OfE8nF2hTNkisB0XAZJvjG1qFYCyzHiOSvsSeZElU3AIenA7kTkeR+1FI lm6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775537031; x=1776141831; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KKUudFy5GoN8EsapexJf1THKoHxcD0tb+86k8TrzqJg=; b=o7o2ef3XiCP4bSaTCeh6udNF//wCKGGeYPD+mHnGEYTyw8eo8WBLE+TsvoqVq5XeM4 rlPJ94XcurivY0hZhWlQgaDhvPP5iRqLKFBrKD4e1HlttvIK8mvPTDAL0RvTVKZblZdA MkDzdKREtLhgxS8hT84F4dz9jhsXARSQSiu4h4xM8MEnzmalEZLyZlqnSuXyjVgzCibi XVQHxEbXg0oF7a0Cb6pJ+3PbRfSse0Hb2R4CkxJn9gfoj5GEpxlzQe8qpHpAJBnH7qTM vpS82p1NyWV7+rwQPOAmxlENxGm4pqKJ+MQXEt5bIG6j7OLiv2WApARD10ZVWx0/p5cn KaUw== X-Forwarded-Encrypted: i=1; AJvYcCVO42dwYjZFmEd9tPdKLphF1uCzpHv4p7JyanCY4lmDX43RlJhm6TgFErDmDK1kSqzOulX+2oHGc+WhG7M=@vger.kernel.org X-Gm-Message-State: AOJu0Ywu5z1s6DAPKctEaLR0z0IBPjLm5LUGl0Ok5DS1fcan1EYA9DBn S01xLpwa2HueVG0coF4l8l/HhX1gHe6GGONDizQMl1t77bHM1U7mo5qfABWSAGoM4xfvOSnhyyT C2IC/dKSPTWYTrsCmlXacxSYAV6ZzuDYZRviron9pUs+1aU90Saj5QocHVsNYIxCwrmc= X-Gm-Gg: AeBDieuOaBpWCFQielzk173mDXyWu8QvPpevdA4JZcvIV4vkB9iaA1TJjzul2oKaMnb J9TP3CcWzERIx86Qs0nm8zg+phUPc/Dj9pmDuU/aZiufkG56qkCcJTYy1dn5Y89TMGSg+QmuqT0 3htEd6D7tkVqlzXsA/CyBbFqLdvMLYMUsSoVjzzQxmVECR/0R+kKdgMSrTSh+ovwCMh4Sm3SeY+ GAo2EV2y2wcmOguXWixP8EYRG7xqUEcvqMtQVOhdh6gItAx4UA4lyQ0faostt0YjT2W638h9/uQ kjsIwlMQOx1CvN5sQ/NWrDKB+a/nmiyAzVcMQ7nHtlksZVscF5SXKA04q2Y70vLQ769jfxpU3Gm HiTU84uo1211piqx67Wj3rsaMArLd1hkyv/qEHpuRcvVxZtaYivk= X-Received: by 2002:a05:6a00:1ad3:b0:82a:6e4b:5b4d with SMTP id d2e1a72fcca58-82d0035bd98mr14612812b3a.23.1775537030592; Mon, 06 Apr 2026 21:43:50 -0700 (PDT) X-Received: by 2002:a05:6a00:1ad3:b0:82a:6e4b:5b4d with SMTP id d2e1a72fcca58-82d0035bd98mr14612792b3a.23.1775537030098; Mon, 06 Apr 2026 21:43:50 -0700 (PDT) Received: from hu-kamalw-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9c6ba2fsm16123299b3a.45.2026.04.06.21.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2026 21:43:49 -0700 (PDT) From: Kamal Wadhwa Date: Tue, 07 Apr 2026 10:13:32 +0530 Subject: [PATCH v3 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: <20260407-read-rpmh-v3-v3-4-34079f92691c@oss.qualcomm.com> References: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> In-Reply-To: <20260407-read-rpmh-v3-v3-0-34079f92691c@oss.qualcomm.com> To: Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Vinod Koul Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Kamal Wadhwa X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775537013; l=999; i=kamal.wadhwa@oss.qualcomm.com; s=20260406; h=from:subject:message-id; bh=1YgVKodJDZ8iM/R/e5OEt67Xb1kzFcKpq6G+59ZkhJQ=; b=zYQkm0/ZFNtKYvTtzj2rDfq9YGLzr8ShHzYXqy2QA4Xagy9FMpgrVu9E9dI5gKn/8Eiz5Ndjy V8Vv6cY9+KVDOL+vycFqAh+xk1bvf2EKbilCDJyVYiuqI2wTTDmN8D9 X-Developer-Key: i=kamal.wadhwa@oss.qualcomm.com; a=ed25519; pk=ylH1NxUZkBpYsmww89g6zVxpS0q8qthtzcORkYxn/Ag= X-Authority-Analysis: v=2.4 cv=Rrz16imK c=1 sm=1 tr=0 ts=69d48b87 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=A68ZeqOElA5rGN51AGUA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-ORIG-GUID: UT2gIJSrC9bM0yVjmYPyIBoC9YSWGFLh X-Proofpoint-GUID: UT2gIJSrC9bM0yVjmYPyIBoC9YSWGFLh X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA3MDA0MSBTYWx0ZWRfX0P3eMR3rNgIC GHcX7o7gpOLi/6uHxHT926RZ2PlbXsLrfk6u7SdxuJ6/V9Ha/EoRB5w2uRNnEzcaG4JqM4uFkZq WtbyySRi+2P97hxdkh2LE0OYJQVvi64h8EoRTOrDdXpE3exH+FSDvEAugZhy+lJn3uq8HrKowDF zMqAsAy7LnE7tiekfKIh57YtvuW4mbCEvKybjapNSqC4H18ZMe6pDNCrOSKW/zq6B/4A0zeAFa5 Y4QI0pujHptZvaJF156kdTjAU8zX6ngaLMo4Oy4NKQ1YWke6WrChO6IISg1vzGm5xh1BEFdZg0n QXUrh7wZXYEM89f8X0G2mIiMNMy7Pd/uPBawgG4e60n2JaPyc+4p/9SH+MJo/s9EpR66hGz3LJb ngpif7YzszoP9R3ZSma5DpGJFLMg32GLDuWZxoo7HC5LMiK6lxrCQlpd/fkLuxbTsMUqYsAPkrx sgkbfP+OLyl8RIciEKQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-07_02,2026-04-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604070041 Fix the code style/format issues reported by checkpatch.pl script. Signed-off-by: Kamal Wadhwa Reviewed-by: Dmitry Baryshkov --- 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 8e1c576b718b595bbbff7f5fa76de84d4e90f3bb..23ce4bce89d51a0fa5cb50adf37= f38fe54ce5139 100644 --- a/drivers/regulator/qcom-rpmh-regulator.c +++ b/drivers/regulator/qcom-rpmh-regulator.c @@ -109,7 +109,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.25.1