diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2011-01-12 20:00:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-13 11:03:14 -0500 |
commit | 0fdae42d361bbb431ca0ab0efed5126a94821177 (patch) | |
tree | 958a045aca3e40ca487dac67597496a7ed885115 | |
parent | 49a367937fe4250144e24440e5a11ae4344202b1 (diff) |
gpiolib: annotate gpio-intialization with __must_check
Because GPIOs can have crucial functions especially in embedded systems,
we are better safe than sorry regarding their configuration. For
gpio_request, the documentation is simply enforced: <quote>"The return
value of gpio_request() must be checked."</quote> For gpio_direction_* and
gpio_request_*, we now act accordingly.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Greg KH <gregkh@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | Documentation/gpio.txt | 2 | ||||
-rw-r--r-- | include/asm-generic/gpio.h | 10 | ||||
-rw-r--r-- | include/linux/gpio.h | 6 |
3 files changed, 9 insertions, 9 deletions
diff --git a/Documentation/gpio.txt b/Documentation/gpio.txt index 792faa3c06cf..a492d92bb098 100644 --- a/Documentation/gpio.txt +++ b/Documentation/gpio.txt | |||
@@ -135,7 +135,7 @@ setting up a platform_device using the GPIO, is mark its direction: | |||
135 | int gpio_direction_input(unsigned gpio); | 135 | int gpio_direction_input(unsigned gpio); |
136 | int gpio_direction_output(unsigned gpio, int value); | 136 | int gpio_direction_output(unsigned gpio, int value); |
137 | 137 | ||
138 | The return value is zero for success, else a negative errno. It should | 138 | The return value is zero for success, else a negative errno. It must |
139 | be checked, since the get/set calls don't have error returns and since | 139 | be checked, since the get/set calls don't have error returns and since |
140 | misconfiguration is possible. You should normally issue these calls from | 140 | misconfiguration is possible. You should normally issue these calls from |
141 | a task context. However, for spinlock-safe GPIOs it's OK to use them | 141 | a task context. However, for spinlock-safe GPIOs it's OK to use them |
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index ff5c66080c8c..6098cae2af8e 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h | |||
@@ -147,11 +147,11 @@ extern struct gpio_chip *gpiochip_find(void *data, | |||
147 | /* Always use the library code for GPIO management calls, | 147 | /* Always use the library code for GPIO management calls, |
148 | * or when sleeping may be involved. | 148 | * or when sleeping may be involved. |
149 | */ | 149 | */ |
150 | extern int gpio_request(unsigned gpio, const char *label); | 150 | extern int __must_check gpio_request(unsigned gpio, const char *label); |
151 | extern void gpio_free(unsigned gpio); | 151 | extern void gpio_free(unsigned gpio); |
152 | 152 | ||
153 | extern int gpio_direction_input(unsigned gpio); | 153 | extern int __must_check gpio_direction_input(unsigned gpio); |
154 | extern int gpio_direction_output(unsigned gpio, int value); | 154 | extern int __must_check gpio_direction_output(unsigned gpio, int value); |
155 | 155 | ||
156 | extern int gpio_set_debounce(unsigned gpio, unsigned debounce); | 156 | extern int gpio_set_debounce(unsigned gpio, unsigned debounce); |
157 | 157 | ||
@@ -192,8 +192,8 @@ struct gpio { | |||
192 | const char *label; | 192 | const char *label; |
193 | }; | 193 | }; |
194 | 194 | ||
195 | extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *label); | 195 | extern int __must_check gpio_request_one(unsigned gpio, unsigned long flags, const char *label); |
196 | extern int gpio_request_array(struct gpio *array, size_t num); | 196 | extern int __must_check gpio_request_array(struct gpio *array, size_t num); |
197 | extern void gpio_free_array(struct gpio *array, size_t num); | 197 | extern void gpio_free_array(struct gpio *array, size_t num); |
198 | 198 | ||
199 | #ifdef CONFIG_GPIO_SYSFS | 199 | #ifdef CONFIG_GPIO_SYSFS |
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index e41f7dd1ae67..1d5214a89110 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
@@ -29,7 +29,7 @@ static inline int gpio_is_valid(int number) | |||
29 | return 0; | 29 | return 0; |
30 | } | 30 | } |
31 | 31 | ||
32 | static inline int gpio_request(unsigned gpio, const char *label) | 32 | static inline int __must_check gpio_request(unsigned gpio, const char *label) |
33 | { | 33 | { |
34 | return -ENOSYS; | 34 | return -ENOSYS; |
35 | } | 35 | } |
@@ -42,12 +42,12 @@ static inline void gpio_free(unsigned gpio) | |||
42 | WARN_ON(1); | 42 | WARN_ON(1); |
43 | } | 43 | } |
44 | 44 | ||
45 | static inline int gpio_direction_input(unsigned gpio) | 45 | static inline int __must_check gpio_direction_input(unsigned gpio) |
46 | { | 46 | { |
47 | return -ENOSYS; | 47 | return -ENOSYS; |
48 | } | 48 | } |
49 | 49 | ||
50 | static inline int gpio_direction_output(unsigned gpio, int value) | 50 | static inline int __must_check gpio_direction_output(unsigned gpio, int value) |
51 | { | 51 | { |
52 | return -ENOSYS; | 52 | return -ENOSYS; |
53 | } | 53 | } |