aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2011-01-12 20:00:23 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-13 11:03:14 -0500
commit0fdae42d361bbb431ca0ab0efed5126a94821177 (patch)
tree958a045aca3e40ca487dac67597496a7ed885115
parent49a367937fe4250144e24440e5a11ae4344202b1 (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.txt2
-rw-r--r--include/asm-generic/gpio.h10
-rw-r--r--include/linux/gpio.h6
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
138The return value is zero for success, else a negative errno. It should 138The return value is zero for success, else a negative errno. It must
139be checked, since the get/set calls don't have error returns and since 139be checked, since the get/set calls don't have error returns and since
140misconfiguration is possible. You should normally issue these calls from 140misconfiguration is possible. You should normally issue these calls from
141a task context. However, for spinlock-safe GPIOs it's OK to use them 141a 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 */
150extern int gpio_request(unsigned gpio, const char *label); 150extern int __must_check gpio_request(unsigned gpio, const char *label);
151extern void gpio_free(unsigned gpio); 151extern void gpio_free(unsigned gpio);
152 152
153extern int gpio_direction_input(unsigned gpio); 153extern int __must_check gpio_direction_input(unsigned gpio);
154extern int gpio_direction_output(unsigned gpio, int value); 154extern int __must_check gpio_direction_output(unsigned gpio, int value);
155 155
156extern int gpio_set_debounce(unsigned gpio, unsigned debounce); 156extern 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
195extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *label); 195extern int __must_check gpio_request_one(unsigned gpio, unsigned long flags, const char *label);
196extern int gpio_request_array(struct gpio *array, size_t num); 196extern int __must_check gpio_request_array(struct gpio *array, size_t num);
197extern void gpio_free_array(struct gpio *array, size_t num); 197extern 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
32static inline int gpio_request(unsigned gpio, const char *label) 32static 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
45static inline int gpio_direction_input(unsigned gpio) 45static inline int __must_check gpio_direction_input(unsigned gpio)
46{ 46{
47 return -ENOSYS; 47 return -ENOSYS;
48} 48}
49 49
50static inline int gpio_direction_output(unsigned gpio, int value) 50static inline int __must_check gpio_direction_output(unsigned gpio, int value)
51{ 51{
52 return -ENOSYS; 52 return -ENOSYS;
53} 53}