OpenCloudOS-Kernel/drivers/hwmon/pmbus
Adam Wujek d1baf7a3a3 hwmon: (pmbus) Check PEC support before reading other registers
Make sure that the support of PEC is determined before the read of other
registers. Otherwise the validation of PEC can trigger an error on the read
of STATUS_BYTE or STATUS_WORD registers.

The problematic scenario is the following. A device with enabled PEC
support is up and running and a kernel driver is loaded.
Then the driver is unloaded (or device unbound), the HW device
is reconfigured externally (e.g. by i2cset) to advertise itself as not
supporting PEC. Without the move of the code, at the second load of
the driver (or bind) the STATUS_BYTE or STATUS_WORD register is always
read with PEC enabled, which is likely to cause a read error resulting
with fail of a driver load (or bind).

Signed-off-by: Adam Wujek <dev_public@wujek.eu>
Link: https://lore.kernel.org/r/20220519233334.438621-1-dev_public@wujek.eu
Fixes: 75d2b2b06b ("hwmon: (pmbus) disable PEC if not enabled")
Fixes: 4e5418f787 ("hwmon: (pmbus_core) Check adapter PEC support")
[groeck: Added Fixes: tags, dropped continuation line]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2022-05-22 11:32:32 -07:00
..
Kconfig hwmon: (pmbus) Add support for Infineon Digital Multi-phase xdp152 family controllers 2022-05-22 11:32:20 -07:00
Makefile hwmon: (pmbus) Add support for Infineon Digital Multi-phase xdp152 family controllers 2022-05-22 11:32:20 -07:00
adm1266.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
adm1275.c hwmon: (adm1275) Allow setting sample averaging 2022-03-02 09:57:18 -08:00
bel-pfe.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
bpa-rs600.c hwmon: (pmbus/bpa-rs600) Add workaround for incorrect Pin max 2021-08-17 14:54:27 -07:00
delta-ahe50dc-fan.c hwmon: (pmbus) delta-ahe50dc-fan: work around hardware quirk 2022-04-27 04:52:18 -07:00
dps920ab.c hwmon: (pmbus/dps920ab) Delete some dead code 2021-06-18 12:45:58 -07:00
fsp-3y.c hwmon: (pmbus/fsp-3y) Fix FSP-3Y YH-5151E VOUT 2021-05-16 16:00:55 -07:00
ibm-cffps.c hwmon: (pmbus/ibm-cffps) Use MFR_ID to choose version 2021-10-12 07:22:41 -07:00
inspur-ipsps.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
ir35221.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
ir36021.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
ir38064.c hwmon: (pmbus/ir38064) Mark ir38064_of_match as __maybe_unused 2022-01-23 18:21:27 -08:00
irps5401.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
isl68137.c hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_3 for RAA228228 2021-05-16 16:00:56 -07:00
lm25066.c hwmon: (pmbus/lm25066) Add regulator support 2022-02-27 17:03:18 -08:00
ltc2978.c hwmon: (pmbus/ltc2978) Add chip specific write_byte_data 2022-05-20 10:57:06 -07:00
ltc3815.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max8688.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max15301.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max16064.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max16601.c hwmon: (pmbus/max16601) Add MAX16602 support 2022-05-20 10:57:05 -07:00
max20730.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max20751.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max31785.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
max34440.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
mp2888.c hwmon: (pmbus) Add support for MPS Multi-phase mp2888 controller 2021-06-17 04:21:45 -07:00
mp2975.c hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller 2021-10-02 04:45:49 -07:00
mp5023.c hwmon: (pmbus) Add support for MPS Multi-phase mp5023 2021-12-26 15:02:06 -08:00
pim4328.c hwmon: (pmbus/pim4328) Add PMBus driver for PIM4006, PIM4328 and PIM4820 2021-06-17 04:21:46 -07:00
pli1209bc.c hwmon: (pmbus/pli1209bc) Add regulator support 2022-02-27 17:03:19 -08:00
pm6764tr.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
pmbus.c hwmon: (pmbus) Add support for additional Flex BMR converters to pmbus 2021-06-17 04:21:45 -07:00
pmbus.h hwmon: (pmbus) Introduce and use write_byte_data callback 2022-05-20 10:57:06 -07:00
pmbus_core.c hwmon: (pmbus) Check PEC support before reading other registers 2022-05-22 11:32:32 -07:00
pxe1610.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
q54sj108a2.c hwmon/pmbus: (q54sj108a2) The PMBUS_MFR_ID is actually 6 chars instead of 5 2021-05-17 16:02:05 -07:00
stpddc60.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
tps40422.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
tps53679.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
ucd9000.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
ucd9200.c hwmon: (pmbus) Introduce PMBUS symbol namespace 2021-04-20 06:50:14 -07:00
xdpe152c4.c hwmon: (pmbus) Add support for Infineon Digital Multi-phase xdp152 family controllers 2022-05-22 11:32:20 -07:00
xdpe12284.c hwmon: (xdpe12284) Fix build warning seen if CONFIG_SENSORS_XDPE122_REGULATOR is disabled 2022-04-04 06:54:30 -07:00
zl6100.c hwmon: (pmbus/zl6100) Add support for ZLS1003, ZLS4009 and ZL8802 2021-06-17 04:21:43 -07:00