kernel_optimize_test/drivers/clocksource
Sudeep Holla f63d947c16 clocksource/arm_arch_timer: Fix arch_timer_mem_find_best_frame()
arch_timer_mem_find_best_frame() looks through ARCH_TIMER_MEM_MAX_FRAMES
frames even after finding matches to ensure the best frame is chosen,
which means the variable frame will point to the last valid frame but
not necessarily the best frame.

On Juno, we get the following error as the wrong frame is returned as the
best frame from arch_timer_mem_find_best_frame():

  arch_timer: Unable to map frame @ 0x0000000000000000
  arch_timer: Frame missing phys irq.
  Failed to initialize '/timer@2a810000': -22

Fix the issue by correctly returning the best frame from
arch_timer_mem_find_best_frame().

Fixes: c389d701df ("clocksource: arm_arch_timer: split MMIO timer probing.")
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1494246747-17267-1-git-send-email-sudeep.holla@arm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2017-05-09 08:56:41 +02:00
..
acpi_pm.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
arc_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
arm_arch_timer.c clocksource/arm_arch_timer: Fix arch_timer_mem_find_best_frame() 2017-05-09 08:56:41 +02:00
arm_global_timer.c Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
armv7m_systick.c clocksource/drivers/armv7m_systick: Add the COMPILE_TEST option 2016-06-28 10:22:05 +02:00
asm9260_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
bcm_kona_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
bcm2835_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
cadence_ttc_timer.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
clkevt-probe.c clockevents: Fix syntax error in clkevt-of macro 2017-03-28 09:39:49 +02:00
clksrc_st_lpc.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
clksrc-dbx500-prcmu.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
clksrc-probe.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
clps711x-timer.c ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
cs5535-clockevt.c clockevents/drivers/cs5535: Migrate to new 'set-state' interface 2015-08-06 12:16:42 +02:00
dummy_timer.c cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
dw_apb_timer_of.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
dw_apb_timer.c Merge branch 'clockevents/4.12' of https://git.linaro.org/people/daniel.lezcano/linux into timers/core 2017-04-17 10:55:14 +02:00
em_sti.c clocksource: em_sti: Compute rate before registration 2017-03-23 12:14:03 -07:00
exynos_mct.c clocksource/exynos_mct: Clear interrupt when cpu is shut down 2017-01-17 10:08:38 +01:00
fsl_ftm_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
h8300_timer8.c clocksource: h8300_timer8: Don't reset rate in ->set_state_oneshot() 2017-03-23 12:14:04 -07:00
h8300_timer16.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
h8300_tpu.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
i8253.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
jcore-pit.c Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
Kconfig arm64 arch timer workaround series, including the base patches 2017-04-07 16:23:29 +02:00
Makefile clocksource/drivers/gemini: Rename Gemini timer to Faraday 2017-04-07 16:23:08 +02:00
meson6_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
metag_generic.c clockevents/drivers/metag: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:13 -07:00
mips-gic-timer.c Clocksource/mips-gic: Remove redundant non devicetree init 2017-04-20 14:56:59 +02:00
mmio.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
moxart_timer.c clocksource/drivers/moxart: Plug memory and mapping leaks 2016-12-19 11:19:57 +01:00
mps2-timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
mtk_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
mxs_timer.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
nomadik-mtu.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
numachip.c x86/numachip timer: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:14 -07:00
pxa_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
qcom-timer.c Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
renesas-ostm.c clocksource/drivers/ostm: Add renesas-ostm timer driver 2017-02-07 20:58:30 +01:00
rockchip_timer.c clocksource/drivers/rockchip_timer: Implement clocksource timer 2017-04-07 16:23:05 +02:00
samsung_pwm_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
scx200_hrt.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
sh_cmt.c clockevents/drivers/sh_cmt: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:15 -07:00
sh_mtu2.c clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue 2015-10-28 15:22:56 +01:00
sh_tmu.c clocksource: sh_tmu: Compute rate before registration again 2017-03-23 12:14:01 -07:00
sun4i_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
tango_xtal.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
tcb_clksrc.c Revert "clocksource/drivers/tcb_clksrc: Use 32 bit tcb as sched_clock" 2017-03-11 22:03:34 +01:00
tegra20_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
time-armada-370-xp.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
time-efm32.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
time-lpc32xx.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
time-orion.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
time-pistachio.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
timer-atlas7.c clockevents/drivers/atlas7: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:15 -07:00
timer-atmel-pit.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-atmel-st.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
timer-digicolor.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-fttmr010.c clocksource/drivers/fttmr010: Refactor to handle clock 2017-04-07 16:23:08 +02:00
timer-imx-gpt.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-integrator-ap.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-keystone.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-nps.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-oxnas-rps.c clocksource/drivers/oxnas: Add OX820 compatible 2016-09-12 07:28:46 +02:00
timer-prima2.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-sp.h ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
timer-sp804.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-stm32.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-sun5i.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
timer-ti-32k.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
timer-u300.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
versatile.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
vf_pit_timer.c clocksource: Add missing line break to error messages 2017-04-07 16:23:04 +02:00
vt8500_timer.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
zevio-timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00