Commit 8bc0f408 authored by Eliav Farber's avatar Eliav Farber Committed by Jialin Zhang
Browse files

hwmon: (mr75203) enable polling for all VM channels

stable inclusion
from stable-v5.10.143
commit 202341395ce3af1eb08469ae53bc1d591cb7f1bb
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I6D0U6

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=202341395ce3af1eb08469ae53bc1d591cb7f1bb



--------------------------------

[ Upstream commit e43212e0 ]

Configure ip-polling register to enable polling for all voltage monitor
channels.
This enables reading the voltage values for all inputs other than just
input 0.

Fixes: 9d823351 ("hwmon: Add hardware monitoring driver for Moortec MR75203 PVT controller")
Signed-off-by: default avatarEliav Farber <farbere@amazon.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220908152449.35457-7-farbere@amazon.com


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
Reviewed-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent fa0c3f7c
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -398,6 +398,19 @@ static int pvt_init(struct pvt_device *pvt)
		if (ret)
			return ret;

		val = (BIT(pvt->c_num) - 1) | VM_CH_INIT |
		      IP_POLL << SDIF_ADDR_SFT | SDIF_WRN_W | SDIF_PROG;
		ret = regmap_write(v_map, SDIF_W, val);
		if (ret < 0)
			return ret;

		ret = regmap_read_poll_timeout(v_map, SDIF_STAT,
					       val, !(val & SDIF_BUSY),
					       PVT_POLL_DELAY_US,
					       PVT_POLL_TIMEOUT_US);
		if (ret)
			return ret;

		val = CFG1_VOL_MEAS_MODE | CFG1_PARALLEL_OUT |
		      CFG1_14_BIT | IP_CFG << SDIF_ADDR_SFT |
		      SDIF_WRN_W | SDIF_PROG;