No need to hide of_pwm_request, it's useful to other in-kernel users.
Signed-off-by: Pantelis Antoniou <[email protected]>
---
drivers/pwm/core.c | 6 +++++-
include/linux/pwm.h | 7 +++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index f5acdaa..f8c7e6b 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -457,7 +457,7 @@ static struct pwm_chip *of_node_to_pwmchip(struct device_node *np)
* becomes mandatory for devices that look up the PWM device via the con_id
* parameter.
*/
-static struct pwm_device *of_pwm_request(struct device_node *np,
+struct pwm_device *of_pwm_request(struct device_node *np,
const char *con_id)
{
struct pwm_device *pwm = NULL;
@@ -466,6 +466,9 @@ static struct pwm_device *of_pwm_request(struct device_node *np,
int index = 0;
int err;
+ if (!np)
+ return ERR_PTR(-ENODEV);
+
if (con_id) {
index = of_property_match_string(np, "pwm-names", con_id);
if (index < 0)
@@ -516,6 +519,7 @@ put:
return pwm;
}
+EXPORT_SYMBOL(of_pwm_request);
/**
* pwm_add_table() - register PWM device consumers
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 112b314..fafbb1c 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -171,6 +171,7 @@ struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
unsigned int index,
const char *label);
+struct pwm_device *of_pwm_request(struct device_node *np, const char *consumer);
struct pwm_device *pwm_get(struct device *dev, const char *consumer);
void pwm_put(struct pwm_device *pwm);
@@ -204,6 +205,12 @@ static inline struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
return ERR_PTR(-ENODEV);
}
+static inline struct pwm_device *of_pwm_request(struct device_node *np,
+ const char *consumer)
+{
+ return ERR_PTR(-ENODEV);
+}
+
static inline struct pwm_device *pwm_get(struct device *dev,
const char *consumer)
{
--
1.7.12
On Wed, Oct 31, 2012 at 05:57:10PM +0200, Pantelis Antoniou wrote:
> No need to hide of_pwm_request, it's useful to other in-kernel users.
Can you specify which users that might be? I'm reluctant to export
symbols which aren't used by any drivers.
> diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
[...]
> @@ -457,7 +457,7 @@ static struct pwm_chip *of_node_to_pwmchip(struct device_node *np)
> * becomes mandatory for devices that look up the PWM device via the con_id
> * parameter.
> */
> -static struct pwm_device *of_pwm_request(struct device_node *np,
> +struct pwm_device *of_pwm_request(struct device_node *np,
> const char *con_id)
Can you please make sure that this remains properly aligned?
> diff --git a/include/linux/pwm.h b/include/linux/pwm.h
[...]
> @@ -171,6 +171,7 @@ struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
> unsigned int index,
> const char *label);
>
> +struct pwm_device *of_pwm_request(struct device_node *np, const char *consumer);
The second argument is called con_id, so please fix this up to keep it
consistent.
> struct pwm_device *pwm_get(struct device *dev, const char *consumer);
> void pwm_put(struct pwm_device *pwm);
>
> @@ -204,6 +205,12 @@ static inline struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
> return ERR_PTR(-ENODEV);
> }
>
> +static inline struct pwm_device *of_pwm_request(struct device_node *np,
> + const char *consumer)
Here as well. Also make sure the arguments are properly aligned.
Thierry