From: Jon Hunter <jon-hunter@ti.com>
To: NeilBrown <neilb@suse.de>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
Grant Erickson <marathon96@gmail.com>,
linux-omap@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] OMAP: add pwm driver using dmtimers.
Date: Thu, 13 Dec 2012 11:42:18 -0600 [thread overview]
Message-ID: <50CA137A.5010304@ti.com> (raw)
In-Reply-To: <20121213153302.05120a6d@notabene.brown>
On 12/12/2012 10:33 PM, NeilBrown wrote:
> On Thu, 13 Dec 2012 14:06:35 +1100 NeilBrown <neilb@suse.de> wrote:
>
>>>> + omap_dm_timer_enable(omap->dm_timer);
>>>
>>> Do you need to call omap_dm_timer_enable here? _set_load and _set_match
>>> will enable the timer. So this should not be necessary.
>>
>> True. That is what you get for copying someone else's code and not
>> understanding it fully.
>
> However .... omap_dm_timer_write_counter *doesn't* enable the timer, and
> explicitly checks that it is already runtime-enabled.
>
> Does that mean I don't need to call omap_dm_timer_write_counter here? Or
> does it mean that I do need the enable/disable pair?
Typically, omap_dm_timer_write_counter() is used to update the counter
value while the counter is running and hence is enabled.
Looking at the code, some more I now see what they are trying to do. It
seems that they are trying to force an overflow to occur as soon as they
enable the timer. This will cause the timer to load the count value from
the timer load register into the timer counter register. So that does
make sense to me. However, this should not be necessary as
omap_dm_timer_set_load should do this for you. Therefore, I think that
you could accomplish the same thing by doing ...
omap_pwm_config
--> omap_dm_timer_set_load()
--> omap_dm_timer_set_match()
--> omap_dm_timer_set_pwm()
omap_pwm_enable
--> omap_dm_timer_start()
If we call _set_load in config then we don't need to call _load_start in
the enable, we can just call _start.
Can you try this and see if this is working ok?
Cheers
Jon
WARNING: multiple messages have this Message-ID (diff)
From: Jon Hunter <jon-hunter@ti.com>
To: NeilBrown <neilb@suse.de>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
Grant Erickson <marathon96@gmail.com>,
<linux-omap@vger.kernel.org>, lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] OMAP: add pwm driver using dmtimers.
Date: Thu, 13 Dec 2012 11:42:18 -0600 [thread overview]
Message-ID: <50CA137A.5010304@ti.com> (raw)
In-Reply-To: <20121213153302.05120a6d@notabene.brown>
On 12/12/2012 10:33 PM, NeilBrown wrote:
> On Thu, 13 Dec 2012 14:06:35 +1100 NeilBrown <neilb@suse.de> wrote:
>
>>>> + omap_dm_timer_enable(omap->dm_timer);
>>>
>>> Do you need to call omap_dm_timer_enable here? _set_load and _set_match
>>> will enable the timer. So this should not be necessary.
>>
>> True. That is what you get for copying someone else's code and not
>> understanding it fully.
>
> However .... omap_dm_timer_write_counter *doesn't* enable the timer, and
> explicitly checks that it is already runtime-enabled.
>
> Does that mean I don't need to call omap_dm_timer_write_counter here? Or
> does it mean that I do need the enable/disable pair?
Typically, omap_dm_timer_write_counter() is used to update the counter
value while the counter is running and hence is enabled.
Looking at the code, some more I now see what they are trying to do. It
seems that they are trying to force an overflow to occur as soon as they
enable the timer. This will cause the timer to load the count value from
the timer load register into the timer counter register. So that does
make sense to me. However, this should not be necessary as
omap_dm_timer_set_load should do this for you. Therefore, I think that
you could accomplish the same thing by doing ...
omap_pwm_config
--> omap_dm_timer_set_load()
--> omap_dm_timer_set_match()
--> omap_dm_timer_set_pwm()
omap_pwm_enable
--> omap_dm_timer_start()
If we call _set_load in config then we don't need to call _load_start in
the enable, we can just call _start.
Can you try this and see if this is working ok?
Cheers
Jon
next prev parent reply other threads:[~2012-12-13 17:42 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-12 8:24 [PATCH] OMAP: add pwm driver using dmtimers NeilBrown
2012-12-12 11:31 ` Thierry Reding
2012-12-12 16:20 ` Jon Hunter
2012-12-12 16:20 ` Jon Hunter
2012-12-13 2:45 ` NeilBrown
2012-12-13 2:45 ` NeilBrown
2012-12-13 2:38 ` NeilBrown
2012-12-13 7:34 ` Thierry Reding
2012-12-12 16:08 ` Jon Hunter
2012-12-12 16:08 ` Jon Hunter
2012-12-13 3:06 ` NeilBrown
2012-12-13 3:06 ` NeilBrown
2012-12-13 4:33 ` NeilBrown
2012-12-13 4:33 ` NeilBrown
2012-12-13 17:42 ` Jon Hunter [this message]
2012-12-13 17:42 ` Jon Hunter
2012-12-15 0:16 ` NeilBrown
2012-12-15 0:16 ` NeilBrown
2012-12-13 7:11 ` Thierry Reding
2012-12-13 17:07 ` Jon Hunter
2012-12-13 17:07 ` Jon Hunter
2012-12-13 17:34 ` Tony Lindgren
2013-01-06 21:12 ` NeilBrown
2013-01-06 21:12 ` NeilBrown
2013-01-07 22:24 ` Jon Hunter
2013-01-07 22:24 ` Jon Hunter
2012-12-13 17:41 ` Tony Lindgren
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=50CA137A.5010304@ti.com \
--to=jon-hunter@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=marathon96@gmail.com \
--cc=neilb@suse.de \
--cc=thierry.reding@avionic-design.de \
/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.