On Thu, Jun 7, 2018 at 6:51 PM, Fabio Estevam <festevam@xxxxxxxxx> wrote: > From: Fabio Estevam <fabio.estevam@xxxxxxx> > > Commit b89405b6102f ("pinctrl: devicetree: Fix dt_to_map_one_config > handling of hogs") causes the pinctrl hog pins to not get initialized > on i.MX platforms leaving them with the IOMUX settings untouched. > > This causes several regressions on i.MX such as: > > - OV5640 camera driver can not be probed anymore on imx6qdl-sabresd > because the camera clock pin is in a pinctrl_hog group and since > its pinctrl initialization is skipped, the camera clock is kept > in GPIO functionality instead of CLK_CKO function. > > - Audio stopped working on imx6qdl-wandboard and imx53-qsb for > the same reason. > > Richard Fitzgerald explains the problem: > > "I see the bug. If the hog node isn't a 1st level child of the pinctrl > parent node it will go around the for(;;) loop again but on the first > pass I overwrite pctldev with the result of > get_pinctrl_dev_from_of_node() so it doesn't point to the pinctrl driver > any more." > > Fix the issue by stashing the original pctldev so it doesn't > get overwritten. > > Fixes: b89405b6102f ("pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs") > Cc: <stable@xxxxxxxxxxxxxxx> > Reported-by: Mika Penttilä <mika.penttila@xxxxxxxxxxxx> > Reported-by: Steve Longerbeam <slongerbeam@xxxxxxxxx> > Suggested-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxx> Patch applied for fixes with the ACKs! Thanks for digging into this and fixing it up! Yours, Linus Walleij