X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=target%2Flinux%2Frdc-2.6%2Ffiles%2Farch%2Fi386%2Fmach-rdc%2Fgpio.c;h=2c3886771d9fc57bd8050daeb7dd111c481ac8c9;hb=2fddc9a43851291fd9bc4569694f082c9d27f88d;hp=28a33db076eba186f72f1eda551f9a4b34b8749c;hpb=a1da927102dcfe5b92d26c4395c1c2306671b7b7;p=openwrt-10.03%2F.git diff --git a/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c b/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c index 28a33db07..2c3886771 100644 --- a/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c +++ b/target/linux/rdc-2.6/files/arch/i386/mach-rdc/gpio.c @@ -15,8 +15,12 @@ #include #include -#define RDC3210_CFGREG_ADDR 0x0CF8 -#define RDC3210_CFGREG_DATA 0x0CFC +#include + +static inline int rdc_gpio_is_valid(unsigned gpio) +{ + return ((gpio > RDC_MAX_GPIO) ? 0 : 1); +} static unsigned int rdc_gpio_read(unsigned gpio) { @@ -47,7 +51,8 @@ static void rdc_gpio_write(unsigned int val) int rdc_gpio_get_value(unsigned gpio) { - return (gpio>0x3A?-EINVAL:(int)rdc_gpio_read(gpio)); + if (rdc_gpio_is_valid(gpio)) + return (int)rdc_gpio_read(gpio); } EXPORT_SYMBOL(rdc_gpio_get_value); @@ -55,7 +60,9 @@ void rdc_gpio_set_value(unsigned gpio, int value) { unsigned int val; - if (gpio > 0x3A) return; + if (!rdc_gpio_is_valid(gpio)) + return; + val = rdc_gpio_read(gpio); if (value)