android_kernel_google_msm/arch/arm
Felipe Balbi 2 56a4076e7a ARM: 7565/1: sched: stop sched_clock() during suspend
The scheduler imposes a requirement to sched_clock()
which is to stop the clock during suspend, if we don't
do that any RT thread will be rescheduled in the future
which might cause any sort of problems.

This became an issue on OMAP when we converted omap-i2c.c
to use threaded IRQs, it turned out that depending on how
much time we spent on suspend, the I2C IRQ thread would
end up being rescheduled so far in the future that I2C
transfers would timeout and, because omap_hsmmc depends
on an I2C-connected device to detect if an MMC card is
inserted in the slot, our rootfs would just vanish.

arch/arm/kernel/sched_clock.c already had an optional
implementation (sched_clock_needs_suspend()) which would
handle scheduler's requirement properly, what this patch
does is simply to make that implementation non-optional.

Note that this has the side-effect that printk timings
won't reflect the actual time spent on suspend so other
methods to measure that will have to be used.

This has been tested with beagleboard XM (OMAP3630) and
pandaboard rev A3 (OMAP4430). Suspend to RAM is now working
after this patch.

Thanks to Kevin Hilman for helping out with debugging.

Change-Id: Ie2f9e3b22eb3d1f3806cf8c598f22e2fa1b8651f
Acked-by: Kevin Hilman <khilman@ti.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
CRs-Fixed: 497236
Git-commit: 6a4dae5e13
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
2016-10-29 23:12:16 +08:00
..
boot msm: kgsl: Remove nap_allowed variable and functionality 2013-09-11 22:41:32 -07:00
common POWER: Add an API call to log wake wakeup reason 2014-03-13 20:19:55 +00:00
configs flo: Enable F2FS 2016-10-29 23:12:16 +08:00
crypto ARM: 8120/1: crypto: sha512: add ARM NEON implementation 2015-01-07 10:45:11 -08:00
include/asm ARM: 7565/1: sched: stop sched_clock() during suspend 2016-10-29 23:12:16 +08:00
kernel ARM: 7565/1: sched: stop sched_clock() during suspend 2016-10-29 23:12:16 +08:00
lib ARM: 7670/1: fix the memset fix 2015-03-23 14:41:09 -07:00
mach-at91
mach-bcmring
mach-clps711x
mach-cns3xxx
mach-davinci
mach-dove
mach-ebsa110
mach-ep93xx
mach-exynos
mach-footbridge
mach-gemini
mach-h720x
mach-highbank
mach-imx
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-ixp23xx
mach-ixp2000
mach-kirkwood
mach-ks8695
mach-l7200/include/mach
mach-lpc32xx
mach-mmp
mach-msm msm: dma: Moving queue_work() function within spinlock 2016-10-29 23:12:15 +08:00
mach-mv78xx0
mach-mxs
mach-netx
mach-nomadik
mach-omap1
mach-omap2
mach-orion5x
mach-picoxcell
mach-pnx4008
mach-prima2
mach-pxa
mach-realview
mach-rpc
mach-s3c24xx
mach-s3c64xx
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0
mach-s5pc100
mach-s5pv210
mach-sa1100
mach-shark
mach-shmobile
mach-spear3xx
mach-spear6xx
mach-tegra
mach-u300
mach-ux500
mach-versatile
mach-vexpress
mach-vt8500
mach-w90x900
mach-zynq
mm ARM: dma-mapping: don't allow DMA mappings to be marked executable 2016-06-02 11:32:02 -07:00
net
nwfpe
oprofile
perfmon
plat-iop
plat-mxc
plat-nomadik
plat-omap
plat-orion
plat-pxa
plat-s3c24xx
plat-s5p
plat-samsung
plat-spear
plat-versatile
tools
vfp ARM: move VFP init to an earlier boot stage 2016-10-29 23:12:14 +08:00
Kconfig ARM: add support for kernel mode NEON 2016-10-29 23:12:13 +08:00
Kconfig-nommu
Kconfig.debug
Makefile ARM: Use -mcpu=cortex-a15 when targeting MSM Krait CPUs 2016-10-29 23:12:12 +08:00