summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Crawford <frank@crawford.emu.id.au>2023-03-18 19:05:42 +1100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-04-05 11:15:35 +0200
commit2b486ecfeb3918c575560ac2851173755752e6e0 (patch)
tree79e2b0e186945bf5722c682b073175acd757308f
parentaf4d48754d5517d33bac5e504ff1f1de0808e29e (diff)
downloadlinux-stable-2b486ecfeb3918c575560ac2851173755752e6e0.tar.gz
linux-stable-2b486ecfeb3918c575560ac2851173755752e6e0.tar.bz2
linux-stable-2b486ecfeb3918c575560ac2851173755752e6e0.zip
hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
[ Upstream commit 968b66ffeb7956acc72836a7797aeb7b2444ec51 ] Fix voltage scaling for chips that have 10.9mV ADCs, where scaling was not performed. Fixes: ead8080351c9 ("hwmon: (it87) Add support for IT8732F") Signed-off-by: Frank Crawford <frank@crawford.emu.id.au> Link: https://lore.kernel.org/r/20230318080543.1226700-2-frank@crawford.emu.id.au [groeck: Update subject and description to focus on bug fix] Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/hwmon/it87.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index f8499cb95fec..4e4e151760db 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -495,6 +495,8 @@ static const struct it87_devices it87_devices[] = {
#define has_pwm_freq2(data) ((data)->features & FEAT_PWM_FREQ2)
#define has_six_temp(data) ((data)->features & FEAT_SIX_TEMP)
#define has_vin3_5v(data) ((data)->features & FEAT_VIN3_5V)
+#define has_scaling(data) ((data)->features & (FEAT_12MV_ADC | \
+ FEAT_10_9MV_ADC))
struct it87_sio_data {
int sioaddr;
@@ -3107,7 +3109,7 @@ static int it87_probe(struct platform_device *pdev)
"Detected broken BIOS defaults, disabling PWM interface\n");
/* Starting with IT8721F, we handle scaling of internal voltages */
- if (has_12mv_adc(data)) {
+ if (has_scaling(data)) {
if (sio_data->internal & BIT(0))
data->in_scaled |= BIT(3); /* in3 is AVCC */
if (sio_data->internal & BIT(1))