All of lore.kernel.org
 help / color / mirror / Atom feed
From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: at91/tc: fix clock source id for tc block > 1
Date: Wed, 3 Apr 2013 10:32:21 +0200	[thread overview]
Message-ID: <515BE915.4010706@atmel.com> (raw)
In-Reply-To: <515BE17C.8050903@overkiz.com>

On 04/03/2013 09:59 AM, Boris BREZILLON :
> On 03/04/2013 09:26, Nicolas Ferre wrote:
>> On 04/03/2013 06:45 AM, Jean-Christophe PLAGNIOL-VILLARD :
>>> On 18:46 Tue 02 Apr     , Boris BREZILLON wrote:
>>>> This patch fixes wrong clock request for TC block 2.
>>>> The second block was using t0_clk, t1_clk and t2_clk clks instead of
>>>> t3_clk, t4_clk and t5_clk clks.
>>>>
>>> this is intended as we have 3 clock per device
> You're right.
>>
>> True.
>> Boris, did you hit an issue with former code that your patch is solving?
>> What is the reason for this patch?
> I should have taken a closer look at the code before sending this patch.
> I mistook clk name for conid devid association.
> 
> As I am enabling the tc block 1 clocks in the bootstrap code, I thought
> this was the reason for these clocks to be enabled after the kernel boot.
> 
> But I tried to disable these clocks in the bootstrap and this works fine.
> 
> Sorry if I bothered you.

Not bothered at all Boris! This is exactly how I like to see the
community working together.

Please feel free to send more and more patches about AT91: this is
always valuable for us.

Best regards,

>>>> Signed-off-by: Boris BREZILLON <linux-arm@overkiz.com>
>>>> ---
>>>>   drivers/misc/atmel_tclib.c |   24 ++++++++++++++++--------
>>>>   1 file changed, 16 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
>>>> index c8d8e38..768a988 100644
>>>> --- a/drivers/misc/atmel_tclib.c
>>>> +++ b/drivers/misc/atmel_tclib.c
>>>> @@ -142,6 +142,8 @@ static int __init tc_probe(struct
>>>> platform_device *pdev)
>>>>       struct atmel_tc *tc;
>>>>       struct clk    *clk;
>>>>       int        irq;
>>>> +    char        clk_id[7];
>>>> +    int        clk_offset;
>>>>
>>>>       if (!platform_get_resource(pdev, IORESOURCE_MEM, 0))
>>>>           return -EINVAL;
>>>> @@ -156,25 +158,31 @@ static int __init tc_probe(struct
>>>> platform_device *pdev)
>>>>
>>>>       tc->pdev = pdev;
>>>>
>>>> -    clk = clk_get(&pdev->dev, "t0_clk");
>>>> -    if (IS_ERR(clk)) {
>>>> -        kfree(tc);
>>>> -        return -EINVAL;
>>>> -    }
>>>> -
>>>>       /* Now take SoC information if available */
>>>>       if (pdev->dev.of_node) {
>>>>           const struct of_device_id *match;
>>>>           match = of_match_node(atmel_tcb_dt_ids, pdev->dev.of_node);
>>>>           if (match)
>>>>               tc->tcb_config = match->data;
>>>> +        clk_offset = of_alias_get_id(tc->pdev->dev.of_node, "tcb");
>>>> +    } else
>>>> +        clk_offset = pdev->id;
>>>> +    clk_offset *= 3;
>>>> +
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    clk = clk_get(&pdev->dev, clk_id);
>>>> +    if (IS_ERR(clk)) {
>>>> +        kfree(tc);
>>>> +        return -EINVAL;
>>>>       }
>>>>
>>>>       tc->clk[0] = clk;
>>>> -    tc->clk[1] = clk_get(&pdev->dev, "t1_clk");
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    tc->clk[1] = clk_get(&pdev->dev, clk_id);
>>>>       if (IS_ERR(tc->clk[1]))
>>>>           tc->clk[1] = clk;
>>>> -    tc->clk[2] = clk_get(&pdev->dev, "t2_clk");
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    tc->clk[2] = clk_get(&pdev->dev, clk_id);
>>>>       if (IS_ERR(tc->clk[2]))
>>>>           tc->clk[2] = clk;
>>>>
>>>> -- 
>>>> 1.7.9.5
>>>>
>>>>
>>>> _______________________________________________
>>>> linux-arm-kernel mailing list
>>>> linux-arm-kernel at lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>
>>
>>
> 
> 
> 


-- 
Nicolas Ferre

WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris BREZILLON <linux-arm@overkiz.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	<linux-kernel@vger.kernel.org>,
	Rob Herring <rob.herring@calxeda.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
	Andrew Victor <linux@maxim.org.za>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] ARM: at91/tc: fix clock source id for tc block > 1
Date: Wed, 3 Apr 2013 10:32:21 +0200	[thread overview]
Message-ID: <515BE915.4010706@atmel.com> (raw)
In-Reply-To: <515BE17C.8050903@overkiz.com>

