2012-02-14 17:50:46

by Stephen Warren

[permalink] [raw]
Subject: [PATCH] pinctrl: Make "hog" mapping table entries work

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.

Signed-off-by: Stephen Warren <[email protected]>
---
drivers/pinctrl/core.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index c5f76ad..8a91eb2 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -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,
--
1.7.0.4


2012-02-15 04:38:23

by Dong Aisheng

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: Make "hog" mapping table entries work

On Tue, Feb 14, 2012 at 10:50:41AM -0700, Stephen Warren wrote:
> 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.
>
> Signed-off-by: Stephen Warren <[email protected]>

Acked-by: Dong Aisheng <[email protected]>

Regards
Dong Aisheng

> ---
> drivers/pinctrl/core.c | 14 +-------------
> 1 files changed, 1 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
> index c5f76ad..8a91eb2 100644
> --- a/drivers/pinctrl/core.c
> +++ b/drivers/pinctrl/core.c
> @@ -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,
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2012-02-16 18:59:14

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: Make "hog" mapping table entries work

On Tue, Feb 14, 2012 at 6:50 PM, Stephen Warren <[email protected]> wrote:

> 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.
>
> Signed-off-by: Stephen Warren <[email protected]>

Nice catch! Applied with Dong's ACK.

Yours,
Linus Walleij