Skip to content

Commit 6f11461

Browse files
groeckgregkh
authored andcommitted
hwmon: (max6639) Fix pulses-per-revolution implementation
[ Upstream commit e7bae9a ] The valid range for the pulses-per-revolution devicetree property is 1..4. The current code checks for a range of 1..5. Fix it. Declare the variable used to retrieve pulses per revolution from devicetree as u32 (unsigned) to match the of_property_read_u32() API. The current code uses a postfix decrement when writing the pulses per resolution into the chip. This has no effect since the value is evaluated before it is decremented. Fix it by decrementing before evaluating the value. Fixes: 7506ebc ("hwmon: (max6639) : Configure based on DT property") Cc: Naresh Solanki <naresh.solanki@9elements.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 50802d4 commit 6f11461

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

drivers/hwmon/max6639.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ static int max6639_read_fan(struct device *dev, u32 attr, int channel,
232232
static int max6639_set_ppr(struct max6639_data *data, int channel, u8 ppr)
233233
{
234234
/* Decrement the PPR value and shift left by 6 to match the register format */
235-
return regmap_write(data->regmap, MAX6639_REG_FAN_PPR(channel), ppr-- << 6);
235+
return regmap_write(data->regmap, MAX6639_REG_FAN_PPR(channel), --ppr << 6);
236236
}
237237

238238
static int max6639_write_fan(struct device *dev, u32 attr, int channel,
@@ -524,8 +524,8 @@ static int max6639_probe_child_from_dt(struct i2c_client *client,
524524

525525
{
526526
struct device *dev = &client->dev;
527-
u32 i;
528-
int err, val;
527+
u32 i, val;
528+
int err;
529529

530530
err = of_property_read_u32(child, "reg", &i);
531531
if (err) {
@@ -540,8 +540,8 @@ static int max6639_probe_child_from_dt(struct i2c_client *client,
540540

541541
err = of_property_read_u32(child, "pulses-per-revolution", &val);
542542
if (!err) {
543-
if (val < 1 || val > 5) {
544-
dev_err(dev, "invalid pulses-per-revolution %d of %pOFn\n", val, child);
543+
if (val < 1 || val > 4) {
544+
dev_err(dev, "invalid pulses-per-revolution %u of %pOFn\n", val, child);
545545
return -EINVAL;
546546
}
547547
data->ppr[i] = val;

0 commit comments

Comments
 (0)