kernel-ark/drivers/hwmon
Pali Rohár 5ce91714b0 hwmon: (dell-smm) Cache fan_type() calls and change fan detection
On more Dell machines (e.g. Dell Precision M3800) fan_type() call is too
expensive (CPU is too long in SMM mode) and cause kernel to hang. This is
bug in Dell SMM or BIOS.

This patch caches type for each fan (as it should not change) and changes
the way how fan presense is detected. First it try function fan_status()
as was before commit f989e55452 ("i8k: Add support for fan labels"). And
if that fails fallback to fan_type(). *_status() functions can fail in case
fan is not currently accessible (e.g. present on GPU which is currently
turned off).

Reported-by: Tolga Cakir <cevelnet@gmail.com>
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=112021
Cc: stable@vger.kernel.org # v4.0+, will need backport
Tested-by: Tolga Cakir <cevelnet@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2016-06-23 06:24:23 -07:00
..
pmbus hwmon: (adm1275) Add support for ADM1278 2016-03-05 06:36:03 -08:00
ab8500.c
abituguru3.c
abituguru.c
abx500.c hwmon: (abx500) drop the use of IRQF_NO_SUSPEND 2015-10-14 07:57:14 -07:00
abx500.h
acpi_power_meter.c
ad7314.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
ad7414.c
ad7418.c
adc128d818.c
adcxx.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adm1021.c
adm1025.c
adm1026.c
adm1029.c
adm1031.c
adm9240.c
ads1015.c hwmon: (ads1015) Handle negative conversion values correctly 2016-02-18 19:14:04 -08:00
ads7828.c hwmon: (ads7828) Enable internal reference 2016-04-19 06:30:28 -07:00
ads7871.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adt7x10.c
adt7x10.h
adt7310.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adt7410.c
adt7411.c
adt7462.c
adt7470.c
adt7475.c
amc6821.c
applesmc.c hwmon : (applesmc) Fix uninitialized variables warnings 2015-11-15 21:52:39 -08:00
asb100.c
asc7621.c
asus_atk0110.c
atxp1.c hwmon: (atxp1) Drop auto-detection 2015-05-31 22:58:36 -07:00
coretemp.c hwmon: (coretemp) Increase limit of maximum core ID from 32 to 128. 2015-10-14 07:57:14 -07:00
da9052-hwmon.c
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Cache fan_type() calls and change fan detection 2016-06-23 06:24:23 -07:00
dme1737.c
ds620.c
ds1621.c
emc6w201.c
emc1403.c
emc2103.c hwmon: (emc2103) Fix typo in MODULE_PARM_DESC 2016-05-26 11:06:53 +02:00
f71805f.c
f71882fg.c hwmon: (f71882fg) Add support for f81768d 2015-08-09 13:44:26 -07:00
f75375s.c
fam15h_power.c hwmon: (fam15h_power) Disable preemption when reading registers 2016-06-07 20:11:10 -07:00
fschmd.c
g760a.c
g762.c hwmon: (g762) Drop owner assignment from struct i2c_driver 2015-08-09 13:44:26 -07:00
gl518sm.c
gl520sm.c
gpio-fan.c hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook 2016-02-19 17:14:25 -08:00
hih6130.c
hwmon-vid.c
hwmon.c
i5k_amb.c
i5500_temp.c
ibmaem.c hwmon: (ibmaem) constify aem_rw_sensor_template and aem_ro_sensor_template structures 2016-01-04 08:56:22 -08:00
ibmpex.c
ibmpowernv.c hwmon: (ibmpowernv) Add OF compatibility table entry 2015-10-14 07:57:14 -07:00
iio_hwmon.c hwmon: (iio_hwmon) Allow the driver to accept hypen in device tree node names 2016-03-05 06:25:34 -08:00
ina2xx.c hwmon: (ina2xx) remove no longer used variable 'kind' 2015-10-31 08:46:01 -07:00
ina209.c
it87.c hwmon: (it87) Add support for IT8628E 2016-04-19 06:32:38 -07:00
jc42.c
jz4740-hwmon.c
k8temp.c
k10temp.c hwmon: (k10temp) Remove duplicate pci-id define 2015-11-09 10:14:29 +01:00
Kconfig hwmon: (it87) Add support for IT8628E 2016-04-19 06:32:38 -07:00
lineage-pem.c
lm63.c
lm70.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
lm73.c
lm75.c hwmon: convert lm75 to use devm_thermal_zone_of_sensor_register 2016-05-17 07:28:25 -07:00
lm75.h
lm77.c
lm78.c
lm80.c
lm83.c
lm85.c
lm87.c
lm90.c hwmon: (lm90) use proper type for update_interval 2016-06-07 20:13:05 -07:00
lm92.c
lm93.c
lm95234.c
lm95241.c
lm95245.c
ltc2945.c
ltc2990.c hwmon: Add LTC2990 sensor driver 2016-03-05 06:25:34 -08:00
ltc4151.c
ltc4215.c
ltc4222.c
ltc4245.c
ltc4260.c
ltc4261.c
Makefile hwmon: (max31722) Add support for MAX31722/MAX31723 temperature sensors 2016-04-19 06:32:34 -07:00
max197.c hwmon: (max197) Constify platform_device_id 2015-05-31 22:58:36 -07:00
max1111.c hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated 2016-03-27 10:37:48 -07:00
max1619.c
max1668.c
max6639.c
max6642.c
max6650.c
max6697.c
max16065.c
max31722.c hwmon: (max31722) Add support for MAX31722/MAX31723 temperature sensors 2016-04-19 06:32:34 -07:00
max31790.c hwmon: (max31790) Fix dereference of ERR_PTR 2015-10-14 07:57:14 -07:00
mc13783-adc.c
mcp3021.c hwmon: (mcp3021) Fix broken output scaling 2015-07-01 13:56:27 -07:00
menf21bmc_hwmon.c
nct6683.c hwmon: (nct6683) Add basic support for NCT6683 on Mitac boards 2016-01-09 07:31:58 -08:00
nct6775.c hwmon: (nct6683,nct6775) constify sensor_template_group structures 2015-12-18 08:20:59 -08:00
nct7802.c hwmon: (nct7802) Add auto_point attributes 2015-08-09 13:44:27 -07:00
nct7904.c hwmon: (nct7904) Export I2C module alias information 2015-08-05 08:31:59 -07:00
nsa320-hwmon.c hwmon: Create an NSA320 hardware monitoring driver 2016-03-08 18:40:49 -08:00
ntc_thermistor.c hwmon: convert ntc_thermistor to use devm_thermal_zone_of_sensor_register 2016-05-17 07:28:25 -07:00
pc87360.c
pc87427.c
pcf8591.c
powr1220.c
pwm-fan.c hwmon: pwm-fan: Use pwm_get_args() where appropriate 2016-05-17 14:45:00 +02:00
s3c-hwmon.c
sch56xx-common.c hwmon: (sch56xx) Drop watchdog driver data reference count callbacks 2015-12-29 20:36:04 +01:00
sch56xx-common.h
sch5627.c
sch5636.c hwmon: (sch5636) trivial fix of spelling mistake on revision 2016-04-25 07:26:29 -07:00
scpi-hwmon.c hwmon: convert scpi-hwmon to use devm_thermal_zone_of_sensor_register 2016-05-17 07:28:26 -07:00
sht15.c hwmon:change sht15_reverse() 2015-08-10 23:00:10 -07:00
sht21.c
shtc1.c
sis5595.c
smm665.c
smsc47b397.c
smsc47m1.c
smsc47m192.c
tc74.c hwmon: add driver for Microchip TC74 2015-06-21 22:54:53 -07:00
thmc50.c
tmp102.c hwmon: convert tmp102 to use devm_thermal_zone_of_sensor_register 2016-05-17 07:28:25 -07:00
tmp103.c
tmp401.c
tmp421.c
twl4030-madc-hwmon.c
ultra45_env.c
vexpress-hwmon.c hwmon: (vexpress) rename vexpress hwmon implementation 2016-03-05 06:25:33 -08:00
via686a.c
via-cputemp.c
vt1211.c
vt8231.c
w83l785ts.c
w83l786ng.c
w83627ehf.c hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg() 2015-07-03 14:39:06 +02:00
w83627hf.c
w83781d.c
w83791d.c
w83792d.c hwmon: (w83792d) Additional PWM outputs support 2015-07-03 14:39:05 +02:00
w83793.c
w83795.c
wm831x-hwmon.c
wm8350-hwmon.c