Commit 56e380cf authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Walleij

pinctrl: cy8c95x0: Lock register accesses in cy8c95x0_set_mux()

It seems that cy8c95x0_set_mux() missed serialization of IO access.
And its implementation looks half-baked. Add locking to the function.

Fixes: e6cbbe42 ("pinctrl: Add Cypress cy8c95x0 support")
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220916205450.86278-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 35b871f7
......@@ -1152,8 +1152,13 @@ static int cy8c95x0_set_mux(struct pinctrl_dev *pctldev, unsigned int selector,
unsigned int group)
{
struct cy8c95x0_pinctrl *chip = pinctrl_dev_get_drvdata(pctldev);
int ret;
return cy8c95x0_pinmux_cfg(chip, selector, group);
mutex_lock(&chip->i2c_lock);
ret = cy8c95x0_pinmux_cfg(chip, selector, group);
mutex_unlock(&chip->i2c_lock);
return ret;
}
static const struct pinmux_ops cy8c95x0_pmxops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment