Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpio: omap: prepare and unprepare the debounce clock

Replace the clk_enable()s with a clk_prepare_enable() and
the clk_disables()s with a clk_disable_unprepare()

This never showed issues due to the OMAP platform code (hwmod)
leaving these clocks in clk_prepare()ed state by default.

Reported-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Javier Martinez Canillas <javier@dowhile0.org>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Rajendra Nayak and committed by
Linus Walleij
345477ff 09ffa131

+5 -5
+5 -5
drivers/gpio/gpio-omap.c
··· 178 178 static inline void _gpio_dbck_enable(struct gpio_bank *bank) 179 179 { 180 180 if (bank->dbck_enable_mask && !bank->dbck_enabled) { 181 - clk_enable(bank->dbck); 181 + clk_prepare_enable(bank->dbck); 182 182 bank->dbck_enabled = true; 183 183 184 184 writel_relaxed(bank->dbck_enable_mask, ··· 196 196 */ 197 197 writel_relaxed(0, bank->base + bank->regs->debounce_en); 198 198 199 - clk_disable(bank->dbck); 199 + clk_disable_unprepare(bank->dbck); 200 200 bank->dbck_enabled = false; 201 201 } 202 202 } ··· 229 229 230 230 l = GPIO_BIT(bank, gpio); 231 231 232 - clk_enable(bank->dbck); 232 + clk_prepare_enable(bank->dbck); 233 233 reg = bank->base + bank->regs->debounce; 234 234 writel_relaxed(debounce, reg); 235 235 ··· 243 243 bank->dbck_enable_mask = val; 244 244 245 245 writel_relaxed(val, reg); 246 - clk_disable(bank->dbck); 246 + clk_disable_unprepare(bank->dbck); 247 247 /* 248 248 * Enable debounce clock per module. 249 249 * This call is mandatory because in omap_gpio_request() when ··· 288 288 bank->context.debounce = 0; 289 289 writel_relaxed(bank->context.debounce, bank->base + 290 290 bank->regs->debounce); 291 - clk_disable(bank->dbck); 291 + clk_disable_unprepare(bank->dbck); 292 292 bank->dbck_enabled = false; 293 293 } 294 294 }