On 04/03/2013 09:59 AM, Boris BREZILLON :
> On 03/04/2013 09:26, Nicolas Ferre wrote:
>> On 04/03/2013 06:45 AM, Jean-Christophe PLAGNIOL-VILLARD :
>>> On 18:46 Tue 02 Apr     , Boris BREZILLON wrote:
>>>> This patch fixes wrong clock request for TC block 2.
>>>> The second block was using t0_clk, t1_clk and t2_clk clks instead of
>>>> t3_clk, t4_clk and t5_clk clks.
>>>>
>>> this is intended as we have 3 clock per device
> You're right.
>>
>> True.
>> Boris, did you hit an issue with former code that your patch is solving?
>> What is the reason for this patch?
> I should have taken a closer look at the code before sending this patch.
> I mistook clk name for conid devid association.
> 
> As I am enabling the tc block 1 clocks in the bootstrap code, I thought
> this was the reason for these clocks to be enabled after the kernel boot.
> 
> But I tried to disable these clocks in the bootstrap and this works fine.
> 
> Sorry if I bothered you.

Not bothered at all Boris! This is exactly how I like to see the
community working together.

Please feel free to send more and more patches about AT91: this is
always valuable for us.

Best regards,

>>>> Signed-off-by: Boris BREZILLON <linux-arm@overkiz.com>
>>>> ---
>>>>   drivers/misc/atmel_tclib.c |   24 ++++++++++++++++--------
>>>>   1 file changed, 16 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
>>>> index c8d8e38..768a988 100644
>>>> --- a/drivers/misc/atmel_tclib.c
>>>> +++ b/drivers/misc/atmel_tclib.c
>>>> @@ -142,6 +142,8 @@ static int __init tc_probe(struct
>>>> platform_device *pdev)
>>>>       struct atmel_tc *tc;
>>>>       struct clk    *clk;
>>>>       int        irq;
>>>> +    char        clk_id[7];
>>>> +    int        clk_offset;
>>>>
>>>>       if (!platform_get_resource(pdev, IORESOURCE_MEM, 0))
>>>>           return -EINVAL;
>>>> @@ -156,25 +158,31 @@ static int __init tc_probe(struct
>>>> platform_device *pdev)
>>>>
>>>>       tc->pdev = pdev;
>>>>
>>>> -    clk = clk_get(&pdev->dev, "t0_clk");
>>>> -    if (IS_ERR(clk)) {
>>>> -        kfree(tc);
>>>> -        return -EINVAL;
>>>> -    }
>>>> -
>>>>       /* Now take SoC information if available */
>>>>       if (pdev->dev.of_node) {
>>>>           const struct of_device_id *match;
>>>>           match = of_match_node(atmel_tcb_dt_ids, pdev->dev.of_node);
>>>>           if (match)
>>>>               tc->tcb_config = match->data;
>>>> +        clk_offset = of_alias_get_id(tc->pdev->dev.of_node, "tcb");
>>>> +    } else
>>>> +        clk_offset = pdev->id;
>>>> +    clk_offset *= 3;
>>>> +
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    clk = clk_get(&pdev->dev, clk_id);
>>>> +    if (IS_ERR(clk)) {
>>>> +        kfree(tc);
>>>> +        return -EINVAL;
>>>>       }
>>>>
>>>>       tc->clk[0] = clk;
>>>> -    tc->clk[1] = clk_get(&pdev->dev, "t1_clk");
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    tc->clk[1] = clk_get(&pdev->dev, clk_id);
>>>>       if (IS_ERR(tc->clk[1]))
>>>>           tc->clk[1] = clk;
>>>> -    tc->clk[2] = clk_get(&pdev->dev, "t2_clk");
>>>> +    snprintf(clk_id, sizeof(clk_id), "t%d_clk", clk_offset++);
>>>> +    tc->clk[2] = clk_get(&pdev->dev, clk_id);
>>>>       if (IS_ERR(tc->clk[2]))
>>>>           tc->clk[2] = clk;
>>>>
>>>> -- 
>>>> 1.7.9.5
>>>>
>>>>
>>>> _______________________________________________
>>>> linux-arm-kernel mailing list
>>>> linux-arm-kernel@lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>
>>
>>
> 
> 
> 


-- 
Nicolas Ferre

  reply	other threads:[~2013-04-03  8:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-02 16:46 [PATCH] ARM: at91/tc: fix clock source id for tc block > 1 Boris BREZILLON
2013-04-02 16:46 ` Boris BREZILLON
2013-04-03  4:45 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-03  4:45   ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-03  7:26   ` Nicolas Ferre
2013-04-03  7:26     ` Nicolas Ferre
2013-04-03  7:59     ` Boris BREZILLON
2013-04-03  7:59       ` Boris BREZILLON
2013-04-03  8:32       ` Nicolas Ferre [this message]
2013-04-03  8:32         ` Nicolas Ferre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=515BE915.4010706@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.