Skip to content

Commit

Permalink
hwmon: (pmbus/lm25066) Ignore byte writes to non-zero pages
Browse files Browse the repository at this point in the history
pmbus_clear_faults() attempts to clear faults on non-existing real pages.
As a result, the command error bit in the status register is set, and faults
are not really cleared.

All byte writes to non-zero pages are requests to clear the status register
on that page. Since non-zero pages are virtual and do not exist on the chip,
there is nothing to do, and such requests have to be ignored. This fixes
above problem.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
  • Loading branch information
Guenter Roeck committed Aug 11, 2011
1 parent 044cd3a commit 3a2805e
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/hwmon/pmbus/lm25066.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,17 @@ static int lm25066_write_word_data(struct i2c_client *client, int page, int reg,
return ret;
}

static int lm25066_write_byte(struct i2c_client *client, int page, u8 value)
{
if (page > 1)
return -EINVAL;

if (page == 0)
return pmbus_write_byte(client, 0, value);

return 0;
}

static int lm25066_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
Expand Down Expand Up @@ -204,6 +215,7 @@ static int lm25066_probe(struct i2c_client *client,

info->read_word_data = lm25066_read_word_data;
info->write_word_data = lm25066_write_word_data;
info->write_byte = lm25066_write_byte;

switch (id->driver_data) {
case lm25066:
Expand Down

0 comments on commit 3a2805e

Please sign in to comment.