From: hvaibhav@ti.com (Vaibhav Hiremath)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/10] ARM: OMAP: Add dmtimer interrupt disable function
Date: Thu, 6 Sep 2012 18:28:01 +0530 [thread overview]
Message-ID: <50489DD9.90903@ti.com> (raw)
In-Reply-To: <1346871872-24413-10-git-send-email-jon-hunter@ti.com>
On 9/6/2012 12:34 AM, Jon Hunter wrote:
> The OMAP dmtimer driver does not currently have a function to disable the
> timer interrupts. For some timer instances the timer interrupt enable
> function can be used to disable the interrupts because the same interrupt
> enable register is used to disable interrupts. However, some timer instances
> have separate interrupt enable/disable registers and so this will not work.
> Therefore, add a dedicated function to disable interrupts.
>
I think you should clearly specify which timer and which device you are
referring to.
Thanks,
Vaibhav
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>
> ---
> arch/arm/plat-omap/dmtimer.c | 31 +++++++++++++++++++++++++++++
> arch/arm/plat-omap/include/plat/dmtimer.h | 3 ++-
> 2 files changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> index 541adbb..3b548dc 100644
> --- a/arch/arm/plat-omap/dmtimer.c
> +++ b/arch/arm/plat-omap/dmtimer.c
> @@ -612,6 +612,37 @@ int omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
> }
> EXPORT_SYMBOL_GPL(omap_dm_timer_set_int_enable);
>
> +/**
> + * omap_dm_timer_set_int_disable - disable timer interrupts
> + * @timer: pointer to timer handle
> + * @mask: bit mask of interrupts to be disabled
> + *
> + * Disables the specified timer interrupts for a timer.
> + */
> +int omap_dm_timer_set_int_disable(struct omap_dm_timer *timer, u32 mask)
> +{
> + u32 l = mask;
> +
> + if (unlikely(!timer))
> + return -EINVAL;
> +
> + omap_dm_timer_enable(timer);
> +
> + if (timer->revision == 1)
> + l = __raw_readl(timer->irq_ena) & ~mask;
> +
> + __raw_writel(l, timer->irq_dis);
> + l = __omap_dm_timer_read(timer, OMAP_TIMER_WAKEUP_EN_REG) & ~mask;
> + __omap_dm_timer_write(timer, OMAP_TIMER_WAKEUP_EN_REG, l);
> +
> + /* Save the context */
> + timer->context.tier &= ~mask;
> + timer->context.twer &= ~mask;
> + omap_dm_timer_disable(timer);
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(omap_dm_timer_set_int_disable);
> +
> unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
> {
> unsigned int l;
> diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h
> index b3150a3..820f0ce 100644
> --- a/arch/arm/plat-omap/include/plat/dmtimer.h
> +++ b/arch/arm/plat-omap/include/plat/dmtimer.h
> @@ -130,6 +130,7 @@ int omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on, int toggle, i
> int omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler);
>
> int omap_dm_timer_set_int_enable(struct omap_dm_timer *timer, unsigned int value);
> +int omap_dm_timer_set_int_disable(struct omap_dm_timer *timer, u32 mask);
>
> unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer);
> int omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value);
> @@ -314,7 +315,7 @@ static inline void __omap_dm_timer_init_regs(struct omap_dm_timer *timer)
> OMAP_TIMER_V1_SYS_STAT_OFFSET;
> timer->irq_stat = timer->io_base + OMAP_TIMER_V1_STAT_OFFSET;
> timer->irq_ena = timer->io_base + OMAP_TIMER_V1_INT_EN_OFFSET;
> - timer->irq_dis = NULL;
> + timer->irq_dis = timer->io_base + OMAP_TIMER_V1_INT_EN_OFFSET;
> timer->pend = timer->io_base + _OMAP_TIMER_WRITE_PEND_OFFSET;
> timer->func_base = timer->io_base;
> } else {
>
next prev parent reply other threads:[~2012-09-06 12:58 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-05 19:04 [PATCH 00/10] ARM: OMAP: DMTIMER fixes and clean-up Jon Hunter
2012-09-05 19:04 ` [PATCH 01/10] ARM: OMAP3+: Implement timer workaround for errata i103 and i767 Jon Hunter
2012-09-06 5:07 ` Vaibhav Hiremath
2012-09-06 14:06 ` Jon Hunter
2012-09-06 14:42 ` Jon Hunter
2012-09-06 15:20 ` Jon Hunter
2012-09-13 10:26 ` Hiremath, Vaibhav
2012-09-13 10:24 ` Hiremath, Vaibhav
2012-09-05 19:04 ` [PATCH 02/10] ARM: OMAP: Fix timer posted mode support Jon Hunter
2012-09-06 12:57 ` Vaibhav Hiremath
2012-09-06 14:20 ` Jon Hunter
2012-09-06 16:01 ` Jon Hunter
2012-09-13 10:24 ` Hiremath, Vaibhav
2012-09-05 19:04 ` [PATCH 03/10] ARM: OMAP3: Correct HWMOD DMTIMER SYSC register declarations Jon Hunter
2012-09-05 19:04 ` [PATCH 04/10] ARM: OMAP2/3: Define HWMOD software reset status for DMTIMERs Jon Hunter
2012-09-05 19:04 ` [PATCH 05/10] ARM: OMAP2+: Don't use __omap_dm_timer_reset() Jon Hunter
2012-09-05 19:04 ` [PATCH 06/10] ARM: OMAP: Fix dmtimer reset for timer1 Jon Hunter
2012-09-05 19:04 ` [PATCH 07/10] ARM: OMAP: Clean-up dmtimer reset code Jon Hunter
2012-09-05 19:04 ` [PATCH 08/10] ARM: OMAP: Clean-up timer posted mode support Jon Hunter
2012-09-07 22:22 ` Tony Lindgren
2012-09-10 21:59 ` Jon Hunter
2012-09-11 0:58 ` Tony Lindgren
2012-09-11 16:26 ` Jon Hunter
2012-09-11 16:34 ` Tony Lindgren
2012-09-13 3:26 ` Jon Hunter
2012-09-05 19:04 ` [PATCH 09/10] ARM: OMAP: Add dmtimer interrupt disable function Jon Hunter
2012-09-06 12:58 ` Vaibhav Hiremath [this message]
2012-09-06 14:26 ` Jon Hunter
2012-09-05 19:04 ` [PATCH 10/10] ARM: OMAP: Remove unnecessary call to clk_get() Jon Hunter
2012-09-06 12:58 ` [PATCH 00/10] ARM: OMAP: DMTIMER fixes and clean-up Vaibhav Hiremath
2012-09-06 14:30 ` Jon Hunter
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=50489DD9.90903@ti.com \
--to=hvaibhav@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).