Subject: [PATCH 06/11] gpio/omap: add clk_prepare and clk_unprepare

From: [email-masked] (Rajendra Nayak)
Date: Mon, 25 Jun 2012 12:32:29 +0530

On Monday 25 June 2012 11:41 AM, DebBarma, Tarun Kanti wrote:
> On Mon, Jun 25, 2012 at 11:00 AM, Rajendra Nayak<[email-masked]>  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<[email-masked]>
>>>> Cc: Grant Likely<[email-masked]>
>>>> ---
>>>>   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().

Care to send a patch to move it into omap_gpio_chip_init() then? Also
can you comment on the above point that Paul made, as to why this driver
has a .remove missing? If adding that is a non-issue, would be great if
you can drop in a patch for that too.

>>> - Paul