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
hwmon: (ab8500) Call kernel_power_off instead of pm_power_off
2014-10-03 08:19:02 -07:00
abituguru.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
abituguru3.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: (ad7414) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:35 -07:00
ad7418.c
hwmon: (ad7418) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:35 -07:00
adc128d818.c
hwmon: (adc128d818) Do proper sign extension
2015-01-25 21:24:00 -08:00
adcxx.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
adm1021.c
hwmon: (adm1021) Avoid forward declaration
2014-08-04 07:01:36 -07:00
adm1025.c
hwmon: (adm1025) Fix vrm write operation
2014-08-05 19:44:36 -07:00
adm1026.c
hwmon: (adm1026) Fix vrm write operation
2014-08-05 19:44:36 -07:00
adm1029.c
hwmon: (adm1029) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:35 -07:00
adm1031.c
hwmon: (adm1031) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:37 -07:00
adm9240.c
hwmon: (adm9240) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:37 -07:00
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
hwmon: (adt7411) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:40 -07:00
adt7462.c
hwmon: (adt7462) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:39 -07:00
adt7470.c
hwmon: (adt7470) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:39 -07:00
adt7475.c
amc6821.c
hwmon: (amc6821) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:35 -07:00
applesmc.c
hwmon : (applesmc) Fix uninitialized variables warnings
2015-11-15 21:52:39 -08:00
asb100.c
hwmon: (asb100) Fix vrm write operation
2014-08-05 19:44:36 -07:00
asc7621.c
hwmon: (asc7621) Make map tables const
2014-08-04 07:01:38 -07:00
asus_atk0110.c
fs.h, drivers/hwmon/asus_atk0110.c: fix DEFINE_SIMPLE_ATTRIBUTE semicolon definition and use
2014-08-06 18:01:23 -07:00
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
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
da9055-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
ds620.c
hwmon: (ds620) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:38 -07:00
ds1621.c
hwmon: (ds1621) Update zbits after conversion rate change
2014-08-28 11:18:47 -07:00
emc6w201.c
hwmon: (emc6w201) Fix temperature limit range
2014-08-05 17:49:12 -07:00
emc1403.c
hwmon: Make regmap configs const
2014-08-04 07:01:35 -07:00
emc2103.c
hwmon: (emc2103) Fix typo in MODULE_PARM_DESC
2016-05-26 11:06:53 +02:00
f71805f.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: (g760a) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:37 -07:00
g762.c
hwmon: (g762) Drop owner assignment from struct i2c_driver
2015-08-09 13:44:26 -07:00
gl518sm.c
hwmon: (gl518sm) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:36 -07:00
gl520sm.c
hwmon: (gl520sm) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:36 -07:00
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: (hih6130) Fix missing hih6130->write_length setting
2014-08-05 19:40:27 -07:00
hwmon-vid.c
hwmon.c
hwmon: Do not accept invalid name attributes
2014-03-03 08:01:06 -08:00
i5k_amb.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
i5500_temp.c
hwmon: (i5500_temp) Convert to use ATTRIBUTE_GROUPS macro
2015-01-24 14:16:22 +01:00
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
hwmon: (ibmpex) Allow format string checking
2015-03-09 09:59:35 -07:00
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
hwmon: (jc42) Add support for additional IDT temperature sensors
2015-03-09 09:59:35 -07:00
jz4740-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: (lineage-pem) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:37 -07:00
lm63.c
hwmon: (lm63) Fix smatch warnings
2014-08-04 07:01:36 -07:00
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
hwmon: (lm77) Prevent overflow problem when writing large limits
2014-07-31 09:41:46 -07:00
lm78.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
lm80.c
hwmon: (lm80) Rearrange code to avoid forward declarations
2014-05-21 16:02:26 -07:00
lm83.c
hwmon: (lm83) Convert to use devm_hwmon_device_register_with_groups
2014-05-21 16:02:26 -07:00
lm85.c
hwmon: (lm85) use find_closest() in x_TO_REG() functions
2015-04-17 09:03:55 -04:00
lm87.c
hwmon: (lm87) Fix vrm write operation
2014-08-05 19:44:42 -07:00
lm90.c
hwmon: (lm90) use proper type for update_interval
2016-06-07 20:13:05 -07:00
lm92.c
hwmon: (lm92) Prevent overflow problem when writing large limits
2014-08-05 17:48:52 -07:00
lm93.c
hwmon: (lm93) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:36 -07:00
lm95234.c
hwmon: (lm95234) Add support for LM95233
2014-12-02 06:11:53 -08:00
lm95241.c
lm95245.c
hwmon: (lm95245) Add support for LM95235
2014-12-02 03:44:18 -08:00
ltc2945.c
hwmon: Make regmap configs const
2014-08-04 07:01:35 -07:00
ltc2990.c
hwmon: Add LTC2990 sensor driver
2016-03-05 06:25:34 -08:00
ltc4151.c
hwmon: (ltc4151) Convert to devm_hwmon_device_register_with_groups
2014-06-12 08:36:47 -07:00
ltc4215.c
ltc4222.c
hwmon: Make regmap configs const
2014-08-04 07:01:35 -07:00
ltc4245.c
ltc4260.c
hwmon: Make regmap configs const
2014-08-04 07:01:35 -07:00
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
hwmon: (max1619) Convert to use devm_hwmon_device_register_with_groups
2014-05-21 16:02:25 -07:00
max1668.c
hwmon: (max1668) Make max1668_addr_list array const
2014-08-04 07:01:39 -07:00
max6639.c
hwmon: (max6639) Make normal_i2c array const
2014-08-04 07:01:39 -07:00
max6642.c
max6650.c
max6697.c
hwmon: (max6697) Use of_property_read_bool at appropriate places
2014-08-04 07:01:40 -07:00
max16065.c
hwmon: (max16065) Use PTR_ERR_OR_ZERO
2014-08-04 07:01:38 -07:00
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
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
mcp3021.c
hwmon: (mcp3021) Fix broken output scaling
2015-07-01 13:56:27 -07:00
menf21bmc_hwmon.c
Merge branch 'platform/remove_owner' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into driver-core-next
2014-11-03 19:53:56 -08:00
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
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
pc87427.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
pcf8591.c
powr1220.c
hwmon: Add support for Lattice's POWR1220 power manager IC
2014-08-04 07:01:33 -07:00
pwm-fan.c
hwmon: pwm-fan: Use pwm_get_args() where appropriate
2016-05-17 14:45:00 +02:00
s3c-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
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
hwmon: (sht21) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:38 -07:00
shtc1.c
hwmon: add support for Sensirion SHTC1 sensor
2014-06-12 08:36:48 -07:00
sis5595.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
smm665.c
hwmon: (smm665) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:37 -07:00
smsc47b397.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
smsc47m1.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
smsc47m192.c
hwmon: (smsc47m192) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:39 -07:00
tc74.c
hwmon: add driver for Microchip TC74
2015-06-21 22:54:53 -07:00
thmc50.c
hwmon: (thmc50) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:39 -07:00
tmp102.c
hwmon: convert tmp102 to use devm_thermal_zone_of_sensor_register
2016-05-17 07:28:25 -07:00
tmp103.c
hwmon: (tmp103) Fix resource leak bug in tmp103 temperature sensor driver
2014-09-22 11:11:48 -07:00
tmp401.c
hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37
2015-05-29 13:37:06 -07:00
tmp421.c
hwmon: (tmp421) Drop FSF mailing address
2014-08-04 07:01:38 -07:00
twl4030-madc-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
ultra45_env.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
vexpress-hwmon.c
hwmon: (vexpress) rename vexpress hwmon implementation
2016-03-05 06:25:33 -08:00
via-cputemp.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
via686a.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
vt1211.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
vt8231.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
w83l785ts.c
hwmon: Avoid initializing the same field twice
2014-04-04 18:01:34 +02:00
w83l786ng.c
hwmon: (w83l786ng) Convert to devm_hwmon_device_register_with_groups
2014-08-04 07:01:34 -07:00
w83627ehf.c
hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg()
2015-07-03 14:39:06 +02:00
w83627hf.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
w83781d.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
w83791d.c
hwmon: (w83791d) Fix vrm write operation
2014-08-05 19:44:42 -07:00
w83792d.c
hwmon: (w83792d) Additional PWM outputs support
2015-07-03 14:39:05 +02:00
w83793.c
hwmon: (w83793) Fix vrm write operation
2014-08-05 19:44:42 -07:00
w83795.c
hwmon: (w83795) use find_closest_descending() in pwm_freq_to_reg()
2015-04-17 09:03:55 -04:00
wm831x-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00
wm8350-hwmon.c
hwmon: drop owner assignment from platform_drivers
2014-10-20 16:20:36 +02:00