PM / yenta: Fix cardbus suspend/resume regression
Rafael J. Wysocki authored
commit 0c570cde upstream.

Since 2.6.29 the PCI PM core have been restoring the standard
configuration registers of PCI devices in the early phase of
resume.  In particular, PCI devices without drivers have been handled
this way since commit 355a72d7
(PCI: Rework default handling of suspend and resume).  Unfortunately,
this leads to post-resume problems with CardBus devices which cannot
be accessed in the early phase of resume, because the sockets they
are on have not been woken up yet at that point.

To solve this problem, move the yenta socket resume to the early
phase of resume and, analogously, move the suspend of it to the late
phase of suspend.  Additionally, remove some unnecessary PCI code
from the yenta socket's resume routine.

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=13092

, which is a
post-2.6.28 regression.
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
Reported-by: default avatarFlorian <fs-kernelbugzilla@spline.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
51acd2e6
Name Last commit Last update
..
Kconfig [PCMCIA] e740 PCMCIA socket driver.
Makefile [PCMCIA] e740 PCMCIA socket driver.
at91_cf.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
au1000_db1x00.c pcmcia: replace remaining __FUNCTION__ occurrences
au1000_generic.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
au1000_generic.h pcmcia: encapsulate ioaddr_t
au1000_pb1x00.c pcmcia: cs_internal.h is internal
au1000_xxs1500.c pcmcia: cs_internal.h is internal
bfin_cf_pcmcia.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
cardbus.c pcmcia: deprecate CS_SUCCESS
cirrus.h Linux-2.6.12-rc2
cistpl.c pcmcia: add braces in error path
cs.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
cs_internal.h pcmcia: remove unused argument to pcmcia_parse_tuple()
ds.c pcmcia: struct device - replace bus_id with dev_name(), dev_set_name()
electra_cf.c powerpc: Change u64/s64 to a long long integer type
i82092.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
i82092aa.h pcmcia: remove CVS keywords
i82365.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
i82365.h Linux-2.6.12-rc2
m32r_cfc.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
m32r_cfc.h [PATCH] m32r: Update m32r_cfc.[ch] to support Mappi-III platform
m32r_pcc.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
m32r_pcc.h Linux-2.6.12-rc2
m8xx_pcmcia.c PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()
o2micro.h
omap_cf.c
pcmcia_ioctl.c
pcmcia_resource.c
pd6729.c
pd6729.h
pxa2xx_base.c
pxa2xx_base.h
pxa2xx_cm_x255.c
pxa2xx_cm_x270.c
pxa2xx_cm_x2xx.c
pxa2xx_e740.c
pxa2xx_lubbock.c
pxa2xx_mainstone.c
pxa2xx_palmld.c
pxa2xx_palmtx.c
pxa2xx_sharpsl.c
pxa2xx_trizeps4.c
pxa2xx_viper.c
ricoh.h
rsrc_mgr.c
rsrc_nonstatic.c
sa1100_assabet.c
sa1100_badge4.c
sa1100_cerf.c
sa1100_generic.c
sa1100_generic.h
sa1100_h3600.c
sa1100_jornada720.c
sa1100_neponset.c
sa1100_shannon.c
sa1100_simpad.c
sa1111_generic.c
sa1111_generic.h
sa11xx_base.c
sa11xx_base.h
soc_common.c
soc_common.h
socket_sysfs.c
tcic.c
tcic.h
ti113x.h
topic.h
vg468.h
vrc4171_card.c
vrc4173_cardu.c
vrc4173_cardu.h
yenta_socket.c
yenta_socket.h