Commit 9c7f798d authored by Russell King's avatar Russell King Committed by Linus Walleij

gpio: omap: clean up omap_gpio_restore_context()

Use local variables to store the base iomem address and regs table
pointer like omap_gpio_init_context() does. Not only does this make
the function neater, it also avoids unnecessary reloads of the same
data multiple times.
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
Tested-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 9a302781
...@@ -1094,32 +1094,26 @@ static void omap_gpio_init_context(struct gpio_bank *p) ...@@ -1094,32 +1094,26 @@ static void omap_gpio_init_context(struct gpio_bank *p)
static void omap_gpio_restore_context(struct gpio_bank *bank) static void omap_gpio_restore_context(struct gpio_bank *bank)
{ {
writel_relaxed(bank->context.wake_en, struct omap_gpio_reg_offs *regs = bank->regs;
bank->base + bank->regs->wkup_en); void __iomem *base = bank->base;
writel_relaxed(bank->context.ctrl, bank->base + bank->regs->ctrl);
writel_relaxed(bank->context.leveldetect0, writel_relaxed(bank->context.wake_en, base + regs->wkup_en);
bank->base + bank->regs->leveldetect0); writel_relaxed(bank->context.ctrl, base + regs->ctrl);
writel_relaxed(bank->context.leveldetect1, writel_relaxed(bank->context.leveldetect0, base + regs->leveldetect0);
bank->base + bank->regs->leveldetect1); writel_relaxed(bank->context.leveldetect1, base + regs->leveldetect1);
writel_relaxed(bank->context.risingdetect, writel_relaxed(bank->context.risingdetect, base + regs->risingdetect);
bank->base + bank->regs->risingdetect); writel_relaxed(bank->context.fallingdetect, base + regs->fallingdetect);
writel_relaxed(bank->context.fallingdetect, writel_relaxed(bank->context.dataout, base + regs->dataout);
bank->base + bank->regs->fallingdetect); writel_relaxed(bank->context.oe, base + regs->direction);
writel_relaxed(bank->context.dataout,
bank->base + bank->regs->dataout);
writel_relaxed(bank->context.oe, bank->base + bank->regs->direction);
if (bank->dbck_enable_mask) { if (bank->dbck_enable_mask) {
writel_relaxed(bank->context.debounce, bank->base + writel_relaxed(bank->context.debounce, base + regs->debounce);
bank->regs->debounce);
writel_relaxed(bank->context.debounce_en, writel_relaxed(bank->context.debounce_en,
bank->base + bank->regs->debounce_en); base + regs->debounce_en);
} }
writel_relaxed(bank->context.irqenable1, writel_relaxed(bank->context.irqenable1, base + regs->irqenable);
bank->base + bank->regs->irqenable); writel_relaxed(bank->context.irqenable2, base + regs->irqenable2);
writel_relaxed(bank->context.irqenable2,
bank->base + bank->regs->irqenable2);
} }
static void omap_gpio_idle(struct gpio_bank *bank, bool may_lose_context) static void omap_gpio_idle(struct gpio_bank *bank, bool may_lose_context)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment