public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: kgene.kim@samsung•com (Kukjin Kim)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH] arm: dts: exynos5: Remove multi core timer
Date: Wed, 21 May 2014 21:47:20 +0900	[thread overview]
Message-ID: <033a01cf74f2$d025ce80$70716b80$@samsung.com> (raw)
In-Reply-To: <CAJFHJrrb2XFDZqJh4OuLdFP=J0aR4pGe-WLWKZ7ZpMfUSPGd4Q@mail.gmail.com>

Chirantan Ekbote wrote:
> 
> >>> Anyway, I'm by no means opposed to switching to arch timers. They
> >>> provide a well designed, generic interface and drivers shared by
> >>> multiple platforms, which means more code sharing and possibly more eyes
> >>> looking at the code, which is always good. However if they don't support
> >>> low power states correctly, we can't just remove MCT.
> >>
> >> I think low power states aren't in mainline (right?).
> >>
> >> One solution that might work could be to leave the device tree entry
> >> alone but change the MCT init code to simply act as a no-op if it sees
> >> an arch timer is in the device tree and enabled.  Then when/if someone
> >> got the low power states enabled we could just change source code
> >> rather than dts files.
> >>
> Doug and I were talking about this and we think we may have a way to
> have the mct and arch timers co-exist.  The main issue is that the mct
> (and therefore arch timer) gets cleared once during boot and every
> time we do a suspend / resume.  This happens in
> exynos4_mct_frc_start() but it's not immediately clear to us why the
> counter needs to be reset at all.  If we remove the lines that clear
> the counter then there is no longer an issue with having both the mct
> and the arch timers on at the same time.
> 
Yeah, actually we don't need to reset the count value after suspend/resume.
So, how about following? I think, it should be fine to you.

diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index 8d64200..d24db6f 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -157,12 +157,15 @@ static void exynos4_mct_frc_start(u32 hi, u32 lo)
 {
 	u32 reg;
 
-	exynos4_mct_write(lo, EXYNOS4_MCT_G_CNT_L);
-	exynos4_mct_write(hi, EXYNOS4_MCT_G_CNT_U);
-
 	reg = __raw_readl(reg_base + EXYNOS4_MCT_G_TCON);
-	reg |= MCT_G_TCON_START;
-	exynos4_mct_write(reg, EXYNOS4_MCT_G_TCON);
+
+	if (!(reg & MCT_G_TCON_START)) {
+		exynos4_mct_write(lo, EXYNOS4_MCT_G_CNT_L);
+		exynos4_mct_write(hi, EXYNOS4_MCT_G_CNT_U);
+
+		reg |= MCT_G_TCON_START;
+		exynos4_mct_write(reg, EXYNOS4_MCT_G_TCON);
+	}
 }


> Alternately, if there is some code that depends on the mct being reset
> we could store an offset instead of clearing the counter and then
> subtract that offset every time something reads it.  Doug has a patch
> that does this at
> https://chromium-review.googlesource.com/#/c/200298/.  Effectively the
> visible behavior will not change.  Would either of these options work?
> 
Hmm...I cannot open the webpage :(

- Kukjin

  parent reply	other threads:[~2014-05-21 12:47 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 21:07 [PATCH] arm: dts: exynos5: Remove multi core timer Chirantan Ekbote
2014-05-15 21:14 ` Tomasz Figa
2014-05-15 21:33   ` Doug Anderson
2014-05-15 21:40     ` Tomasz Figa
2014-05-15 21:54       ` Doug Anderson
2014-05-15 22:13         ` Tomasz Figa
2014-05-15 22:44           ` Doug Anderson
2014-05-15 23:03             ` Chirantan Ekbote
2014-05-15 23:18               ` David Riley
2014-05-15 23:25                 ` Tomasz Figa
2014-05-15 23:39                   ` Olof Johansson
2014-05-15 23:45                     ` Doug Anderson
2014-05-15 23:46                     ` Tomasz Figa
2014-05-15 23:43                   ` Doug Anderson
2014-05-16  0:31                     ` Sonny Rao
2014-05-16 22:56                       ` Chirantan Ekbote
2014-05-17  0:02                         ` Kukjin Kim
2014-05-19 15:12                           ` Doug Anderson
2014-05-21 13:24                             ` Kukjin Kim
2014-05-21 15:30                               ` Olof Johansson
2014-05-21 16:20                               ` Tomasz Figa
2014-05-21 18:34                                 ` Chirantan Ekbote
2014-05-28 17:38                                   ` Doug Anderson
2014-06-02 23:22                                     ` Doug Anderson
2014-05-21 12:47                         ` Kukjin Kim [this message]
2014-05-21 18:34                           ` Chirantan Ekbote
2014-05-28 17:23                           ` Doug Anderson
2014-06-03 18:41                           ` Chirantan Ekbote
2014-06-04  1:45                             ` Kukjin Kim
2014-05-28 17:37             ` Doug Anderson
2014-05-29 20:42               ` Vincent Guittot
2014-05-29 21:41                 ` Doug Anderson
2014-05-15 21:44     ` Kukjin Kim
2014-05-15 21:44       ` Tomasz Figa

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='033a01cf74f2$d025ce80$70716b80$@samsung.com' \
    --to=kgene.kim@samsung$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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