summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/mediatek/pinctrl-paris.c
diff options
context:
space:
mode:
authorZhiyong Tao <zhiyong.tao@mediatek.com>2021-03-21 11:31:50 +0800
committerLinus Walleij <linus.walleij@linaro.org>2021-03-25 10:14:50 +0100
commit42a46434e9b18b35d2e57433cdbeff3233ca9765 (patch)
tree2ae95aa6a5a8d58de13a40b233e859c853d861c3 /drivers/pinctrl/mediatek/pinctrl-paris.c
parent1517dad8e7129c5e28bd7b536c560f0f0bff87a4 (diff)
downloadlinux-42a46434e9b18b35d2e57433cdbeff3233ca9765.tar.bz2
pinctrl: add lock in mtk_rmw function.
When multiple threads operate on the same register resource which include multiple pin, It will make the register resource wrong to control. So we add lock to avoid the case. Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com> Link: https://lore.kernel.org/r/20210321033150.15380-2-zhiyong.tao@mediatek.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/mediatek/pinctrl-paris.c')
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-paris.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index da1f19288aa6..48e823f6d293 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -970,6 +970,8 @@ int mtk_paris_pinctrl_probe(struct platform_device *pdev,
hw->nbase = hw->soc->nbase_names;
+ mutex_init(&hw->lock);
+
err = mtk_pctrl_build_state(pdev);
if (err) {
dev_err(&pdev->dev, "build state failed: %d\n", err);