linux/arch/arm/common
Russell King 593c569236 ARM: sa1111: fix pcmcia suspend/resume
commit 06dfe5cc0c upstream.

SA1111 PCMCIA was broken when PCMCIA switched to using dev_pm_ops for
the PCMCIA socket class.  PCMCIA used to handle suspend/resume via the
socket hosting device, which happened at normal device suspend/resume
time.

However, the referenced commit changed this: much of the resume now
happens much earlier, in the noirq resume handler of dev_pm_ops.

However, on SA1111, the PCMCIA device is not accessible as the SA1111
has not been resumed at _noirq time.  It's slightly worse than that,
because the SA1111 has already been put to sleep at _noirq time, so
suspend doesn't work properly.

Fix this by converting the core SA1111 code to use dev_pm_ops as well,
and performing its own suspend/resume at noirq time.

This fixes these errors in the kernel log:

pcmcia_socket pcmcia_socket0: time out after reset
pcmcia_socket pcmcia_socket1: time out after reset

and the resulting lack of PCMCIA cards after a S2RAM cycle.

Fixes: d7646f7632 ("pcmcia: use dev_pm_ops for class pcmcia_socket_class")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2016-11-20 01:17:25 +00:00
..
bL_switcher.c ARM: 8063/1: bL_switcher: fix individual online status reporting of removed CPUs 2014-05-28 16:33:02 +01:00
bL_switcher_dummy_if.c ARM: bL_switcher: add a simple /dev user interface for debugging purposes 2013-08-05 00:13:00 -04:00
dmabounce.c ARM: dma-mapping: add support for dma_get_sgtable() 2012-07-30 12:25:47 +02:00
edma.c ARM: common: edma: Fix channel parameter for irq callbacks 2015-12-13 17:48:45 +00:00
firmware.c ARM: Add interface for registering and calling firmware-specific operations 2013-04-09 01:52:06 +09:00
icst.c ARM: 8519/1: ICST: try other dividends than 1 2016-02-25 10:34:57 +00:00
it8152.c arm/PCI: Use dev_is_pci() to identify PCI devices 2013-12-11 16:53:18 -07:00
Kconfig ARM: davinci: move private EDMA API to arm/common 2013-06-18 10:52:03 +05:30
locomo.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
Makefile ARM: 7962/2: Make all mcpm functions notrace 2014-02-18 19:39:33 +00:00
mcpm_entry.c Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
mcpm_head.S Merge branch 'baserock/bjdooks/312-rc4/be/core-v3' of git://git.baserock.org/delta/linux into devel-stable 2013-10-30 22:20:26 +00:00
mcpm_platsmp.c ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing 2014-05-25 23:48:12 +01:00
sa1111.c ARM: sa1111: fix pcmcia suspend/resume 2016-11-20 01:17:25 +00:00
scoop.c ARM: 8068/1: scoop: Remove unused variable 2014-06-17 14:46:55 +01:00
sharpsl_param.c ARM: 7845/1: sharpsl_param.c: fix invalid memory access for pxa devices 2013-10-03 10:39:43 +01:00
timer-sp.c ARM: SP804: make Integrator/CP timer pick clock from DT 2014-02-13 11:20:36 +01:00
vlock.h ARM: mcpm: Add baremetal voting mutexes 2013-04-24 10:37:01 -04:00
vlock.S ARM: mcpm: use -st dsb option prior to sev instructions 2013-08-12 12:25:45 +01:00