diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 13:20:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 13:20:15 -0400 |
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 bb8b812c6895..d37165361034 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, | |||
267 | break; | 267 | break; |
268 | 268 | ||
269 | in_range = enum_in_range(enum_id, &gpioc->function); | 269 | in_range = enum_in_range(enum_id, &gpioc->function); |
270 | if (!in_range && range) | 270 | if (!in_range && range) { |
271 | in_range = enum_in_range(enum_id, range); | 271 | in_range = enum_in_range(enum_id, range); |
272 | 272 | ||
273 | if (in_range && enum_id == range->force) | ||
274 | continue; | ||
275 | } | ||
276 | |||
273 | if (!in_range) | 277 | if (!in_range) |
274 | continue; | 278 | continue; |
275 | 279 | ||
@@ -432,7 +436,7 @@ static int __gpio_get_set_value(struct pinmux_info *gpioc, | |||
432 | BUG(); | 436 | BUG(); |
433 | else | 437 | else |
434 | value = read_write_reg(dr->reg, dr->reg_width, | 438 | value = read_write_reg(dr->reg, dr->reg_width, |
435 | 1, bit, value, do_write); | 439 | 1, bit, !!value, do_write); |
436 | 440 | ||
437 | return value; | 441 | return value; |
438 | } | 442 | } |