diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-07-01 15:18:27 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-03 14:25:07 +0200 |
commit | 43bda1a6d218744382547a2f8be3240d1c3a151b (patch) | |
tree | 7a765e743a6e2cfde5db08dfe073a412e42df873 /arch/arm/mach-pxa/pwm.c | |
parent | [ARM] 5044/1: pwm_bl: add init/notify/exit callbacks (diff) | |
download | linux-43bda1a6d218744382547a2f8be3240d1c3a151b.tar.xz linux-43bda1a6d218744382547a2f8be3240d1c3a151b.zip |
[ARM] 5141/1: PWM: pwm_request() should return an PTR_ERR() instead of NULL.
Make the return of pwm_request() be more informative than just
being NULL on error by using PTR_ERR() to respond with an
approriate error.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/pwm.c')
-rw-r--r-- | arch/arm/mach-pxa/pwm.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/arm/mach-pxa/pwm.c b/arch/arm/mach-pxa/pwm.c index 7c86dd1d108f..ce28cd9fed16 100644 --- a/arch/arm/mach-pxa/pwm.c +++ b/arch/arm/mach-pxa/pwm.c @@ -119,17 +119,23 @@ struct pwm_device *pwm_request(int pwm_id, const char *label) mutex_lock(&pwm_lock); list_for_each_entry(pwm, &pwm_list, node) { - if (pwm->pwm_id == pwm_id && pwm->use_count == 0) { - pwm->use_count++; - pwm->label = label; + if (pwm->pwm_id == pwm_id) { found = 1; break; } } - mutex_unlock(&pwm_lock); + if (found) { + if (pwm->use_count == 0) { + pwm->use_count++; + pwm->label = label; + } else + pwm = ERR_PTR(-EBUSY); + } else + pwm = ERR_PTR(-ENOENT); - return (found) ? pwm : NULL; + mutex_unlock(&pwm_lock); + return pwm; } EXPORT_SYMBOL(pwm_request); |