linux-stable/drivers/hwmon
Martin Blumenstingl 5229b90337 hwmon: (jc42) Restore the min/max/critical temperatures on resume
[ Upstream commit 084ed144c4 ]

The JC42 compatible thermal sensor on Kingston KSM32ES8/16ME DIMMs
(using Micron E-Die) is an ST Microelectronics STTS2004 (manufacturer
0x104a, device 0x2201). It does not keep the previously programmed
minimum, maximum and critical temperatures after system suspend and
resume (which is a shutdown / startup cycle for the JC42 temperature
sensor). This results in an alarm on system resume because the hardware
default for these values is 0°C (so any environment temperature greater
than 0°C will trigger the alarm).

Example before system suspend:
  jc42-i2c-0-1a
  Adapter: SMBus PIIX4 adapter port 0 at 0b00
  temp1:        +34.8°C  (low  =  +0.0°C)
                         (high = +85.0°C, hyst = +85.0°C)
                         (crit = +95.0°C, hyst = +95.0°C)

Example after system resume (without this change):
  jc42-i2c-0-1a
  Adapter: SMBus PIIX4 adapter port 0 at 0b00
  temp1:        +34.8°C  (low  =  +0.0°C)             ALARM (HIGH, CRIT)
                         (high =  +0.0°C, hyst =  +0.0°C)
                         (crit =  +0.0°C, hyst =  +0.0°C)

