From mboxrd@z Thu Jan 1 00:00:00 1970 From: s.hauer@pengutronix.de (Sascha Hauer) Date: Tue, 11 May 2010 17:43:49 +0200 Subject: [PATCH 3/4] mx25: fix time accounting In-Reply-To: References: <20100125105439.GE6724@jasper.tkos.co.il> Message-ID: <20100511154349.GZ31199@pengutronix.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Baruch, 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? Sascha > > Signed-off-by: Baruch Siach > --- > 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 |