diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 10:20:15 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 10:20:15 -0700 |
commit | 36ec891895020f3bc9953c8b11d079c6d77d76bd (patch) | |
tree | 89961ee93d8bf5f4e924c2e02790ddd52d61da5c /arch/sh/kernel/gpio.c | |
parent | 70740d6c93030b339b4ad17fd58ee135dfc13913 (diff) | |
parent | e4b41dbd60e30463cc8fab21ed45b7d6227fc338 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
sh: asm/gpio.h needs linux/kernel.h for might_sleep()/WARN_ON().
sh: mach-highlander: Handle SCIF pinmuxing on R7785RP.
sh: sh7785 pinmux support
sh: update defconfigs.
sh: Kill off unused p1fc divisors from SH7763 clk fwk.
sh: improve pinmux support for single direction pins
sh: use 10MHz VIO_CLK for ov772x on Migo-R
sh: Update gpio_set_value() pin value handling
sh: update ov772x byte order on Migo-R
rtc: Add R2025S/D comment to rs5c372 Kconfig entry.
sh: Export cache flush routines needed by sh_eth on SH7619.
sh: Wire up oops reporting in the die notifier chain.
sh: ap325rxa: Kill off unused port definitions.
sh: Hook up PB0->PB7 input-only pins in SH7203 PFC.
sh: ap325rxa: Move off of hardcoded pinmux for flctl initialization.
sh: add support FLCTL for ap325rxa board
sh: gpio: Stub in dummy GPIO<->IRQ mapping routines.
sh: rsk7203: leds-gpio support for RSK+ LEDs.
sh: gpio: Include asm-generic/gpio.h for non-gpiolib stubs.
sh: fix soc-camera compile breakage on Migo-R.
...
Diffstat (limited to 'arch/sh/kernel/gpio.c')
-rw-r--r-- | arch/sh/kernel/gpio.c | 8 |
1 files changed, 6 insertions, 2 deletions
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; } |