linux/drivers/hwmon
Chris Verges fac3e9ef05 hwmon: (lm73} Detect and report i2c bus errors
commit 0602934f30 upstream.

If an LM73 device does not exist on an I2C bus, attempts to communicate
with the device result in an error code returned from the i2c read/write
functions.  The current lm73 driver casts that return value from a s32
type to a s16 type, then converts it to a temperature in celsius.
Because negative temperatures are valid, it is difficult to distinguish
between an error code printed to the response buffer and a negative
temperature recorded by the sensor.

The solution is to evaluate the return value from the i2c functions
before performing any temperature calculations.  If the i2c function did
not succeed, the error code should be passed back through the virtual
file system layer instead of being printed into the response buffer.

Before:

   $ cat /sys/class/hwmon/hwmon0/device/temp1_input
   -46

After:

   $ cat /sys/class/hwmon/hwmon0/device/temp1_input
   cat: read error: No such device or address

Signed-off-by: Chris Verges <kg4ysn@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-17 08:50:52 -08:00
..
pmbus hwmon: (pmbus_core) Fix compiler warning 2012-04-09 12:17:38 -07:00
abituguru.c hwmon: (abituguru) Fix checkpatch issues 2012-03-18 18:27:18 -07:00
abituguru3.c hwmon: (abituguru3) Fix multi-line comments 2012-03-18 18:27:12 -07:00
acpi_power_meter.c hwmon: (acpi_power_meter) Fix compiler warning seen in some configurations 2012-04-09 12:17:37 -07:00
ad7314.c hwmon: (ad7314) Add 'name' sysfs attribute 2012-10-02 10:30:06 -07:00
ad7414.c hwmon: (ad7414) Fix multi-line comments 2012-03-18 18:26:58 -07:00
ad7418.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
adcxx.c hwmon: convert drivers/hwmon/* to use module_spi_driver() 2012-03-18 18:26:51 -07:00
adm1021.c hwmon: (adm1021) Fix checkpatch issues 2012-03-18 18:27:19 -07:00
adm1025.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
adm1026.c hwmon: (adm1026) Fix checkpatch issues 2012-03-18 18:27:19 -07:00
adm1029.c hwmon: (adm1029) Fix multi-line comments 2012-03-18 18:27:32 -07:00
adm1031.c hwmon: (adm1031) Fix compiler warning 2012-04-01 10:24:35 -07:00
adm9240.c hwmon: (adm9240) Fix checkpatch issues 2012-03-18 18:27:20 -07:00
ads1015.c hwmon: (ads1015) Fix build warning 2012-04-18 11:15:50 -07:00
ads7828.c hwmon: (ads7828) Fix multi-line comments 2012-03-18 18:27:12 -07:00
ads7871.c hwmon: (ads7871) Add 'name' sysfs attribute 2012-10-02 10:30:06 -07:00
adt7411.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
adt7462.c hwmon: (adt7462) Fix checkpatch issues 2012-03-18 18:27:02 -07:00
adt7470.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
adt7475.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
amc6821.c hwmon: (amc6821) Fix multi-line comments 2012-03-18 18:27:14 -07:00
applesmc.c hwmon: (applesmc) Limit key length in warning messages 2012-07-16 09:03:50 -07:00
asb100.c hwmon: (asb100): Fix checkpatch issues 2012-03-18 18:27:21 -07:00
asc7621.c hwmon: (asc7621) Fix multi-line comments 2012-03-18 18:26:54 -07:00
asus_atk0110.c hwmon: (asus_atk0110) Add quirk for Asus M5A78L 2012-09-14 10:00:34 -07:00
atxp1.c hwmon: (atxp1) Fix checkpatch issues 2012-03-18 18:27:03 -07:00
coretemp.c x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM 2012-07-16 09:04:22 -07:00
dme1737.c hwmon: (dme1737) Fix checkpatch issues 2012-03-18 18:27:21 -07:00
ds620.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
ds1621.c hwmon: (ds1621) Fix checkpatch issues 2012-03-18 18:26:51 -07:00
emc6w201.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
emc1403.c hwmon: (emc1403) Fix multi-line comments 2012-03-18 18:27:14 -07:00
emc2103.c hwmon: (emc2103) Fix multi-line comments 2012-03-18 18:27:33 -07:00
exynos4_tmu.c hwmon: convert drivers/hwmon/* to use module_platform_driver() 2011-11-26 09:48:20 -08:00
f71805f.c hwmon: (f71805f) Fix checkpatch issues 2012-03-18 18:26:48 -07:00
f71882fg.c hwmon: (f71882fg) Fix multi-line comments 2012-03-18 18:27:15 -07:00
f75375s.c hwmon: (f75375s) Fix warning message seen in some configurations 2012-04-01 10:24:34 -07:00
fam15h_power.c x86,AMD: Power driver support for AMD's family 16h processors 2012-12-17 10:37:44 -08:00
fschmd.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
g760a.c hwmon: (g760a) Fix multi-line comments 2012-03-18 18:27:16 -07:00
gl518sm.c hwmon: (gl518sm) Fix checkpatch issues 2012-03-18 18:27:22 -07:00
gl520sm.c hwmon: (gl520sm) Fix: do not use assignment in if condition 2012-03-18 18:27:23 -07:00
gpio-fan.c hwmon: replaced strict_str* with kstr* 2012-01-05 08:19:34 -08:00
hwmon-vid.c hwmon: (hwmon-vid) Fix checkpatch issues 2012-03-18 18:27:44 -07:00
hwmon.c hwmon: (hwmon) Fix multi-line comments 2012-03-18 18:26:52 -07:00
i5k_amb.c hwmon: (i5k_amb) fix checkpatch issues 2012-03-18 18:26:30 -07:00
ibmaem.c hwmon: (ibmaem) fix checkpatch issues 2012-03-18 18:26:35 -07:00
ibmpex.c hwmon: (ibmpex) Initialize sysfs attributes 2011-06-17 23:22:27 -07:00
it87.c hwmon: (it87) Preserve configuration register bits on init 2012-07-19 08:58:55 -07:00
jc42.c hwmon: (jc42) Remove unnecessary device IDs 2012-03-18 18:27:53 -07:00
jz4740-hwmon.c hwmon: (jz4740) Staticise jz4740_hwmon_driver 2011-12-12 08:31:21 -08:00
k8temp.c hwmon: (k8temp) fix checkpatch issues 2012-03-18 18:26:42 -07:00
k10temp.c hwmon: (k10temp) Add support for AMD Trinity CPUs 2012-04-01 10:25:56 -07:00
Kconfig hwmon: (k10temp) Add support for AMD Trinity CPUs 2012-04-01 10:25:56 -07:00
lineage-pem.c hwmon: (lineage-pem) Convert to use devm_kzalloc 2012-03-18 18:27:44 -07:00
lm63.c hwmon: (lm63) Let the user adjust the lookup table 2012-03-23 10:02:19 +01:00
lm70.c hwmon: (lm70) Fix: do not use assignment in if condition 2012-03-18 18:27:40 -07:00
lm73.c hwmon: (lm73} Detect and report i2c bus errors 2013-01-17 08:50:52 -08:00
lm75.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
lm75.h hwmon: (lm75) fix checkpatch warnings 2012-01-05 08:19:35 -08:00
lm77.c hwmon: (lm77) Fix checkpatch issues 2012-03-18 18:27:24 -07:00
lm78.c hwmon: (lm78) Fix checkpatch issues 2012-03-18 18:27:24 -07:00
lm80.c hwmon: (lm80) Add detection of NatSemi/TI LM96080 2012-03-18 18:27:43 -07:00
lm83.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
lm85.c hwmon: (lm85) Fix checkpatch issues 2012-03-18 18:27:25 -07:00
lm87.c hwmon: (lm87) Get rid of macro-generated functions 2012-03-18 18:27:42 -07:00
lm90.c hwmon: (lm90) Restore original configuration if probe function fails 2012-03-23 10:02:18 +01:00
lm92.c hwmon: (lm92) Fix checkpatch issues 2012-03-18 18:27:05 -07:00
lm93.c hwmon: (lm93) Fix checkpatch issues 2012-03-18 18:27:06 -07:00
lm95241.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
lm95245.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
ltc4151.c hwmon: (ltc4151) Fix multi-line comments 2012-03-18 18:27:16 -07:00
ltc4215.c hwmon: (ltc4215) Fix multi-line comments 2012-03-18 18:27:02 -07:00
ltc4245.c hwmon: (ltc4245) Fix multi-line comments 2012-03-18 18:27:01 -07:00
ltc4261.c hwmon: (ltc4261) Convert to use devm_kzalloc 2012-03-18 18:27:46 -07:00
Makefile hwmon: Add MCP3021 ADC driver 2012-03-23 10:02:20 +01:00
max1111.c hwmon: (max1111) Fix multi-line comments 2012-03-18 18:27:17 -07:00
max1619.c hwmon: (max1619): Fix checkpatch issues 2012-03-18 18:27:26 -07:00
max1668.c hwmon: (max1668) Fix multi-line comments 2012-03-18 18:27:35 -07:00
max6639.c hwmon: (max6639) Convert to dev_pm_ops 2012-04-01 10:24:08 -07:00
max6642.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
max6650.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
max16065.c hwmon: (max16065) Convert to use devm_kzalloc 2012-03-18 18:27:48 -07:00
mc13783-adc.c MFD changes for 3.4 2012-03-28 13:56:35 -07:00
mcp3021.c hwmon: Add MCP3021 ADC driver 2012-03-23 10:02:20 +01:00
ntc_thermistor.c hwmon: convert drivers/hwmon/* to use module_platform_driver() 2011-11-26 09:48:20 -08:00
pc87360.c hwmon: (pc87360) Fix: do not use assignment in if condition 2012-03-18 18:27:27 -07:00
pc87427.c hwmon: (pc87427) Fix multi-line comments 2012-03-18 18:27:35 -07:00
pcf8591.c hwmon: (pcf8591) Fix checkpatch issues 2012-03-18 18:27:07 -07:00
s3c-hwmon.c hwmon: convert drivers/hwmon/* to use module_platform_driver() 2011-11-26 09:48:20 -08:00
sch56xx-common.c hwmon: (sch56xx) Add support for the integrated watchdog (v2) 2012-03-20 06:42:05 -07:00
sch56xx-common.h hwmon: (sch56xx) Add support for the integrated watchdog (v2) 2012-03-20 06:42:05 -07:00
sch5627.c hwmon: (sch56xx) Add support for the integrated watchdog (v2) 2012-03-20 06:42:05 -07:00
sch5636.c hwmon: (sch56xx) Add support for the integrated watchdog (v2) 2012-03-20 06:42:05 -07:00
sht15.c hwmon: (sht15) fix checkpatch issues 2012-03-18 18:26:36 -07:00
sht21.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
sis5595.c hwmon: (sis5595) Fix checkpatch issues 2012-03-18 18:27:07 -07:00
smm665.c hwmon: (smm665) Convert to use devm_kzalloc 2012-03-18 18:27:47 -07:00
smsc47b397.c hwmon: (smsc47b397) Fix compiler warning 2012-04-09 12:17:36 -07:00
smsc47m1.c hwmon: (smsc47m1) Fix compiler warning 2012-04-09 12:17:38 -07:00
smsc47m192.c hwmon: (smsc47m192) Fix checkpatch issues 2012-03-18 18:27:08 -07:00
thmc50.c hwmon: (thmc50) Fix checkpatch issues 2012-03-18 18:27:10 -07:00
tmp102.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
tmp401.c hwmon changes for v3.4 2012-03-21 10:37:25 -07:00
tmp421.c hwmon: convert drivers/hwmon/* to use module_i2c_driver() 2012-03-18 18:26:50 -07:00
twl4030-madc-hwmon.c hwmon: (twl4030-madc-hwmon) Initialize uninitialized structure elements 2012-10-02 10:30:05 -07:00
ultra45_env.c hwmon: (ultra45_env) Fix checkpatch issues 2012-03-18 18:27:10 -07:00
via-cputemp.c HWMON: Convert via-cputemp to x86 cpuid autoprobing 2012-01-26 16:48:12 -08:00
via686a.c hwmon: (via686a) Fix checkpatch issues 2012-03-18 18:27:28 -07:00
vt1211.c hwmon: (vt1211) Fix: do not use assignment in if condition 2012-03-18 18:27:29 -07:00
vt8231.c hwmon: (vt8231) Fix multi-line comments 2012-03-18 18:26:49 -07:00
w83l785ts.c hwmon: (w83l785ts) Fix multi-line comments 2012-03-18 18:27:38 -07:00
w83l786ng.c hwmon: (w83l786ng) Fix multi-line comments 2012-03-18 18:27:39 -07:00
w83627ehf.c hwmon: (w83627ehf) Force initial bank selection 2012-11-17 13:16:12 -08:00
w83627hf.c hwmon: (w83627hf) Fix checkpatch issues 2012-03-18 18:27:32 -07:00
w83781d.c hwmon: (w83781d) Fix: do not use assignment in if condition 2012-03-18 18:27:37 -07:00
w83791d.c hwmon: (w83791d) Fix checkpatch issues 2012-03-18 18:27:11 -07:00
w83792d.c hwmon: (w83792d) Fix checkpatch issues 2012-03-18 18:27:30 -07:00
w83793.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
w83795.c hwmon: (w83795) Fix multi-line comments 2012-03-23 10:02:18 +01:00
wm831x-hwmon.c hwmon: (wm831x-hwmon) Fix multi-line comments 2012-03-18 18:26:55 -07:00
wm8350-hwmon.c hwmon: (wm8350-hwmon) Constify fixed string array 2012-03-18 18:27:00 -07:00