From: Olof Johansson Date: Mon, 15 Apr 2013 03:49:21 +0000 (-0700) Subject: Merge tag 'msm-core-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb... X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=b56a7f9206efa2982140837e36aca88cfedd66bc;p=linux-beck.git Merge tag 'msm-core-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm into next/soc From David Brown: Patches for MSM core These patches are changes to the MSM timer code that will be for upcoming targets, including a generalization of the binding and preventing a missing timer interrupt. * tag 'msm-core-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm: ARM: msm: Wait for timer clear to complete ARM: msm: Rework timer binding to be more general Signed-off-by: Olof Johansson --- b56a7f9206efa2982140837e36aca88cfedd66bc diff --cc arch/arm/mach-msm/timer.c index f9fd77e8f1f5,b4b0d79476a8..284313f3e02c --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c @@@ -62,11 -65,13 +65,16 @@@ static int msm_timer_set_next_event(uns { u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE); - writel_relaxed(0, event_base + TIMER_CLEAR); + ctrl &= ~TIMER_ENABLE_EN; + writel_relaxed(ctrl, event_base + TIMER_ENABLE); + + writel_relaxed(ctrl, event_base + TIMER_CLEAR); writel_relaxed(cycles, event_base + TIMER_MATCH_VAL); + + if (sts_base) + while (readl_relaxed(sts_base) & TIMER_STS_GPT0_CLR_PEND) + cpu_relax(); + writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE); return 0; }