From b67c4b9d5ca35e83b610e613f8ec023fcd6fef0c Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sun, 26 Dec 2021 22:37:36 -0500 Subject: [PATCH] Fixes for 4.9 Signed-off-by: Sasha Levin --- ...sage-of-config2-register-in-detect-f.patch | 50 +++++++++++++++++++ queue-4.9/series | 1 + 2 files changed, 51 insertions(+) create mode 100644 queue-4.9/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch diff --git a/queue-4.9/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch b/queue-4.9/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch new file mode 100644 index 00000000000..d517bbe5a23 --- /dev/null +++ b/queue-4.9/hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch @@ -0,0 +1,50 @@ +From ab9def1ca6d5502734a1a21d38b7cbba57b52947 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 293d1184976b3..49114302f9fbf 100644 +--- a/drivers/hwmon/lm90.c ++++ b/drivers/hwmon/lm90.c +@@ -1345,12 +1345,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.9/series b/queue-4.9/series index 50807eeda22..2a6fb151d6b 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -6,3 +6,4 @@ qlcnic-potential-dereference-null-pointer-of-rx_queu.patch bonding-fix-ad_actor_system-option-setting-to-defaul.patch fjes-check-for-error-irq.patch drivers-net-smc911x-check-for-error-irq.patch +hwmon-lm90-fix-usage-of-config2-register-in-detect-f.patch -- 2.47.2