Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Ingo Molnar:
"Three clockevents/clocksource driver fixes"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
clocksource: pxa: Fix section mismatch
clocksource: mtk: Fix race conditions in probe code
clockevents: asm9260: Fix compilation error with sparc/sparc64 allyesconfig

+13 -16
+2
arch/arm/mach-asm9260/Kconfig
··· 2 2 bool "Alphascale ASM9260" 3 3 depends on ARCH_MULTI_V5 4 4 select CPU_ARM926T 5 + select ASM9260_TIMER 6 + select GENERIC_CLOCKEVENTS 5 7 help 6 8 Support for Alphascale ASM9260 based platform.
+5 -11
drivers/clocksource/Kconfig
··· 63 63 config CADENCE_TTC_TIMER 64 64 bool 65 65 66 + config ASM9260_TIMER 67 + bool 68 + select CLKSRC_MMIO 69 + select CLKSRC_OF 70 + 66 71 config CLKSRC_NOMADIK_MTU 67 72 bool 68 73 depends on (ARCH_NOMADIK || ARCH_U8500) ··· 250 245 help 251 246 This enables OST0 support available on PXA and SA-11x0 252 247 platforms. 253 - 254 - config ASM9260_TIMER 255 - bool "Alphascale ASM9260 timer driver" 256 - depends on GENERIC_CLOCKEVENTS 257 - select CLKSRC_MMIO 258 - select CLKSRC_OF 259 - default y if MACH_ASM9260 260 - help 261 - This enables build of a clocksource and clockevent driver for 262 - the 32-bit System Timer hardware available on a Alphascale ASM9260. 263 - 264 248 endmenu
+5 -4
drivers/clocksource/mtk_timer.c
··· 224 224 } 225 225 rate = clk_get_rate(clk); 226 226 227 + mtk_timer_global_reset(evt); 228 + 227 229 if (request_irq(evt->dev.irq, mtk_timer_interrupt, 228 230 IRQF_TIMER | IRQF_IRQPOLL, "mtk_timer", evt)) { 229 231 pr_warn("failed to setup irq %d\n", evt->dev.irq); ··· 234 232 235 233 evt->ticks_per_jiffy = DIV_ROUND_UP(rate, HZ); 236 234 237 - mtk_timer_global_reset(evt); 238 - 239 235 /* Configure clock source */ 240 236 mtk_timer_setup(evt, GPT_CLK_SRC, TIMER_CTRL_OP_FREERUN); 241 237 clocksource_mmio_init(evt->gpt_base + TIMER_CNT_REG(GPT_CLK_SRC), ··· 241 241 242 242 /* Configure clock event */ 243 243 mtk_timer_setup(evt, GPT_CLK_EVT, TIMER_CTRL_OP_REPEAT); 244 - mtk_timer_enable_irq(evt, GPT_CLK_EVT); 245 - 246 244 clockevents_config_and_register(&evt->dev, rate, 0x3, 247 245 0xffffffff); 246 + 247 + mtk_timer_enable_irq(evt, GPT_CLK_EVT); 248 + 248 249 return; 249 250 250 251 err_clk_disable:
+1 -1
drivers/clocksource/pxa_timer.c
··· 163 163 .dev_id = &ckevt_pxa_osmr0, 164 164 }; 165 165 166 - static void pxa_timer_common_init(int irq, unsigned long clock_tick_rate) 166 + static void __init pxa_timer_common_init(int irq, unsigned long clock_tick_rate) 167 167 { 168 168 timer_writel(0, OIER); 169 169 timer_writel(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);