]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: cy8c95x0: Fix off-by-one in the regmap range settings
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 3 Feb 2025 13:10:27 +0000 (15:10 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 3 Feb 2025 13:33:43 +0000 (14:33 +0100)
The range_max is inclusive, so we need to use the number of
the last accessible register address.

Fixes: 8670de9fae49 ("pinctrl: cy8c95x0: Use regmap ranges")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/20250203131506.3318201-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-cy8c95x0.c

index 0d6c2027d4c18a67374eab7ff6f1b0c593f99ae3..5c6bcbf6c3377fa4f503f6996f66b2deefb17a7c 100644 (file)
@@ -1438,15 +1438,15 @@ static int cy8c95x0_probe(struct i2c_client *client)
        switch (chip->tpin) {
        case 20:
                strscpy(chip->name, cy8c95x0_id[0].name);
-               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 3 * MUXED_STRIDE;
+               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 3 * MUXED_STRIDE - 1;
                break;
        case 40:
                strscpy(chip->name, cy8c95x0_id[1].name);
-               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 6 * MUXED_STRIDE;
+               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 6 * MUXED_STRIDE - 1;
                break;
        case 60:
                strscpy(chip->name, cy8c95x0_id[2].name);
-               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 8 * MUXED_STRIDE;
+               regmap_range_conf.range_max = CY8C95X0_VIRTUAL + 8 * MUXED_STRIDE - 1;
                break;
        default:
                return -ENODEV;