diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-10-19 18:19:28 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2011-10-20 05:50:07 -0400 |
commit | 5d2eaf8090874f8e65388e82f7e91f9cef74885e (patch) | |
tree | 33ad36c3ddc8674c7d583ceec281cf613293cb13 /drivers/pinctrl/core.h | |
parent | 9af1e44fb4a4c62a90bff9b095eb001764d91b65 (diff) |
pinctrl: Don't copy function name when requesting a pin
Instead, store a pointer to the currently assigned function.
This allows us to delete the mux_requested variable from pin_desc; a pin
is requested if its currently assigned function is non-NULL.
When a pin is requested as a GPIO rather than a regular function, the
assigned function name is dynamically constructed. In this case, we have
to kstrdup() the dynamically constructed name, so that mux_function doesn't
pointed at stack data. This requires pin_free to be told whether to free
the mux_function pointer or not.
This removes the hard-coded maximum function name length.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/core.h')
-rw-r--r-- | drivers/pinctrl/core.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h index e431aa537287..472fa1341cc0 100644 --- a/drivers/pinctrl/core.h +++ b/drivers/pinctrl/core.h | |||
@@ -59,8 +59,7 @@ struct pin_desc { | |||
59 | spinlock_t lock; | 59 | spinlock_t lock; |
60 | /* These fields only added when supporting pinmux drivers */ | 60 | /* These fields only added when supporting pinmux drivers */ |
61 | #ifdef CONFIG_PINMUX | 61 | #ifdef CONFIG_PINMUX |
62 | bool mux_requested; | 62 | const char *mux_function; |
63 | char mux_function[16]; | ||
64 | #endif | 63 | #endif |
65 | }; | 64 | }; |
66 | 65 | ||