summaryrefslogtreecommitdiff
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2012-02-19 23:45:53 -0700
committerLinus Walleij <linus.walleij@linaro.org>2012-02-22 17:59:34 +0100
commitb1eed4ece7064c361d6e03f6706d90e4e9dd7e96 (patch)
tree10dfd6a834d180a7a0eaa3515bf78fdf97de65d3 /drivers/pinctrl
parentf026fe3d102e9d7f0d040109353ef5a97b5ef92c (diff)
downloadlwn-b1eed4ece7064c361d6e03f6706d90e4e9dd7e96.tar.gz
lwn-b1eed4ece7064c361d6e03f6706d90e4e9dd7e96.zip
pinctrl: error if mapping table's control dev can't be found
This is a serious error, and the pin control system will not function correctly if it ends up not programing the mapping table entries into the HW. Instead of just ignoring this, error out. Signed-off-by: Stephen Warren <swarren@nvidia.com> [rebased to fit the applied patch series, cast error to pointer] Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/core.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index e2d4abb29d1a..fb3fbb76932e 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -518,13 +518,12 @@ static struct pinctrl *pinctrl_get_locked(struct device *dev, const char *name)
*/
pctldev = get_pinctrl_dev_from_devname(map->ctrl_dev_name);
if (!pctldev) {
- pr_warning("could not find a pinctrl device for pinmux function %s, fishy, they shall all have one\n",
- map->function);
- pr_warning("given pinctrl device name: %s",
- map->ctrl_dev_name);
-
- /* Continue to check the other mappings anyway... */
- continue;
+ dev_err(dev, "unknown pinctrl device %s in map entry",
+ map->ctrl_dev_name);
+ pinmux_put(p);
+ kfree(p);
+ /* Eventually, this should trigger deferred probe */
+ return ERR_PTR(-ENODEV);
}
pr_debug("in map, found pctldev %s to handle function %s",