From: Wilken Gottwalt Date: Fri, 13 Nov 2020 12:19:54 +0000 (+0100) Subject: hwmon: (corsair-psu) Fix fan rpm calculation X-Git-Tag: v5.11-rc1~155^2~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=72969073dedb678d5ec5abfeb840a0863f79c5a9;p=thirdparty%2Flinux.git hwmon: (corsair-psu) Fix fan rpm calculation The correct fan rpm value is also a LINEAR11 value but without a factor. Verified by using the fan test button on the psu to let the fan spin up to maximum for some seconds. Fixes: 933222c98445 ("hwmon: (corsair-psu) fix unintentional sign extension issue") Signed-off-by: Wilken Gottwalt Link: https://lore.kernel.org/r/20201113121954.GA8488@monster.powergraphx.local Signed-off-by: Guenter Roeck --- diff --git a/drivers/hwmon/corsair-psu.c b/drivers/hwmon/corsair-psu.c index 5d19a888231af..99494056f4bd9 100644 --- a/drivers/hwmon/corsair-psu.c +++ b/drivers/hwmon/corsair-psu.c @@ -252,12 +252,7 @@ static int corsairpsu_get_value(struct corsairpsu_data *priv, u8 cmd, u8 rail, l *val = corsairpsu_linear11_to_int(tmp & 0xFFFF) * 1000; break; case PSU_CMD_FAN: - /* - * this value is best guess, so the calculated value could be wrong, it is hard - * to ge the fan to spin in these semi-passive power supplies, which need a - * quite high load to do so - */ - *val = ((tmp & 0xFF) << 8) + ((tmp >> 8) & 0xFF); + *val = corsairpsu_linear11_to_int(tmp & 0xFFFF); break; case PSU_CMD_RAIL_WATTS: case PSU_CMD_TOTAL_WATTS: