pinctrl: make "hog" mapping table entries work
authorStephen Warren <swarren@nvidia.com>
Tue, 14 Feb 2012 17:50:41 +0000 (10:50 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 22 Feb 2012 16:59:30 +0000 (17:59 +0100)
Commit 77a5988 "pinctrl: changes hog mechanism to be self-referential"
modified the way "hog" entries were represented in the mapping table.
However, the new representation failed some error checks in
pinctrl_hog_map(). Remove the now-bogus error-check, and fix the code
to solve the issue the error-check used to avoid.

Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/core.c

index c5f76ad5a8c589d5d0f365352e5283820c6e6f50..8a91eb24eb52252710dd7738534a9f425cc45721 100644 (file)
@@ -725,23 +725,11 @@ static int pinctrl_hog_map(struct pinctrl_dev *pctldev,
        struct pinctrl *p;
        int ret;
 
-       if (map->dev_name) {
-               /*
-                * TODO: the day we have device tree support, we can
-                * traverse the device tree and hog to specific device nodes
-                * without any problems, so then we can hog pinmuxes for
-                * all devices that just want a static pin mux at this point.
-                */
-               dev_err(pctldev->dev, "map %s wants to hog a non-system pinmux, this is not going to work\n",
-                               map->name);
-               return -EINVAL;
-       }
-
        hog = kzalloc(sizeof(struct pinctrl_hog), GFP_KERNEL);
        if (!hog)
                return -ENOMEM;
 
-       p = pinctrl_get(NULL, map->name);
+       p = pinctrl_get(pctldev->dev, map->name);
        if (IS_ERR(p)) {
                kfree(hog);
                dev_err(pctldev->dev,