mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
pinctrl: canaan: k230: Fix order of DT parse and pinctrl register
Move DT parse before pinctrl register. This ensures that device tree
parsing is done before calling devm_pinctrl_register() to prevent using
uninitialized pin resources.
Fixes: 545887eab6f6 ("pinctrl: canaan: Add support for k230 SoC")
Reported-by: Yao Zi <ziyao@disroot.org>
Signed-off-by: Ze Huang <huangze@whut.edu.cn>
Link: https://lore.kernel.org/20250624-k230-return-check-v1-2-6b4fc5ba0c41@whut.edu.cn
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
65bd0be486
commit
d94a32ac68
@ -590,6 +590,7 @@ static int k230_pinctrl_probe(struct platform_device *pdev)
|
||||
struct device *dev = &pdev->dev;
|
||||
struct k230_pinctrl *info;
|
||||
struct pinctrl_desc *pctl;
|
||||
int ret;
|
||||
|
||||
info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
|
||||
if (!info)
|
||||
@ -615,13 +616,15 @@ static int k230_pinctrl_probe(struct platform_device *pdev)
|
||||
return dev_err_probe(dev, PTR_ERR(info->regmap_base),
|
||||
"failed to init regmap\n");
|
||||
|
||||
ret = k230_pinctrl_parse_dt(pdev, info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
info->pctl_dev = devm_pinctrl_register(dev, pctl, info);
|
||||
if (IS_ERR(info->pctl_dev))
|
||||
return dev_err_probe(dev, PTR_ERR(info->pctl_dev),
|
||||
"devm_pinctrl_register failed\n");
|
||||
|
||||
k230_pinctrl_parse_dt(pdev, info);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user