X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=arch%2Fsh%2Fkernel%2Fgpio.c;h=d371653610348313dc4b6481764b9b0ea4a08988;hb=1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4;hp=bb8b812c6895c1f1d46299a9f4bb09d608ec3cdc;hpb=fdc76bf9b62446c9d4b00e0d355c3212b4f1b13b;p=linux-2.6-omap-h63xx.git diff --git a/arch/sh/kernel/gpio.c b/arch/sh/kernel/gpio.c index bb8b812c689..d3716536103 100644 --- a/arch/sh/kernel/gpio.c +++ b/arch/sh/kernel/gpio.c @@ -267,9 +267,13 @@ int pinmux_config_gpio(struct pinmux_info *gpioc, unsigned gpio, break; in_range = enum_in_range(enum_id, &gpioc->function); - if (!in_range && range) + if (!in_range && range) { in_range = enum_in_range(enum_id, range); + if (in_range && enum_id == range->force) + continue; + } + if (!in_range) continue; @@ -432,7 +436,7 @@ static int __gpio_get_set_value(struct pinmux_info *gpioc, BUG(); else value = read_write_reg(dr->reg, dr->reg_width, - 1, bit, value, do_write); + 1, bit, !!value, do_write); return value; }