aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpio-omap.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 7d47c6e76d7..c45bc16f000 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -57,7 +57,6 @@ struct gpio_bank {
57 u16 irq; 57 u16 irq;
58 int irq_base; 58 int irq_base;
59 struct irq_domain *domain; 59 struct irq_domain *domain;
60 u32 suspend_wakeup;
61 u32 saved_wakeup; 60 u32 saved_wakeup;
62 u32 non_wakeup_gpios; 61 u32 non_wakeup_gpios;
63 u32 enabled_non_wakeup_gpios; 62 u32 enabled_non_wakeup_gpios;
@@ -514,11 +513,11 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
514 513
515 spin_lock_irqsave(&bank->lock, flags); 514 spin_lock_irqsave(&bank->lock, flags);
516 if (enable) 515 if (enable)
517 bank->suspend_wakeup |= gpio_bit; 516 bank->context.wake_en |= gpio_bit;
518 else 517 else
519 bank->suspend_wakeup &= ~gpio_bit; 518 bank->context.wake_en &= ~gpio_bit;
520 519
521 __raw_writel(bank->suspend_wakeup, bank->base + bank->regs->wkup_en); 520 __raw_writel(bank->context.wake_en, bank->base + bank->regs->wkup_en);
522 spin_unlock_irqrestore(&bank->lock, flags); 521 spin_unlock_irqrestore(&bank->lock, flags);
523 522
524 return 0; 523 return 0;
@@ -788,7 +787,7 @@ static int omap_mpuio_suspend_noirq(struct device *dev)
788 787
789 spin_lock_irqsave(&bank->lock, flags); 788 spin_lock_irqsave(&bank->lock, flags);
790 bank->saved_wakeup = __raw_readl(mask_reg); 789 bank->saved_wakeup = __raw_readl(mask_reg);
791 __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg); 790 __raw_writel(0xffff & ~bank->context.wake_en, mask_reg);
792 spin_unlock_irqrestore(&bank->lock, flags); 791 spin_unlock_irqrestore(&bank->lock, flags);
793 792
794 return 0; 793 return 0;
@@ -1162,7 +1161,7 @@ static int omap_gpio_suspend(struct device *dev)
1162 if (!bank->mod_usage || !bank->loses_context) 1161 if (!bank->mod_usage || !bank->loses_context)
1163 return 0; 1162 return 0;
1164 1163
1165 if (!bank->regs->wkup_en || !bank->suspend_wakeup) 1164 if (!bank->regs->wkup_en || !bank->context.wake_en)
1166 return 0; 1165 return 0;
1167 1166
1168 wakeup_enable = bank->base + bank->regs->wkup_en; 1167 wakeup_enable = bank->base + bank->regs->wkup_en;
@@ -1170,7 +1169,7 @@ static int omap_gpio_suspend(struct device *dev)
1170 spin_lock_irqsave(&bank->lock, flags); 1169 spin_lock_irqsave(&bank->lock, flags);
1171 bank->saved_wakeup = __raw_readl(wakeup_enable); 1170 bank->saved_wakeup = __raw_readl(wakeup_enable);
1172 _gpio_rmw(base, bank->regs->wkup_en, 0xffffffff, 0); 1171 _gpio_rmw(base, bank->regs->wkup_en, 0xffffffff, 0);
1173 _gpio_rmw(base, bank->regs->wkup_en, bank->suspend_wakeup, 1); 1172 _gpio_rmw(base, bank->regs->wkup_en, bank->context.wake_en, 1);
1174 spin_unlock_irqrestore(&bank->lock, flags); 1173 spin_unlock_irqrestore(&bank->lock, flags);
1175 1174
1176 return 0; 1175 return 0;