diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index d757c51d7114f9cd3abb1a40c6551656a6c532bd..41adb4e47dc0ecd91a5f635c60f60668e281c0a8 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -1271,7 +1271,9 @@ static int pinctrl_commit_state(struct pinctrl *p, struct pinctrl_state *state) goto unapply_new_state; } - pinctrl_link_add(setting->pctldev, p->dev); + /* Do not link hogs (circular dependency) */ + if (p != setting->pctldev->p) + pinctrl_link_add(setting->pctldev, p->dev); } p->state = state;