X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/546b5ed544503182a9b3e981bc11feebd6042b21..5bc450051be79bfae37ad1f185c4d2fb315d7fd7:/target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch diff --git a/target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch b/target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch index 2e826d43f..771b743ba 100644 --- a/target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch +++ b/target/linux/generic-2.6/patches-2.6.25/961-backport_gpio_define_gpio_valid.patch @@ -16,11 +16,9 @@ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- -diff --git a/Documentation/gpio.txt b/Documentation/gpio.txt -index 5463009..c35ca9e 100644 --- a/Documentation/gpio.txt +++ b/Documentation/gpio.txt -@@ -107,6 +107,16 @@ type of GPIO controller, and on one particular board 80-95 with an FPGA. +@@ -107,6 +107,16 @@ type of GPIO controller, and on one part The numbers need not be contiguous; either of those platforms could also use numbers 2000-2063 to identify GPIOs in a bank of I2C GPIO expanders. @@ -37,8 +35,6 @@ index 5463009..c35ca9e 100644 Whether a platform supports multiple GPIO controllers is currently a platform-specific implementation issue. -diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index eb75d12..623fcd9 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -99,7 +99,7 @@ int gpiochip_add(struct gpio_chip *chip) @@ -50,7 +46,7 @@ index eb75d12..623fcd9 100644 status = -EINVAL; goto fail; } -@@ -174,7 +174,7 @@ int gpio_request(unsigned gpio, const char *label) +@@ -174,7 +174,7 @@ int gpio_request(unsigned gpio, const ch spin_lock_irqsave(&gpio_lock, flags); @@ -68,7 +64,7 @@ index eb75d12..623fcd9 100644 WARN_ON(extra_checks); return; } -@@ -245,7 +245,7 @@ const char *gpiochip_is_requested(struct gpio_chip *chip, unsigned offset) +@@ -245,7 +245,7 @@ const char *gpiochip_is_requested(struct { unsigned gpio = chip->base + offset; @@ -86,7 +82,7 @@ index eb75d12..623fcd9 100644 goto fail; chip = desc->chip; if (!chip || !chip->get || !chip->direction_input) -@@ -314,7 +314,7 @@ int gpio_direction_output(unsigned gpio, int value) +@@ -314,7 +314,7 @@ int gpio_direction_output(unsigned gpio, spin_lock_irqsave(&gpio_lock, flags); @@ -95,7 +91,7 @@ index eb75d12..623fcd9 100644 goto fail; chip = desc->chip; if (!chip || !chip->set || !chip->direction_output) -@@ -531,7 +531,7 @@ static int gpiolib_show(struct seq_file *s, void *unused) +@@ -531,7 +531,7 @@ static int gpiolib_show(struct seq_file /* REVISIT this isn't locked against gpio_chip removal ... */ @@ -104,8 +100,6 @@ index eb75d12..623fcd9 100644 if (chip == gpio_desc[gpio].chip) continue; chip = gpio_desc[gpio].chip; -diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h -index 7e77b6f..464c5b3 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h @@ -16,6 +16,12 @@ @@ -121,15 +115,19 @@ index 7e77b6f..464c5b3 100644 struct seq_file; struct module; -@@ -99,6 +105,12 @@ extern int __gpio_cansleep(unsigned gpio); +@@ -99,6 +105,16 @@ extern int __gpio_cansleep(unsigned gpio #else -+static inline int gpio_is_valid(int number) ++static inline int __gpio_is_valid(int number) +{ + /* only non-negative numbers are valid */ + return number >= 0; +} ++ ++#ifndef gpio_is_valid ++#define gpio_is_valid __gpio_is_valid ++#endif + /* platforms that don't directly support access to GPIOs through I2C, SPI, * or other blocking infrastructure can use these wrappers.