From: Sasha Levin Date: Mon, 27 Dec 2021 03:37:35 +0000 (-0500) Subject: Fixes for 4.14 X-Git-Tag: v4.4.297~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9d716f22fd6e478a07f1dcf49ee6800bc95260a;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 4.14 Signed-off-by: Sasha Levin --- diff --git a/queue-4.14/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch b/queue-4.14/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch new file mode 100644 index 00000000000..eec6be3113b --- /dev/null +++ b/queue-4.14/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch @@ -0,0 +1,50 @@ +From 6677cac28c4f14545af84a753d081ee72e2397a7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 6 Nov 2021 10:02:44 -0700 +Subject: hwmon: (lm90) Fix usage of CONFIG2 register in detect function + +From: Guenter Roeck + +[ Upstream commit fce15c45d3fbd9fc1feaaf3210d8e3f8b33dfd3a ] + +The detect function had a comment "Make compiler happy" when id did not +read the second configuration register. As it turns out, the code was +checking the contents of this register for manufacturer ID 0xA1 (NXP +Semiconductor/Philips), but never actually read the register. So it +wasn't surprising that the compiler complained, and it indeed had a point. +Fix the code to read the register contents for manufacturer ID 0xa1. + +At the same time, the code was reading the register for manufacturer ID +0x41 (Analog Devices), but it was not using the results. In effect it was +just checking if reading the register returned an error. That doesn't +really add much if any value, so stop doing that. + +Fixes: f90be42fb383 ("hwmon: (lm90) Refactor reading of config2 register") +Signed-off-by: Guenter Roeck +Signed-off-by: Sasha Levin +--- + drivers/hwmon/lm90.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c +index c187e557678ef..3df4e8654448b 100644 +--- a/drivers/hwmon/lm90.c ++++ b/drivers/hwmon/lm90.c +@@ -1439,12 +1439,11 @@ static int lm90_detect(struct i2c_client *client, + if (man_id < 0 || chip_id < 0 || config1 < 0 || convrate < 0) + return -ENODEV; + +- if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) { ++ if (man_id == 0x01 || man_id == 0x5C || man_id == 0xA1) { + config2 = i2c_smbus_read_byte_data(client, LM90_REG_R_CONFIG2); + if (config2 < 0) + return -ENODEV; +- } else +- config2 = 0; /* Make compiler happy */ ++ } + + if ((address == 0x4C || address == 0x4D) + && man_id == 0x01) { /* National Semiconductor */ +-- +2.34.1 + diff --git a/queue-4.14/series b/queue-4.14/series index f01550a1d41..ed9cb07e09f 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -11,3 +11,4 @@ bonding-fix-ad_actor_system-option-setting-to-defaul.patch fjes-check-for-error-irq.patch drivers-net-smc911x-check-for-error-irq.patch sfc-falcon-check-null-pointer-of-rx_queue-page_ring.patch +hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch