mirror-linux/drivers
Tomasz Figa 01601b3495 ARM: EXYNOS: Fix suspend/resume sequences
Due to recent consolidation of Exynos suspend and cpuidle code, some
parts of suspend and resume sequences are executed two times, once from
exynos_pm_syscore_ops and then from exynos_cpu_pm_notifier() and thus it
breaks suspend, at least on Exynos4-based boards. In addition, simple
core power down from a cpuidle driver could, in case of CPU 0 could
result in calling functions that are specific to suspend and deeper idle
states.

This patch fixes the issue by moving those operations outside the CPU PM
notifier into suspend and AFTR code paths. This leads to a bit of code
duplication, but allows additional code simplification, so in the end
more code is removed than added.

Fixes: 85f9f90808 ("ARM: EXYNOS: Use the cpu_pm notifier for pm")
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Olof Johansson <olof@lixom.net>
Cc: arm@kernel.org
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
[b.zolnierkie: ported patch over current changes]
[b.zolnierkie: fixed exynos_aftr_finisher() return value]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2014-08-09 08:24:36 -07:00
..
accessibility
acpi ACPI and power management updates for 3.17-rc1 2014-08-06 20:34:19 -07:00
amba
ata Merge branch 'akpm' (patchbomb from Andrew Morton) 2014-08-06 21:14:42 -07:00
atm atm: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
auxdisplay
base Merge branch 'akpm' (patchbomb from Andrew Morton) 2014-08-06 21:14:42 -07:00
bcma
block block: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
bluetooth
bus ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
cdrom
char Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-08-07 17:36:12 -07:00
clk ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
clocksource ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
connector
cpufreq ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
cpuidle ARM: EXYNOS: Fix suspend/resume sequences 2014-08-09 08:24:36 -07:00
crypto crypto: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
dca
devfreq
dio
dma sound updates for 3.17-rc1 2014-08-06 20:07:24 -07:00
dma-buf
edac Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 17:21:59 -07:00
eisa
extcon
firewire Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
firmware kexec: support kexec/kdump on EFI systems 2014-08-08 15:57:33 -07:00
fmc
gpio This is the bulk of GPIO changes for the v3.17 development 2014-08-08 18:00:35 -07:00
gpu fbdev changes for 3.17 2014-08-08 18:09:33 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-08-08 17:39:48 -07:00
hsi HSI changes for the v3.17 series 2014-08-06 20:06:14 -07:00
hv Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
hwmon fs.h, drivers/hwmon/asus_atk0110.c: fix DEFINE_SIMPLE_ATTRIBUTE semicolon definition and use 2014-08-06 18:01:23 -07:00
hwspinlock
i2c == Changes to existing drivers == 2014-08-07 17:17:39 -07:00
ide ide: use module_platform_driver() 2014-08-05 21:16:46 -07:00
idle
iio Staging driver patches for 3.17-rc1 2014-08-04 18:36:12 -07:00
infiniband infiniband: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-08-08 17:39:48 -07:00
iommu ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
ipack
irqchip ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
isdn
leds ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
lguest mm/vmalloc.c: clean up map_vm_area third argument 2014-08-06 18:01:19 -07:00
macintosh == Changes to existing drivers == 2014-08-07 17:23:16 -07:00
mailbox
mcb
md Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 16:23:30 -07:00
media media: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
memory
memstick
message
mfd == Changes to existing drivers == 2014-08-07 17:17:39 -07:00
misc ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
mmc == Changes to existing drivers == 2014-08-07 17:17:39 -07:00
mtd MTD updates for 3.17-rc1 2014-08-08 18:13:21 -07:00
net drivers/net/ethernet/amd/pcnet32.c: neaten and remove unnecessary OOM messages 2014-08-08 15:57:30 -07:00
nfc
ntb
nubus
of Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
oprofile
parisc
parport drivers/parport/parport_ip32.c: use PTR_ERR_OR_ZERO 2014-08-08 15:57:25 -07:00
pci ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
pcmcia Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-08-07 08:50:34 -07:00
phy ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
pinctrl ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
platform Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-08-08 17:39:48 -07:00
pnp
power ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
powercap
pps
ps3
ptp
pwm pwm: Changes for v3.17-rc1 2014-08-08 18:06:29 -07:00
rapidio rapidio/tsi721_dma: rework scatter-gather list handling 2014-08-08 15:57:24 -07:00
ras
regulator == Changes to existing drivers == 2014-08-07 17:17:39 -07:00
remoteproc
reset
rpmsg
rtc Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-08-07 08:41:00 -07:00
sbus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2014-08-05 18:57:18 -07:00
scsi scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
sfi
sh
sn
soc
spi ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
spmi
ssb
staging Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
target SCSI misc on 20140806 2014-08-06 20:10:32 -07:00
tc
thermal
thunderbolt
tty Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
uio
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-08-06 21:03:53 -07:00
uwb
vfio drivers/vfio: EEH support for VFIO PCI device 2014-08-05 15:28:48 +10:00
vhost
video fbdev changes for 3.17 2014-08-08 18:09:33 -07:00
virt
virtio
vlynq
vme vme: bridges: use pci_zalloc_consistent 2014-08-08 15:57:30 -07:00
w1
watchdog Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-08-07 08:47:00 -07:00
xen - Remove unused V2 grant table support. 2014-08-07 11:33:15 -07:00
zorro
Kconfig Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
Makefile Driver core patches for 3.17-rc1 2014-08-04 18:34:04 -07:00