From: Timo Kokkonen <timo.t.kokkonen@iki.fi>
To: balbi@ti.com
Cc: Tony Lindgren <tony@atomide.com>,
linux-omap@vger.kernel.org, linux-media@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/7] ir-rx51: Handle signals properly
Date: Fri, 14 Dec 2012 21:31:20 +0200 [thread overview]
Message-ID: <50CB7E88.9050207@iki.fi> (raw)
In-Reply-To: <20121214172616.GC9620@arwen.pp.htv.fi>
On 12/14/12 19:26, Felipe Balbi wrote:
> Hi,
>
> On Fri, Dec 14, 2012 at 09:28:09AM -0800, Tony Lindgren wrote:
>> * Tony Lindgren <tony@atomide.com> [121120 12:00]:
>>> Hi,
>>>
>>> * Timo Kokkonen <timo.t.kokkonen@iki.fi> [121118 07:15]:
>>>> --- a/drivers/media/rc/ir-rx51.c
>>>> +++ b/drivers/media/rc/ir-rx51.c
>>>> @@ -74,6 +74,19 @@ static void lirc_rx51_off(struct lirc_rx51 *lirc_rx51)
>>>> OMAP_TIMER_TRIGGER_NONE);
>>>> }
>>>>
>>>> +static void lirc_rx51_stop_tx(struct lirc_rx51 *lirc_rx51)
>>>> +{
>>>> + if (lirc_rx51->wbuf_index < 0)
>>>> + return;
>>>> +
>>>> + lirc_rx51_off(lirc_rx51);
>>>> + lirc_rx51->wbuf_index = -1;
>>>> + omap_dm_timer_stop(lirc_rx51->pwm_timer);
>>>> + omap_dm_timer_stop(lirc_rx51->pulse_timer);
>>>> + omap_dm_timer_set_int_enable(lirc_rx51->pulse_timer, 0);
>>>> + wake_up(&lirc_rx51->wqueue);
>>>> +}
>>>> +
>>>> static int init_timing_params(struct lirc_rx51 *lirc_rx51)
>>>> {
>>>> u32 load, match;
>>>
>>> Good fixes in general.. But you won't be able to access the
>>> omap_dm_timer functions after we enable ARM multiplatform support
>>> for omap2+. That's for v3.9 probably right after v3.8-rc1.
>>>
>>> We need to find some Linux generic API to use hardware timers
>>> like this, so I've added Thomas Gleixner and linux-arm-kernel
>>> mailing list to cc.
>>>
>>> If no such API is available, then maybe we can export some of
>>> the omap_dm_timer functions if Thomas is OK with that.
>>
>> Just to update the status on this.. It seems that we'll be moving
>> parts of plat/dmtimer into a minimal include/linux/timer-omap.h
>> unless people have better ideas on what to do with custom
>> hardware timers for PWM etc.
>
> if it's really for PWM, shouldn't we be using drivers/pwm/ ??
>
Now that Neil Brown posted the PWM driver for omap, I've been thinking
about whether converting the ir-rx51 into the PWM API would work. Maybe
controlling the PWM itself would be sufficient, but the ir-rx51 uses
also another dmtimer for creating accurate (enough) timing source for
the IR pulse edges.
I haven't tried whether the default 32kHz clock source is enough for
that. Now that I think about it, I don't see why it wouldn't be good
enough. I think it would even be possible to just use the PWM api alone
(plus hr-timers) in order to generate good enough IR pulses.
-Timo
> Meaning that $SUBJECT would just request a PWM device and use it. That
> doesn't solve the whole problem, however, as pwm-omap.c would still need
> access to timer-omap.h.
>
WARNING: multiple messages have this Message-ID (diff)
From: timo.t.kokkonen@iki.fi (Timo Kokkonen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/7] ir-rx51: Handle signals properly
Date: Fri, 14 Dec 2012 21:31:20 +0200 [thread overview]
Message-ID: <50CB7E88.9050207@iki.fi> (raw)
In-Reply-To: <20121214172616.GC9620@arwen.pp.htv.fi>
On 12/14/12 19:26, Felipe Balbi wrote:
> Hi,
>
> On Fri, Dec 14, 2012 at 09:28:09AM -0800, Tony Lindgren wrote:
>> * Tony Lindgren <tony@atomide.com> [121120 12:00]:
>>> Hi,
>>>
>>> * Timo Kokkonen <timo.t.kokkonen@iki.fi> [121118 07:15]:
>>>> --- a/drivers/media/rc/ir-rx51.c
>>>> +++ b/drivers/media/rc/ir-rx51.c
>>>> @@ -74,6 +74,19 @@ static void lirc_rx51_off(struct lirc_rx51 *lirc_rx51)
>>>> OMAP_TIMER_TRIGGER_NONE);
>>>> }
>>>>
>>>> +static void lirc_rx51_stop_tx(struct lirc_rx51 *lirc_rx51)
>>>> +{
>>>> + if (lirc_rx51->wbuf_index < 0)
>>>> + return;
>>>> +
>>>> + lirc_rx51_off(lirc_rx51);
>>>> + lirc_rx51->wbuf_index = -1;
>>>> + omap_dm_timer_stop(lirc_rx51->pwm_timer);
>>>> + omap_dm_timer_stop(lirc_rx51->pulse_timer);
>>>> + omap_dm_timer_set_int_enable(lirc_rx51->pulse_timer, 0);
>>>> + wake_up(&lirc_rx51->wqueue);
>>>> +}
>>>> +
>>>> static int init_timing_params(struct lirc_rx51 *lirc_rx51)
>>>> {
>>>> u32 load, match;
>>>
>>> Good fixes in general.. But you won't be able to access the
>>> omap_dm_timer functions after we enable ARM multiplatform support
>>> for omap2+. That's for v3.9 probably right after v3.8-rc1.
>>>
>>> We need to find some Linux generic API to use hardware timers
>>> like this, so I've added Thomas Gleixner and linux-arm-kernel
>>> mailing list to cc.
>>>
>>> If no such API is available, then maybe we can export some of
>>> the omap_dm_timer functions if Thomas is OK with that.
>>
>> Just to update the status on this.. It seems that we'll be moving
>> parts of plat/dmtimer into a minimal include/linux/timer-omap.h
>> unless people have better ideas on what to do with custom
>> hardware timers for PWM etc.
>
> if it's really for PWM, shouldn't we be using drivers/pwm/ ??
>
Now that Neil Brown posted the PWM driver for omap, I've been thinking
about whether converting the ir-rx51 into the PWM API would work. Maybe
controlling the PWM itself would be sufficient, but the ir-rx51 uses
also another dmtimer for creating accurate (enough) timing source for
the IR pulse edges.
I haven't tried whether the default 32kHz clock source is enough for
that. Now that I think about it, I don't see why it wouldn't be good
enough. I think it would even be possible to just use the PWM api alone
(plus hr-timers) in order to generate good enough IR pulses.
-Timo
> Meaning that $SUBJECT would just request a PWM device and use it. That
> doesn't solve the whole problem, however, as pwm-omap.c would still need
> access to timer-omap.h.
>
next prev parent reply other threads:[~2012-12-14 19:31 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-18 15:13 [PATCH 0/7] ir-rx51: Various fixes Timo Kokkonen
2012-11-18 15:13 ` [PATCH 1/7] ir-rx51: Handle signals properly Timo Kokkonen
2012-11-20 19:57 ` Tony Lindgren
2012-11-20 19:57 ` Tony Lindgren
2012-12-14 17:28 ` Tony Lindgren
2012-12-14 17:28 ` Tony Lindgren
2012-12-14 17:26 ` Felipe Balbi
2012-12-14 17:26 ` Felipe Balbi
2012-12-14 17:26 ` Felipe Balbi
2012-12-14 17:46 ` Tony Lindgren
2012-12-14 17:46 ` Tony Lindgren
2012-12-14 17:49 ` Felipe Balbi
2012-12-14 17:49 ` Felipe Balbi
2012-12-14 17:49 ` Felipe Balbi
2012-12-14 18:06 ` Tony Lindgren
2012-12-14 18:06 ` Tony Lindgren
2012-12-14 18:08 ` Felipe Balbi
2012-12-14 18:08 ` Felipe Balbi
2012-12-14 18:08 ` Felipe Balbi
2012-12-14 19:31 ` Timo Kokkonen [this message]
2012-12-14 19:31 ` Timo Kokkonen
2012-12-14 19:41 ` Tony Lindgren
2012-12-14 19:41 ` Tony Lindgren
2012-11-18 15:13 ` [PATCH 2/7] ir-rx51: Clean up timer initialization code Timo Kokkonen
2012-11-18 15:13 ` [PATCH 3/7] ir-rx51: Move platform data checking into probe function Timo Kokkonen
2012-11-18 15:13 ` [PATCH 4/7] ir-rx51: Replace module_{init,exit} macros with module_platform_driver Timo Kokkonen
2012-11-18 15:13 ` [PATCH 5/7] ir-rx51: Convert latency constraints to PM QoS API Timo Kokkonen
2012-11-18 15:13 ` [PATCH 6/7] ir-rx51: Remove useless variable from struct lirc_rx51 Timo Kokkonen
2012-11-18 15:13 ` [PATCH 7/7] ir-rx51: Fix sparse warnings Timo Kokkonen
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=50CB7E88.9050207@iki.fi \
--to=timo.t.kokkonen@iki.fi \
--cc=balbi@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tony@atomide.com \
/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.