linux-stable/arch/arm/mach-shmobile
Geert Uytterhoeven c531fb27e9 ARM: shmobile: timer: Fix preset_lpj leading to too short delays
On all shmobile ARM SoCs, loop-based delays may complete early, which
can be after only 1/3 (Cortex A9) or 1/2 (Cortex A7 or A15) of the
minimum required time.

This is caused by calculating preset_lpj based on incorrect assumptions
about the number of clock cycles per loop:
  - All of Cortex A7, A9, and A15 run __loop_delay() at 1 loop per
    CPU clock cycle,
  - As of commit 11d4bb1bd0 ("ARM: 7907/1: lib: delay-loop: Add
    align directive to fix BogoMIPS calculation"), Cortex A8 runs
    __loop_delay() at 1 loop per 2 instead of 3 CPU clock cycles.

On SoCs with Cortex A7 and/or A15 CPU cores, this went unnoticed, as
delays use the ARM arch timer if available. R-Car Gen2 doesn't work if
the arch timer is disabled. However, APE6 can be used without the arch
timer.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2016-04-20 08:52:55 +10:00
..
common.h ARM: shmobile: Consolidate SCU mapping code 2016-02-17 21:24:29 +09:00
cpufreq.c ARM: shmobile: Add includes providing forward declarations 2016-02-04 15:09:29 +01:00
emev2.h ARM: shmobile: emev2: Move declaration of emev2_smp_ops to emev2.h 2016-02-19 14:45:31 +09:00
headsmp-scu.S Second Round of Renesas ARM Based SoC Cleanup for v4.6 2016-02-26 22:37:32 +01:00
headsmp.S ARM: shmobile: Remove shmobile_boot_arg 2016-02-17 18:27:21 +09:00
Kconfig ARM: SoC platform updates for v4.6 2016-03-20 14:57:08 -07:00
Makefile ARM: shmobile: r8a7778: remove legacy clock implementation 2015-09-14 10:06:49 +09:00
platsmp-apmu.c ARM: shmobile: Remove shmobile_boot_arg 2016-02-17 18:27:21 +09:00
platsmp-apmu.h ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
platsmp-scu.c ARM: shmobile: Consolidate SCU mapping code 2016-02-17 21:24:29 +09:00
platsmp.c ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
pm-r8a7779.c ARM: shmobile: r8a7779: Remove legacy PM Domain remainings 2015-10-01 14:09:47 +09:00
pm-rcar-gen2.c ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
pm-rcar.c libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
pm-rcar.h ARM: shmobile: R-Car: Make struct rcar_sysc_ch * parameters const 2015-07-06 09:35:19 +09:00
pm-rmobile.c clk: renesas: Rename header file renesas.h 2016-03-15 18:12:14 -07:00
pm-rmobile.h ARM: shmobile: Remove obsolete legacy PM Domain leftovers 2015-09-14 09:58:08 +09:00
r8a7779.h ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
r8a7790.h ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
r8a7791.h ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
rcar-gen2.h ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
regulator-quirk-rcar-gen2.c ARM: shmobile: gose: enable R-Car Gen2 regulator quirk 2015-07-06 09:37:24 +09:00
setup-emev2.c ARM: shmobile: emev2: Move declaration of emev2_smp_ops to emev2.h 2016-02-19 14:45:31 +09:00
setup-r7s72100.c ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
setup-r8a73a4.c ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
setup-r8a7740.c ARM: shmobile: r8a7740: Remove legacy machine_desc.map_io() callback 2016-02-19 14:45:30 +09:00
setup-r8a7778.c clk: renesas: Rename header file renesas.h 2016-03-15 18:12:14 -07:00
setup-r8a7779.c clk: renesas: Rename header file renesas.h 2016-03-15 18:12:14 -07:00
setup-r8a7790.c ARM: shmobile: r8a7790: Remove legacy code 2014-12-21 17:03:50 +09:00
setup-r8a7791.c ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
setup-r8a7793.c ARM: shmobile: r8a7793: proper constness with __initconst 2015-11-22 17:13:13 -08:00
setup-r8a7794.c ARM: shmobile: r8a7794: Reserve memory as other R-Car Gen2 SoCs 2014-09-16 15:01:58 +09:00
setup-rcar-gen2.c The clk changes for this release cycle are mostly dominated by 2016-03-23 06:06:45 -07:00
setup-sh73a0.c ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
sh73a0.h ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
smp-emev2.c ARM: SoC platform updates for v4.6 2016-03-20 14:57:08 -07:00
smp-r8a7779.c ARM: shmobile: Consolidate SCU mapping code 2016-02-17 21:24:29 +09:00
smp-r8a7790.c ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
smp-r8a7791.c ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
smp-sh73a0.c ARM: shmobile: Consolidate SCU mapping code 2016-02-17 21:24:29 +09:00
suspend.c ARM: shmobile: Add includes providing forward declarations 2016-02-04 15:09:29 +01:00
timer.c ARM: shmobile: timer: Fix preset_lpj leading to too short delays 2016-04-20 08:52:55 +10:00