linux_old1/drivers/hwmon
Chris Verges 0602934f30 hwmon: (lm73} Detect and report i2c bus errors
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>
Cc: stable@vger.kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2012-12-21 17:59:30 -08:00
..
pmbus hwmon: (pmbus) remove CONFIG_EXPERIMENTAL 2012-10-14 15:21:33 -07:00
Kconfig ARM: arm-soc: driver specific changes 2012-12-13 10:59:11 -08:00
Makefile ARM: arm-soc: driver specific changes 2012-12-13 10:59:11 -08:00
abituguru.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
abituguru3.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
acpi_power_meter.c hwmon: Add missing inclusions of <linux/err.h> 2012-10-10 15:25:56 +02:00
ad7314.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
ad7414.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
ad7418.c hwmon: (ad7418) Convert to use devm_ functions 2012-09-23 21:08:29 -07:00
adcxx.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
adm1021.c hwmon: (adm1021) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
adm1025.c hwmon: (adm1025) Convert to use devm_ functions 2012-07-21 21:48:38 -07:00
adm1026.c hwmon: (adm1026) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
adm1029.c hwmon: (adm1029) Convert to use devm_ functions 2012-09-23 21:08:29 -07:00
adm1031.c hwmon: (adm1031) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
adm9240.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
ads1015.c hwmon: (ads1015) Convert to use devm_ functions 2012-09-23 21:08:30 -07:00
ads7828.c hwmon: (ads7828) add support for ADS7830 2012-12-05 10:55:54 -08:00
ads7871.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
adt7410.c hwmon: (adt7410) handle errors from adt7410_update_device() 2012-09-23 21:08:33 -07:00
adt7411.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
adt7462.c hwmon: Drop needless includes of <linux/delay.h> 2012-10-10 15:25:57 +02:00
adt7470.c hwmon: (adt7470) Convert to use devm_ functions 2012-09-23 21:08:30 -07:00
adt7475.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
amc6821.c hwmon: (amc6821) Convert to use devm_ functions 2012-09-23 21:08:30 -07:00
applesmc.c hwmon: Add missing inclusions of <linux/err.h> 2012-10-10 15:25:56 +02:00
asb100.c hwmon: Fix chip feature table headers 2012-11-05 21:54:40 +01:00
asc7621.c hwmon: (asc7621) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
asus_atk0110.c hwmon: Add missing inclusions of <linux/err.h> 2012-10-10 15:25:56 +02:00
atxp1.c hwmon: (atxp1) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
coretemp.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
da9052-hwmon.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
da9055-hwmon.c hwmon: (da9055) Fix chan_mux[DA9055_ADC_ADCIN3] setting 2012-12-05 10:55:55 -08:00
dme1737.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
ds620.c hwmon: (ds620) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
ds1621.c hwmon: (ds1621) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
emc6w201.c hwmon: Drop needless includes of <linux/delay.h> 2012-10-10 15:25:57 +02:00
emc1403.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
emc2103.c hwmon: (emc2103) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
f71805f.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
f71882fg.c hwmon: remove use of __devinit 2012-11-28 11:49:40 -08:00
f75375s.c hwmon: (f75375s) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
fam15h_power.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
fschmd.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
g760a.c hwmon: (g760a) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
gl518sm.c hwmon: (gl518sm) Convert to use devm_ functions 2012-07-21 21:48:39 -07:00
gl520sm.c hwmon: (gl520sm) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
gpio-fan.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
hih6130.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
hwmon-vid.c hwmon-vid: Add support for AMD family 11h to 15h processors 2012-12-19 22:17:02 +01:00
hwmon.c hwmon: Fix PCI device reference leak in quirk 2012-12-19 22:16:59 +01:00
i5k_amb.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
ibmaem.c hwmon: Add missing inclusions of <linux/err.h> 2012-10-10 15:25:56 +02:00
ibmpex.c hwmon: Add missing inclusions of <linux/err.h> 2012-10-10 15:25:56 +02:00
ina2xx.c hwmon: (ina2xx) use module_i2c_driver to simplify the code 2012-12-05 10:55:54 -08:00
it87.c hwmon: (it87) Support PECI for additional chips 2012-12-19 22:17:02 +01:00
jc42.c hwmon: (jc42) Don't reset hysteresis on device removal 2012-07-27 13:59:22 -07:00
jz4740-hwmon.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
k8temp.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
k10temp.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
lineage-pem.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
lm63.c hwmon: (lm63) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm70.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
lm73.c hwmon: (lm73} Detect and report i2c bus errors 2012-12-21 17:59:30 -08:00
lm75.c hwmon: (lm75) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm75.h hwmon: (lm75) fix checkpatch warnings 2012-01-05 08:19:35 -08:00
lm77.c hwmon: (lm77) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm78.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
lm80.c hwmon: (lm80) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm83.c hwmon: (lm83) Convert to use devm_ functions 2012-07-21 21:48:38 -07:00
lm85.c hwmon: (lm85) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm87.c hwmon: (lm87) Convert to use devm_ functions 2012-07-21 21:48:40 -07:00
lm90.c hwmon: (lm90) Convert to use devm_ functions 2012-07-21 21:48:38 -07:00
lm92.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
lm93.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
lm95241.c hwmon: (lm95241) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
lm95245.c hwmon: (lm95245) Convert to use devm_ functions 2012-09-23 21:08:31 -07:00
ltc4151.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
ltc4215.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
ltc4245.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
ltc4261.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
max197.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
max1111.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
max1619.c hwmon: Update Alexey Fisher's name 2012-10-10 15:25:56 +02:00
max1668.c hwmon: (max1668) Convert to use devm_ functions 2012-09-23 21:08:32 -07:00
max6639.c hwmon: (max6639) Convert to use devm_ functions 2012-07-21 21:48:38 -07:00
max6642.c hwmon: Update Alexey Fisher's name 2012-10-10 15:25:56 +02:00
max6650.c hwmon: (max6650) Convert to use devm_ functions 2012-07-21 21:48:37 -07:00
max16065.c hwmon: Drop needless includes of <linux/delay.h> 2012-10-10 15:25:57 +02:00
mc13783-adc.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
mcp3021.c hwmon: (mcp3021) Add MCP3221 support 2012-09-23 21:08:36 -07:00
ntc_thermistor.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
pc87360.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
pc87427.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
pcf8591.c hwmon: (pcf8591) Convert to use devm_ functions 2012-07-21 21:48:41 -07:00
s3c-hwmon.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
sch56xx-common.c hwmon: (sch56xx-common) Fix build warnings 2012-09-23 21:08:29 -07:00
sch56xx-common.h watchdog: sch56xx: Use watchdog core 2012-05-30 07:55:38 +02:00
sch5627.c hwmon: remove use of __devinit 2012-11-28 11:49:40 -08:00
sch5636.c hwmon: remove use of __devinit 2012-11-28 11:49:40 -08:00
sht15.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
sht21.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
sis5595.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
smm665.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
smsc47b397.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
smsc47m1.c hwmon: (smsc47m1) Convert to use devm_ functions 2012-07-21 21:48:43 -07:00
smsc47m192.c hwmon: (smsc47m192) Convert to use devm_ functions 2012-07-21 21:48:43 -07:00
thmc50.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
tmp102.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
tmp401.c hwmon: (tmp401) Convert to use devm_ functions 2012-07-21 21:48:42 -07:00
tmp421.c hwmon: (tmp421) Convert to use devm_ functions 2012-07-21 21:48:42 -07:00
twl4030-madc-hwmon.c hwmon: (twl4030-madc-hwmon) Fix warning message caused by removal of __devexit 2012-12-16 18:21:33 -08:00
ultra45_env.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
vexpress.c hwmon: Versatile Express hwmon driver 2012-10-16 17:12:35 +01:00
via-cputemp.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
via686a.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
vt1211.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
vt8231.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
w83l785ts.c hwmon: (w83l785ts) Convert to use devm_ functions 2012-07-21 21:48:43 -07:00
w83l786ng.c hwmon: Fix chip feature table headers 2012-11-05 21:54:40 +01:00
w83627ehf.c hwmon: (w83627ehf) Get rid of smatch warnings 2012-12-19 22:17:00 +01:00
w83627hf.c hwmon: (w83627hf) Don't touch nonexistent I2C address registers 2012-12-19 22:17:00 +01:00
w83781d.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
w83791d.c hwmon: Fix chip feature table headers 2012-11-05 21:54:40 +01:00
w83792d.c hwmon: Fix chip feature table headers 2012-11-05 21:54:40 +01:00
w83793.c hwmon: Add missing inclusions of <linux/jiffies.h> 2012-10-10 15:25:56 +02:00
w83795.c hwmon: Drop needless includes of <linux/delay.h> 2012-10-10 15:25:57 +02:00
wm831x-hwmon.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00
wm8350-hwmon.c hwmon: remove use of __devexit 2012-11-28 11:50:34 -08:00