linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [GIT PULL 8/10] omap timer cleanup for v3.5 merge window
Date: Thu, 10 May 2012 13:24:16 -0700	[thread overview]
Message-ID: <20120510202415.GO21851@atomide.com> (raw)
In-Reply-To: <20120510185130.GJ21851@atomide.com>

* Tony Lindgren <tony@atomide.com> [120510 11:55]:
> * Tony Lindgren <tony@atomide.com> [120510 11:49]:
> > The following changes since commit bfd17879866b36e95c58721da070d9f2ac7f8901:
> > 
> >   Merge tag 'omap-devel-c-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into devel-hwmod-data (2012-05-09 09:58:42 -0700)
> > 
> > are available in the git repository at:
> > 
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-cleanup-timer-for-v3.5
> > 
> > for you to fetch changes up to 1fe97c8f6a1de67a5f56e029a818903d5bed8017:
> > 
> >   ARM: OMAP: Make OMAP clocksource source selection using kernel param (2012-05-09 10:07:05 -0700)
> > 
> > ----------------------------------------------------------------
> > Timer changes to make it easier to support various SoCs
> > 
> > ----------------------------------------------------------------
> 
> And this has a conflict for common headers:
...

Also looks like this produces a merge conflict with linux-next
commit bd0493ea (ARM: 7413/1: move read_{boot,persistent}_clock to
the architecture level). To resolve, the line to add
register_persistent_clock(NULL, omap_read_persistent_clock);
needs to be resolved as below.

Regards,

Tony


--- a/arch/arm/plat-omap/counter_32k.c
+++ b/arch/arm/plat-omap/counter_32k.c
@@@ -69,40 -69,55 +70,41 @@@ static void omap_read_persistent_clock(
  	*ts = *tsp;
  }
  
 -int __init omap_init_clocksource_32k(void)
 +/**
 + * omap_init_clocksource_32k - setup and register counter 32k as a
 + * kernel clocksource
 + * @pbase: base addr of counter_32k module
 + * @size: size of counter_32k to map
 + *
 + * Returns 0 upon success or negative error code upon failure.
 + *
 + */
 +int __init omap_init_clocksource_32k(void __iomem *vbase)
  {
 -	static char err[] __initdata = KERN_ERR
 -			"%s: can't register clocksource!\n";
 -
 -	if (cpu_is_omap16xx() || cpu_class_is_omap2()) {
 -		u32 pbase;
 -		unsigned long size = SZ_4K;
 -		void __iomem *base;
 -		struct clk *sync_32k_ick;
 -
 -		if (cpu_is_omap16xx()) {
 -			pbase = OMAP16XX_TIMER_32K_SYNCHRONIZED;
 -			size = SZ_1K;
 -		} else if (cpu_is_omap2420())
 -			pbase = OMAP2420_32KSYNCT_BASE + 0x10;
 -		else if (cpu_is_omap2430())
 -			pbase = OMAP2430_32KSYNCT_BASE + 0x10;
 -		else if (cpu_is_omap34xx())
 -			pbase = OMAP3430_32KSYNCT_BASE + 0x10;
 -		else if (cpu_is_omap44xx())
 -			pbase = OMAP4430_32KSYNCT_BASE + 0x10;
 -		else
 -			return -ENODEV;
 -
 -		/* For this to work we must have a static mapping in io.c for this area */
 -		base = ioremap(pbase, size);
 -		if (!base)
 -			return -ENODEV;
 -
 -		sync_32k_ick = clk_get(NULL, "omap_32ksync_ick");
 -		if (!IS_ERR(sync_32k_ick))
 -			clk_enable(sync_32k_ick);
 -
 -		timer_32k_base = base;
 -
 -		/*
 -		 * 120000 rough estimate from the calculations in
 -		 * __clocksource_updatefreq_scale.
 -		 */
 -		clocks_calc_mult_shift(&persistent_mult, &persistent_shift,
 -				32768, NSEC_PER_SEC, 120000);
 -
 -		if (clocksource_mmio_init(base, "32k_counter", 32768, 250, 32,
 -					  clocksource_mmio_readl_up))
 -			printk(err, "32k_counter");
 -
 -		setup_sched_clock(omap_32k_read_sched_clock, 32, 32768);
 -		register_persistent_clock(NULL, omap_read_persistent_clock);
 +	int ret;
 +
 +	/*
 +	 * 32k sync Counter register offset is at 0x10
 +	 */
 +	sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF;
 +
 +	/*
 +	 * 120000 rough estimate from the calculations in
 +	 * __clocksource_updatefreq_scale.
 +	 */
 +	clocks_calc_mult_shift(&persistent_mult, &persistent_shift,
 +			32768, NSEC_PER_SEC, 120000);
 +
 +	ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768,
 +				250, 32, clocksource_mmio_readl_up);
 +	if (ret) {
 +		pr_err("32k_counter: can't register clocksource\n");
 +		return ret;
  	}
 +
 +	setup_sched_clock(omap_32k_read_sched_clock, 32, 32768);
 +	pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n");
++	register_persistent_clock(NULL, omap_read_persistent_clock);
 +
  	return 0;
  }

  reply	other threads:[~2012-05-10 20:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-10 18:39 [GIT PULL 1/10] omap non-critical fixes for v3.5 merge window Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 2/10] omap soc clean-up " Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 3/10] more " Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 7/10] omap device init clean-up for v3.5 Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 4/10] updates for omap PRCM (Power, Reset, Clock Management) Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 6/10] omap hwmod data additions for v3.5, depends on devel-prcm Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 5/10] omap board file changes for v3.5 merge window Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 8/10] omap timer cleanup " Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 9/10] omap devicetree updates " Tony Lindgren
2012-05-10 18:39 ` [GIT PULL 10/10] omap dss clean up " Tony Lindgren
     [not found] ` <E1SSYIv-0006IZ-NG@merlin.infradead.org>
2012-05-10 18:50   ` [GIT PULL 9/10] omap devicetree updates " Tony Lindgren
     [not found] ` <E1SSYJA-0006UJ-4H@merlin.infradead.org>
2012-05-10 18:51   ` [GIT PULL 8/10] omap timer cleanup " Tony Lindgren
2012-05-10 20:24     ` Tony Lindgren [this message]
2012-05-11  7:07       ` Olof Johansson
     [not found] ` <E1SSYJW-0006gd-Dw@merlin.infradead.org>
2012-05-10 18:53   ` [GIT PULL 10/10] omap dss clean up " Tony Lindgren
     [not found] ` <E1SSYHG-0005cy-Cu@merlin.infradead.org>
2012-05-10 18:55   ` [GIT PULL 2/10] omap soc clean-up " Tony Lindgren

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=20120510202415.GO21851@atomide.com \
    --to=tony@atomide.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).