mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
hwmon: (pmbus/tps53679) Fix TPS53676 phase page decoding
tps53676_identify() reads the USER_DATA_03 phase configuration to count
the phases assigned to each channel and derive the number of PMBus pages.
In each 16-bit phase descriptor the channel (PAGE) is encoded in bit 4 and
the firing order in bits 3:0, but the code tested bit 3 (0x08), which is
part of the firing-order field.
TPS53676 supports up to seven phases, so firing-order bit 3 is never set.
As a result the existing test classifies every enabled phase as channel A.
On a dual-channel configuration the phases assigned to channel B are
therefore miscounted as channel A and page 1 is not exposed.
Test the PAGE field (bit 4) instead.
Fixes: cb3d37b590 ("hwmon: (pmbus/tps53679) Add support for TI TPS53676")
Cc: stable@vger.kernel.org
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Link: https://patch.msgid.link/20260915164823.160977-2-sanman.pradhan@hpe.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
e6cb0b4d4e
commit
1d12fb94ac
|
|
@ -187,7 +187,7 @@ static int tps53676_identify(struct i2c_client *client,
|
|||
return -EIO;
|
||||
for (i = 0; i < 2 * TPS53676_MAX_PHASES; i += 2) {
|
||||
if (buf[i + 1] & 0x80) {
|
||||
if (buf[i] & 0x08)
|
||||
if (buf[i] & BIT(4))
|
||||
phases_b++;
|
||||
else
|
||||
phases_a++;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user