All of lore.kernel.org
 help / color / mirror / Atom feed
From: baruch@tkos.co.il (Baruch Siach)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] mx25: fix time accounting
Date: Wed, 12 May 2010 08:06:28 +0300	[thread overview]
Message-ID: <20100512050627.GA19283@jasper.tkos.co.il> (raw)
In-Reply-To: <20100511154349.GZ31199@pengutronix.de>

Hi Sascha,

On Tue, May 11, 2010 at 05:43:49PM +0200, Sascha Hauer wrote:
> On Mon, Jan 25, 2010 at 12:58:21PM +0200, Baruch Siach wrote:
> > The gpt_clk rate function doesn't consider the PER divider. This causes a
> > significant drift in time accounting. Fix this by introducing the correct rate
> > calculation function.
> 
> Should have tested this one. In fact with this patch applied my clock
> goes wrong.
> 
> The i.MX Timer code makes sure the gpt clock is sourced from the ipg
> clock (GPTCR[6:8] = 1), so the behaviour should be correct the way it
> was before this patch. Any idea why it was wrong on your hardware? Have
> you changed the GPTCR bits?

No. My current platform is the i.MX25 PDK. I've added the following to my 
mx25pdk_init():

debugfs_create_x32("gptcr", 0444, NULL,
    (u32*)MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR));

When the system is running I get:

# cat /debugfs/gptcr 
0x00000249

That is GPTCR[6:8] = 1.

The same clock calculation is being done in the platform code of the Freescale 
supplied kernel (now based on 2.6.31).  Can you get this one running on your 
platform?

baruch

> > 
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > ---
> >  arch/arm/mach-mx25/clock.c |    7 ++++++-
> >  1 files changed, 6 insertions(+), 1 deletions(-)
> > 
> > diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
> > index 08aaa38..c003ac4 100644
> > --- a/arch/arm/mach-mx25/clock.c
> > +++ b/arch/arm/mach-mx25/clock.c
> > @@ -119,6 +119,11 @@ static unsigned long get_rate_nfc(struct clk *clk)
> >  	return get_rate_per(8);
> >  }
> >  
> > +static unsigned long get_rate_gpt(struct clk *clk)
> > +{
> > +	return get_rate_per(5);
> > +}
> > +
> >  static unsigned long get_rate_otg(struct clk *clk)
> >  {
> >  	return 48000000; /* FIXME */
> > @@ -156,7 +161,7 @@ static void clk_cgcr_disable(struct clk *clk)
> >  		.secondary	= s,			\
> >  	}
> >  
> > -DEFINE_CLOCK(gpt_clk,    0, CCM_CGCR0,  5, get_rate_ipg, NULL, NULL);
> > +DEFINE_CLOCK(gpt_clk,    0, CCM_CGCR0,  5, get_rate_gpt, NULL, NULL);
> >  DEFINE_CLOCK(uart_per_clk, 0, CCM_CGCR0, 15, get_rate_uart, NULL, NULL);
> >  DEFINE_CLOCK(cspi1_clk,  0, CCM_CGCR1,  5, get_rate_ipg, NULL, NULL);
> >  DEFINE_CLOCK(cspi2_clk,  0, CCM_CGCR1,  6, get_rate_ipg, NULL, NULL);
> > -- 
> > 1.6.5
> > 
> > 
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

  reply	other threads:[~2010-05-12  5:06 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-21 15:00 [PATCH 0/2] mx25: clock related fixes Baruch Siach
2010-01-21 15:00 ` [PATCH 1/2] mx25: remove unused mx25_clocks_init() argument Baruch Siach
2010-01-21 15:00 ` [PATCH 2/2] mx25: properly initialize clocks, fix time accounting Baruch Siach
2010-01-22  6:50   ` Baruch Siach
2010-01-22  7:57   ` Sascha Hauer
2010-01-25 10:54     ` Baruch Siach
2010-01-25 10:58       ` [PATCH 1/4] mx25: remove unused mx25_clocks_init() argument Baruch Siach
2010-01-25 10:58       ` [PATCH 2/4] mx25: properly initialize clocks Baruch Siach
2010-07-05  7:08         ` Uwe Kleine-König
2010-07-08 10:04           ` Baruch Siach
2010-01-25 10:58       ` [PATCH 3/4] mx25: fix time accounting Baruch Siach
2010-01-25 11:11         ` Lothar Waßmann
2010-01-25 15:01           ` Baruch Siach
2010-05-11 15:43         ` Sascha Hauer
2010-05-12  5:06           ` Baruch Siach [this message]
2010-05-12  9:46             ` Sascha Hauer
2010-05-12 10:45               ` Baruch Siach
2010-05-12 12:09                 ` Sascha Hauer
2010-07-06 15:28                 ` Rob Herring
2010-07-04  8:43               ` Baruch Siach
2010-07-04  8:47                 ` [PATCH] mx25: set GPT clock source to PER Baruch Siach
2010-07-05  8:21                   ` Sascha Hauer
2010-07-06  6:35                     ` Baruch Siach
2010-07-06  7:33                       ` Sascha Hauer
2010-07-06 14:06                         ` Rob Herring
2010-07-07  8:00                         ` Baruch Siach
2010-07-07 10:28                           ` Sascha Hauer
2010-07-07 13:04                             ` Baruch Siach
2010-07-05 11:18                 ` [PATCH 3/4] mx25: fix time accounting Martin Fuzzey
2010-01-25 10:58       ` [PATCH 4/4] mx25: make the FEC AHB clk secondary of the IPG Baruch Siach
2010-01-22  7:58   ` [PATCH 2/2] mx25: properly initialize clocks, fix time accounting Sascha Hauer
2010-01-22  7:59   ` Sascha Hauer

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=20100512050627.GA19283@jasper.tkos.co.il \
    --to=baruch@tkos.co.il \
    --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.