OpenCloudOS-Kernel/drivers/hwmon/pmbus
Patrick Rudolph e7593bda6a hwmon: pmbus: Fix -EIO seen on pli1209
After doing performance optimizations the pli1209 driver failed to
probe with a probabilty of 2%. It wasn't able to read the PMBUS_OPERATION
register due to an -EIO error.

An investigation showed that the PLI1209 takes 230 usec to execute the
CLEAR_FAULTS command. During that time it's busy and NACKs all requests
on the SMBUS interface. It also NACKs reads on PMBUS_STATUS_BYTE
making it impossible to poll the BUSY flag.

Add a custom write_data function to just wait for not BUSY unconditionally
after sending a CLEAR_FAULTS command.

TEST: Verified using an I2C bus analyser that no more NACKs are seen after
      sending a CLEAR_FAULTS command.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com>
Link: https://lore.kernel.org/r/20230817092527.808631-3-Naresh.Solanki@9elements.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2023-08-21 06:04:31 -07:00
..
Kconfig hwmon: (pmbus/mp2975) Add regulator support 2023-08-21 06:04:30 -07:00
Makefile hwmon: (pmbus/acbel-fsg032) Add Acbel power supply 2023-04-19 07:08:40 -07:00
acbel-fsg032.c hwmon: (pmbus/acbel-fsg032) Add firmware version debugfs attribute 2023-08-21 06:04:29 -07:00
adm1266.c hwmon: (pmbus/adm1266) Drop unnecessary error check for debugfs_create_dir 2023-06-08 06:43:00 -07:00
adm1275.c hwmon: (pmbus/adm1275) Disable ADC while updating PMON_CONFIG 2023-06-22 10:39:58 -07:00
bel-pfe.c hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100 2023-08-06 06:22:33 -07:00
bpa-rs600.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
delta-ahe50dc-fan.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
dps920ab.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
fsp-3y.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ibm-cffps.c hwmon: (pmbus/ibm-cffps) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
inspur-ipsps.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir35221.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir36021.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir38064.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
irps5401.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
isl68137.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm25066.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lt7182s.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2978.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc3815.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max8688.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max15301.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16064.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16601.c hwmon: (pmbus/max16601) Add support for new revisions of MAX16508 2023-06-10 08:28:14 -07:00
max20730.c hwmon: (max20730) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
max20751.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max31785.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max34440.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2888.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2975.c hwmon: (pmbus/mp2975) Fix PGOOD in READ_STATUS_WORD 2023-08-21 06:04:30 -07:00
mp5023.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
mpq7932.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
pim4328.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pli1209bc.c hwmon: pmbus: Fix -EIO seen on pli1209 2023-08-21 06:04:31 -07:00
pm6764tr.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus.h hwmon: (pmbus/core) Add lock and unlock functions 2023-04-19 07:08:40 -07:00
pmbus_core.c hwmon: pmbus: Drop unnecessary clear fault page 2023-08-21 06:04:31 -07:00
pxe1610.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
q54sj108a2.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
stpddc60.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tda38640.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps546d24.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps40422.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps53679.c hwmon: (pmbus/tps53679) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
ucd9000.c hwmon: (pmbus/ucd9000) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
ucd9200.c hwmon: (pmbus/ucd9200) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
xdpe152c4.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
xdpe12284.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
zl6100.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00