Apply the cached values from the JC42_REG_TEMP_UPPER,
JC42_REG_TEMP_LOWER, JC42_REG_TEMP_CRITICAL and JC42_REG_SMBUS (where
the SMBUS register is not related to this issue but a side-effect of
using regcache_sync() during system resume with the previously
cached/programmed values. This fixes the alarm due to the hardware
defaults of 0°C because the previously applied limits (set by userspace)
are re-applied on system resume.

Fixes: 175c490c9e ("hwmon: (jc42) Add support for STTS2004 and AT30TSE004")
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://lore.kernel.org/r/20221023213157.11078-3-martin.blumenstingl@googlemail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:14:15 +01:00
..
occ hwmon: (occ) Prevent power cap command overwriting poll response 2022-07-07 17:53:35 +02:00
pmbus hwmon: (pmbus/mp2888) Fix sensors readouts for MPS Multi-phase mp2888 controller 2022-10-26 12:34:48 +02:00
abituguru.c
abituguru3.c
acpi_power_meter.c hwmon: acpi_power_meter: Get rid of ACPICA message printing 2021-03-08 19:10:30 +01:00
ad7314.c
ad7414.c
ad7418.c
adc128d818.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
adcxx.c
adm1021.c
adm1025.c
adm1026.c
adm1029.c
adm1031.c
adm1177.c hwmon: (adm1177) Fix kerneldoc attribute formatting 2020-12-02 17:42:23 -08:00
adm9240.c hwmon: (adm9240) Fix writes into inX_max attributes 2021-05-12 18:53:11 -07:00
ads7828.c
ads7871.c
adt7x10.c
adt7x10.h
adt7310.c
adt7410.c
adt7411.c
adt7462.c
adt7470.c hwmon: (adt7470) Fix warning on module removal 2022-05-12 12:30:11 +02:00
adt7475.c
aht10.c hwmon: (aht10) Unlock on error in aht10_read_values() 2021-01-27 17:44:19 -08:00
amc6821.c
applesmc.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
aquacomputer_d5next.c hwmon: add driver for Aquacomputer D5 Next 2021-08-28 08:53:30 -07:00
as370-hwmon.c
asb100.c
asc7621.c
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho) Switch to using the new API kobj_to_dev() 2021-01-27 17:44:18 -08:00
asus_atk0110.c
atxp1.c
axi-fan-control.c hwmon: (axi-fan-control) Support temperature vs pwm points 2021-08-17 14:54:26 -07:00
bt1-pvt.c hwmon: (bt1-pvt) Remove redundant error printing in pvt_request_regs() 2021-06-17 04:21:45 -07:00
bt1-pvt.h
coretemp.c hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() 2022-12-08 11:28:42 +01:00
corsair-cpro.c hwmon: (corsair-cpro) Fix fall-through warnings for Clang 2021-05-17 19:50:23 -05:00
corsair-psu.c hwmon: (corsair-psu) fix plain integer used as NULL pointer 2021-12-17 10:30:12 +01:00
da9052-hwmon.c hwmon: (da9052) Switch to using the new API kobj_to_dev() 2021-02-11 20:28:56 -08:00
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Add Dell XPS 13 7390 to fan control whitelist 2022-08-17 14:23:04 +02:00
dme1737.c
drivetemp.c hwmon: (drivetemp) Add module alias 2022-08-17 14:23:13 +02:00
ds620.c
ds1621.c hwmon: (ds1621) Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
emc6w201.c
emc1403.c
emc2103.c
f71805f.c
f71882fg.c hwmon: (f71882fg) Fix negative temperature 2022-05-18 10:26:51 +02:00
f75375s.c
fam15h_power.c hwmon: Replace deprecated CPU-hotplug functions. 2021-08-17 14:54:26 -07:00
fschmd.c
ftsteutates.c hwmon: (ftsteutates) Rudimentary typo fixes 2021-04-20 06:50:14 -07:00
g760a.c
g762.c
gl518sm.c
gl520sm.c
gpio-fan.c hwmon: (gpio-fan) Fix array out of bounds access 2022-09-08 12:28:05 +02:00
gsc-hwmon.c hwmon: (gsc-hwmon) Call of_node_get() before of_find_xxx API 2022-10-26 12:34:21 +02:00
hih6130.c
hwmon-vid.c
hwmon.c hwmon: Handle failure to register sensor with thermal zone correctly 2022-03-02 11:47:54 +01:00
i5k_amb.c
i5500_temp.c hwmon: (i5500_temp) fix missing pci_disable_device() 2022-12-08 11:28:39 +01:00
ibmaem.c hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-07 17:53:35 +02:00
ibmpex.c hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails 2022-12-08 11:28:39 +01:00
ibmpowernv.c hwmon: (ibmpowernv) Silence strncpy() warning 2020-12-02 17:42:23 -08:00
iio_hwmon.c hwmon: (iio_hwmon) Drop bogus __refdata annotation 2020-12-11 07:42:27 -08:00
ina2xx.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ina209.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ina3221.c hwmon: (ina3221) Fix shunt sum critical calculation 2022-12-08 11:28:39 +01:00
intel-m10-bmc-hwmon.c hwmon: intel-m10-bmc-hwmon: add n5010 sensors 2021-08-17 14:54:25 -07:00
it87.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
jc42.c hwmon: (jc42) Restore the min/max/critical temperatures on resume 2022-12-31 13:14:15 +01:00
k8temp.c
k10temp.c hwmon: (k10temp) Remove residues of current and voltage 2021-09-12 17:56:36 -07:00
Kconfig hwmon: (jc42) Convert register access and caching to regmap/regcache 2022-12-31 13:14:15 +01:00
lineage-pem.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
lm63.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
lm70.c hwmon: (lm70) Use SPI_MODE_X_MASK 2021-06-17 04:21:44 -07:00
lm73.c
lm75.c hwmon: (lm75) Add TI TMP1075 support 2021-06-17 04:21:44 -07:00
lm75.h
lm77.c
lm78.c
lm80.c Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" 2021-05-13 17:30:01 +02:00
lm83.c
lm85.c
lm87.c
lm90.c hwmon: (lm90) Fix sysfs and udev notifications 2022-02-01 17:27:12 +01:00
lm92.c
lm93.c
lm95234.c
lm95241.c
lm95245.c
lochnagar-hwmon.c
ltc2945.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc2947-core.c hwmon: (ltc2947) fix temperature scaling 2022-12-08 11:28:39 +01:00
ltc2947-i2c.c
ltc2947-spi.c
ltc2947.h
ltc2990.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc2992.c hwmon: (ltc2992) Put fwnode in error case during ->probe() 2021-05-10 08:02:15 -07:00
ltc4151.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4215.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4222.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4245.c
ltc4260.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltc4261.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
ltq-cputemp.c
Makefile hwmon: add driver for Aquacomputer D5 Next 2021-08-28 08:53:30 -07:00
max127.c hwmon: (max127) Add Maxim MAX127 hardware monitoring driver 2020-12-02 17:42:24 -08:00
max197.c
max1111.c
max1619.c
max1668.c
max6621.c hwmon: (max6621) Fix fall-through warnings for Clang 2021-05-17 19:50:37 -05:00
max6639.c
max6642.c
max6650.c hwmon: (max6650) Switch to using the new API kobj_to_dev() 2021-01-27 17:44:18 -08:00
max6697.c hwmon: Use kobj_to_dev() 2021-04-20 06:50:14 -07:00
max16065.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
max31722.c hwmon: (max31722) Remove non-standard ACPI device IDs 2021-06-17 04:21:44 -07:00
max31730.c
max31790.c hwmon: (max31790) Detect and report zero fan speed 2021-06-17 04:21:46 -07:00
mc13783-adc.c
mcp3021.c
menf21bmc_hwmon.c
mlxreg-fan.c hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs 2021-09-16 14:48:20 -07:00
mr75203.c hwmon: (mr75203) enable polling for all VM channels 2022-09-15 11:30:07 +02:00
nct6683.c hwmon: (nct6683) remove useless function 2021-04-20 06:50:14 -07:00
nct6775.c
nct7802.c
nct7904.c
npcm750-pwm-fan.c
nsa320-hwmon.c
ntc_thermistor.c hwmon: (ntc_thermistor) Use library interpolation 2021-08-17 14:54:25 -07:00
nzxt-kraken2.c hwmon: add driver for NZXT Kraken X42/X52/X62/X72 2021-04-20 06:50:14 -07:00
pc87360.c hwmon: (pc87360) convert comma to semicolon 2021-01-27 17:44:17 -08:00
pc87427.c
pcf8591.c
powr1220.c
pwm-fan.c hwmon: (pwm-fan) Ensure the fan going on in .probe() 2021-12-14 10:57:14 +01:00
raspberrypi-hwmon.c hwmon: raspberry-pi: Clean-up few drivers by using managed work init 2021-03-23 15:22:40 +01:00
s3c-hwmon.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
sbrmi.c hwmon: Add support for SB-RMI power module 2021-08-17 14:54:25 -07:00
sbtsi_temp.c hwmon: (sbtsi) Add basic support for SB-TSI sensors 2020-12-12 08:32:35 -08:00
sch56xx-common.c hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING 2022-04-08 14:23:07 +02:00
sch56xx-common.h hwmon: (sch56xx) Use devres functions for watchdog 2021-06-17 04:21:44 -07:00
sch5627.c hwmon: (sch56xx) Use devres functions for watchdog 2021-06-17 04:21:44 -07:00
sch5636.c hwmon: (sch56xx) Use devres functions for watchdog 2021-06-17 04:21:44 -07:00
scmi-hwmon.c hwmon: (scmi) port driver to the new scmi_sensor_proto_ops interface 2021-03-30 16:34:55 +01:00
scpi-hwmon.c hwmon: (scpi-hwmon) shows the negative temperature properly 2021-06-09 11:51:30 -07:00
sht3x.c
sht4x.c hwmon: (sht4x) do not overflow clamping operation on 32-bit platforms 2022-10-26 12:35:37 +02:00
sht15.c hwmon: (sht15) Fix wrong assumptions in device remove callback 2022-08-17 14:23:04 +02:00
sht21.c
shtc1.c
sis5595.c
sl28cpld-hwmon.c
smm665.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
smsc47b397.c
smsc47m1.c hwmon: (smsc47m1) Remove 'h' from printk format specifier 2021-01-27 17:44:17 -08:00
smsc47m192.c
sparx5-temp.c
stts751.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
tc74.c
tc654.c
thmc50.c
tmp102.c
tmp103.c
tmp108.c
tmp401.c hwmon: (tmp401) Add OF device ID table 2022-05-18 10:26:47 +02:00
tmp421.c hwmon: (tmp421) fix rounding for negative values 2021-09-24 05:00:53 -07:00
tmp513.c
tps23861.c hwmon: (tps23861) fix byte order in resistance register 2022-09-15 11:30:06 +02:00
ultra45_env.c
vexpress-hwmon.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00
via-cputemp.c
via686a.c
vt1211.c
vt8231.c
w83l785ts.c
w83l786ng.c
w83627ehf.c hwmon: (w83627ehf) Make DEVICE_ATTR_RO static 2021-08-17 14:54:25 -07:00
w83627hf.c
w83773g.c
w83781d.c hwmon: (w83781d) Match on device tree compatibles 2021-08-17 14:54:26 -07:00
w83791d.c hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-02 05:11:52 -07:00
w83792d.c hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-02 05:12:05 -07:00
w83793.c hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-02 05:14:11 -07:00
w83795.c
wm831x-hwmon.c
wm8350-hwmon.c
xgene-hwmon.c hwmon: replace snprintf in show functions with sysfs_emit 2021-04-20 06:50:14 -07:00