mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 02:04:19 +08:00
hwmon: (pmbus) More stringent checking of VOUT_MODE register
Some PMBus chips do not support the VOUT_MODE register. To make matters worse, such chips may not return an error when reading the register either, but instead return 0xff. Check if the register exists using pmbus_check_byte_register() before reading its value. In addition, validate the returned value and ignore it if it is 0xff (which is invalid). Reported-by: Greg Schnorr <gschnorr@cisco.com> Tested-by: Greg Schnorr <gschnorr@cisco.com> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> Acked-by: Greg Schnorr <gschnorr@cisco.com>
This commit is contained in:
parent
a3eeb45353
commit
83274c68a3
@ -1426,10 +1426,11 @@ static void pmbus_find_attributes(struct i2c_client *client,
|
||||
static int pmbus_identify_common(struct i2c_client *client,
|
||||
struct pmbus_data *data)
|
||||
{
|
||||
int vout_mode, exponent;
|
||||
int vout_mode = -1, exponent;
|
||||
|
||||
vout_mode = pmbus_read_byte_data(client, 0, PMBUS_VOUT_MODE);
|
||||
if (vout_mode >= 0) {
|
||||
if (pmbus_check_byte_register(client, 0, PMBUS_VOUT_MODE))
|
||||
vout_mode = pmbus_read_byte_data(client, 0, PMBUS_VOUT_MODE);
|
||||
if (vout_mode >= 0 && vout_mode != 0xff) {
|
||||
/*
|
||||
* Not all chips support the VOUT_MODE command,
|
||||
* so a failure to read it is not an error.
|
||||
|
Loading…
Reference in New Issue
Block a user