From 09faf1d93b3a75bf36e6aa972909dbf42f28c243 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Thu, 14 Jun 2007 13:30:23 +0800 Subject: [PATCH] --- yaml --- r: 57809 b: refs/heads/master c: 581d62ab304fb43d2ae4de06527676661b171cf6 h: refs/heads/master i: 57807: d2f5ad43ab26be7cd9b3816e8e09a675646ae809 v: v3 --- [refs] | 2 +- trunk/arch/blackfin/kernel/bfin_gpio.c | 12 ++++++++++-- trunk/include/asm-blackfin/gpio.h | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 135a1df62742..54ff1e167be5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5e10b4a653b9c7942fd1044fe5b592d544736897 +refs/heads/master: 581d62ab304fb43d2ae4de06527676661b171cf6 diff --git a/trunk/arch/blackfin/kernel/bfin_gpio.c b/trunk/arch/blackfin/kernel/bfin_gpio.c index 8cefed8cf5d9..bb1f4fb2467c 100644 --- a/trunk/arch/blackfin/kernel/bfin_gpio.c +++ b/trunk/arch/blackfin/kernel/bfin_gpio.c @@ -494,19 +494,24 @@ u32 gpio_pm_setup(void) gpio_bank_saved[bank].dir = gpio_bankb[bank]->dir; gpio_bank_saved[bank].edge = gpio_bankb[bank]->edge; gpio_bank_saved[bank].both = gpio_bankb[bank]->both; + gpio_bank_saved[bank].reserved = reserved_map[bank]; gpio = i; while (mask) { if (mask & 1) { - bfin_gpio_wakeup_type(gpio, wakeup_flags_map[gpio]); + reserved_map[gpio_bank(gpio)] |= + gpio_bit(gpio); + bfin_gpio_wakeup_type(gpio, + wakeup_flags_map[gpio]); set_gpio_data(gpio, 0); /*Clear*/ } gpio++; mask >>= 1; } - sic_iwr |= 1 << (sic_iwr_irqs[bank] - (IRQ_CORETMR + 1)); + sic_iwr |= 1 << + (sic_iwr_irqs[bank] - (IRQ_CORETMR + 1)); gpio_bankb[bank]->maskb_set = wakeup_map[gpio_bank(i)]; } } @@ -535,6 +540,9 @@ void gpio_pm_restore(void) gpio_bankb[bank]->polar = gpio_bank_saved[bank].polar; gpio_bankb[bank]->edge = gpio_bank_saved[bank].edge; gpio_bankb[bank]->both = gpio_bank_saved[bank].both; + + reserved_map[bank] = gpio_bank_saved[bank].reserved; + } gpio_bankb[bank]->maskb = gpio_bank_saved[bank].maskb; diff --git a/trunk/include/asm-blackfin/gpio.h b/trunk/include/asm-blackfin/gpio.h index aa0d5503e232..d98d77ad71f7 100644 --- a/trunk/include/asm-blackfin/gpio.h +++ b/trunk/include/asm-blackfin/gpio.h @@ -332,6 +332,7 @@ struct gpio_port_s { unsigned short inen; unsigned short fer; + unsigned short reserved; }; #endif /*CONFIG_PM*/