On Mon, Jun 25, 2012 at 11:00 AM, Rajendra Nayak <rnayak@xxxxxx> wrote: > On Saturday 23 June 2012 12:47 AM, Paul Walmsley wrote: >> >> Hi >> >> On Fri, 22 Jun 2012, Rajendra Nayak wrote: >> >>> In preparation of OMAP moving to Common Clk Framework(CCF) add >>> clk_prepare() >>> for omap gpio debounce clock. >>> >>> Signed-off-by: Rajendra Nayak<rnayak@xxxxxx> >>> Cc: Grant Likely<grant.likely@xxxxxxxxxxxx> >>> --- >>> drivers/gpio/gpio-omap.c | 2 ++ >>> 1 files changed, 2 insertions(+), 0 deletions(-) >>> >>> diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c >>> index c4ed172..6a73b01 100644 >>> --- a/drivers/gpio/gpio-omap.c >>> +++ b/drivers/gpio/gpio-omap.c >>> @@ -893,6 +893,8 @@ static int gpio_debounce(struct gpio_chip *chip, >>> unsigned offset, >>> bank->dbck = clk_get(bank->dev, "dbclk"); >>> if (IS_ERR(bank->dbck)) >>> dev_err(bank->dev, "Could not get gpio dbck\n"); >>> + else >>> + clk_prepare(bank->dbck); >>> } >>> >>> spin_lock_irqsave(&bank->lock, flags); >> >> >> What code unprepares this clock? >> >> Put differently, doesn't this driver need at least a platform_driver >> .remove function pointer, that would call clk_unprepare() and clk_put()? > > > Maybe because this driver can never be built as a module. It gets > complied in with CONFIG_ARCH_OMAP=y. > > Adding Tarun and Santosh who can comment further. > > >> >> Also, it looks to me that the bank->dbck init should be in >> omap_gpio_chip_init(), not gpio_debounce()? > > > Tarun, can you comment on why the dbck init is in gpio_debounce > and not in omap_gpio_chip_init()? BTW, bank->dbck is initialized in gpio_debounce() even before the cleanup and fixes series. I am not quite sure if there was specific intent for keeping it here. Personally I do not see issues in doing clk_get of bank->dbck in omap_gpio_chip_init(). > >> >> >> - Paul > > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html