linux-stable/include/linux/platform_data
Tony Lindgren 4d7b324e23 bus: ti-sysc: Fix am335x resume hang for usb otg module
On am335x, suspend and resume only works once, and the system hangs if
suspend is attempted again. However, turns out suspend and resume works
fine multiple times if the USB OTG driver for musb controller is loaded.

The issue is caused my the interconnect target module losing context
during suspend, and it needs a restore on resume to be reconfigure again
as debugged earlier by Dave Gerlach <d-gerlach@ti.com>.

There are also other modules that need a restore on resume, like gpmc as
noted by Dave. So let's add a common way to restore an interconnect
target module based on a quirk flag. For now, let's enable the quirk for
am335x otg only to fix the suspend and resume issue.

As gpmc is not causing hangs based on tests with BeagleBone, let's patch
gpmc separately. For gpmc, we also need a hardware reset done before
restore according to Dave.

To reinit the modules, we decouple system suspend from PM runtime. We
replace calls to pm_runtime_force_suspend() and pm_runtime_force_resume()
with direct calls to internal functions and rely on the driver internal
state. There no point trying to handle complex system suspend and resume
quirks via PM runtime.

This is issue should have already been noticed with commit 1819ef2e2d
("bus: ti-sysc: Use swsup quirks also for am335x musb") when quirk
handling was added for am335x otg for swsup. But the issue went unnoticed
as having musb driver loaded hides the issue, and suspend and resume works
once without the driver loaded.

Fixes: 1819ef2e2d ("bus: ti-sysc: Use swsup quirks also for am335x musb")
Suggested-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-05-18 10:11:06 +03:00
..
gpio platform/x86: pcengines-apuv2: Fix typo on define of AMD_FCH_GPIO_REG_GPIO55_DEVSLP0 2020-09-24 14:04:53 +03:00
media media: camera-mx3: Remove unused header file 2021-03-22 11:58:22 +01:00
txx9
x86 mtd: spi-nor: intel-spi: Move platform data header to x86 subfolder 2021-03-08 08:32:31 +02:00
ad5449.h
ad5755.h
ad5761.h mailmap: change email for Ricardo Ribalda 2020-05-25 18:59:59 -06:00
ad7266.h
ad7791.h
ad7793.h platform_data: ad7793.h: drop a duplicated word 2020-08-22 10:53:23 +01:00
ad7887.h iio: adc: ad7887: invert/rework external ref logic 2020-10-10 17:38:36 +01:00
adau17x1.h
adp5588.h
adp8860.h
adp8870.h
ads7828.h
ams-delta-fiq.h
apds990x.h
arm-ux500-pm.h
asoc-imx-ssi.h
asoc-kirkwood.h
asoc-palm27x.h
asoc-s3c.h
asoc-s3c24xx_simtec.h
asoc-ti-mcbsp.h
asoc-ux500-msp.h
ata-pxa.h
ata-samsung_cf.h
atmel.h pcmcia: at91_cf: move definitions locally 2020-11-27 22:25:07 +01:00
b53.h
bcmgenet.h
bd6107.h
bh1770glc.h
brcmfmac.h
clk-da8xx-cfgchip.h
clk-davinci-pll.h
clk-fch.h ACPI: APD: Add a fmw property is_raven 2020-08-07 20:12:00 +02:00
clk-s3c2410.h ARM: s3c24xx: pass pointer to clk driver via platform data 2020-08-19 20:58:10 +02:00
cpuidle-exynos.h
cros_ec_chardev.h
cros_ec_commands.h chrome platform changes for 5.13 2021-05-07 14:49:18 -07:00
cros_ec_proto.h platform/chrome: cros_ec_proto: Replace zero-length array with flexible-array member 2020-10-29 17:22:59 -05:00
cros_ec_sensorhub.h
cros_usbpd_notify.h
crypto-ux500.h
cyttsp4.h
davinci-cpufreq.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
davinci_asp.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
dma-dw.h dmaengine: dw: Add DMA-channels mask cell support 2020-08-17 11:58:31 +05:30
dma-ep93xx.h
dma-hsu.h
dma-imx-sdma.h dmaengine: imx-sdma: Remove platform data support 2021-01-26 22:42:48 +05:30
dma-imx.h
dma-iop32x.h
dma-mcf-edma.h
dma-mmp_tdma.h
dma-mv_xor.h
dma-s3c24xx.h
dma-ste-dma40.h
dmtimer-omap.h
ds620.h
dsa.h
edma.h
elm.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
emif_plat.h
eth-ep93xx.h
eth_ixp4xx.h net: ethernet: ixp4xx: Support device tree probing 2021-04-25 18:27:13 -07:00
fb-s3c2410.h fbdev: s3c2410fb: remove mach header dependency 2020-08-20 17:48:12 +02:00
g762.h
gpio-ath79.h
gpio-davinci.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
gpio-dwapb.h gpio: dwapb: Add max GPIOs macro 2020-08-27 10:32:57 +02:00
gpio-htc-egpio.h
gpio-omap.h gpio: omap: Save and restore sysconfig 2021-04-21 16:43:51 +02:00
gpio_backlight.h
gpmc-omap.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
gsc_hwmon.h hwmon: (gsc-hwmon) add fan sensor 2020-09-23 09:42:41 -07:00
hirschmann-hellcreek.h net: dsa: hellcreek: Report switch name and ID 2021-03-22 18:02:10 -07:00
hsmmc-omap.h
hwmon-s3c.h
i2c-davinci.h
i2c-gpio.h
i2c-imx.h
i2c-mux-gpio.h
i2c-mux-reg.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pxa.h
i2c-s3c2410.h
i2c-xiic.h
ina2xx.h
intel-mid_wdt.h
invensense_mpu6050.h iio:imu:mpu6050: Modify matricies to matrices 2021-03-29 11:06:01 +01:00
iommu-omap.h
irda-pxaficp.h
irda-sa11x0.h
isl9305.h
itco_wdt.h
keyboard-pxa930_rotary.h
keyboard-spear.h
keypad-ep93xx.h
keypad-nomadik-ske.h
keypad-omap.h
keypad-pxa27x.h
keyscan-davinci.h
lcd-mipid.h
leds-lm355x.h
leds-lm3642.h
leds-lp55xx.h leds: lp55xx: Add multicolor framework support to lp55xx 2020-07-22 14:42:06 +02:00
leds-omap.h
leds-s3c24xx.h ARM: s3c24xx: leds: Convert to use GPIO descriptors 2020-07-09 09:56:14 +02:00
lm3630a_bl.h
lm3639_bl.h
lm8323.h
lp855x.h
lp8727.h
lp8755.h
ltc4245.h
lv5207lp.h
max197.h
max732x.h
max3421-hcd.h
max6639.h
max6697.h
mcs.h
mdio-bcm-unimac.h
mdio-gpio.h
mfd-mcp-sa11x0.h
microchip-ksz.h
mlxcpld.h i2c: mux: mlxcpld: Add callback to notify mux creation completion 2021-02-09 11:35:44 +01:00
mlxreg.h platform_data/mlxreg: Extend core platform structure 2020-10-07 23:21:00 +02:00
mmc-davinci.h
mmc-esdhc-imx.h mmc: sdhci-esdhc: update contact email 2020-05-28 11:21:03 +02:00
mmc-esdhc-mcf.h m68k: mcf5441x: add support for esdhc mmc controller 2020-05-28 11:22:15 +02:00
mmc-mxcmmc.h
mmc-omap.h mmc: omap: remove unused struct component card_detect_irq 2021-02-01 11:54:44 +01:00
mmc-pxamci.h
mmc-s3cmci.h ARM: s3c24xx: move s3cmci pinctrl handling into board files 2020-08-20 17:42:21 +02:00
mmc-sdhci-s3c.h
mmp_audio.h
mmp_dma.h
mouse-pxa930_trkball.h
mtd-davinci-aemif.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
mtd-davinci.h mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
mtd-nand-omap2.h
mtd-nand-pxa3xx.h
mtd-nand-s3c2410.h mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
mtd-orion_nand.h
mv88e6xxx.h
mv_usb.h
net-cw1200.h
nfcmrvl.h
ntc_thermistor.h
omap-twl4030.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
omap-wd-timer.h
omap1_bl.h
omapdss.h
pca953x.h
pcf857x.h
pcmcia-pxa2xx_viper.h
phy-da8xx-usb.h
pinctrl-single.h
pm33xx.h soc: ti: pm33xx: Simplify RTC usage to prepare to drop platform data 2020-08-24 08:38:32 +03:00
pxa2xx_udc.h
pxa_sdhci.h
regulator-haptic.h
rtc-ds2404.h
rtc-v3020.h
s3c-hsotg.h
s3c-hsudc.h usb: gadget: s3c-hsudc: remove platform header dependency 2020-08-19 20:58:27 +02:00
sa11x0-serial.h
sc18is602.h
sdhci-pic32.h
serial-omap.h
serial-sccnxp.h
sgi-w1.h
shmob_drm.h drm: shmobile: Reduce include dependencies 2020-10-13 17:15:43 +03:00
sht3x.h
shtc1.h
si5351.h
simplefb.h video: fbdev: simplefb: Add "r5g5b5a1" mode 2021-01-20 12:12:22 +01:00
spi-ath79.h
spi-clps711x.h
spi-davinci.h
spi-ep93xx.h
spi-mt65xx.h
spi-omap2-mcspi.h
spi-s3c64xx.h
ssm2518.h
st33zp24.h
st_sensors_pdata.h
syscon.h
tda9950.h
ti-aemif.h
ti-prm.h
ti-sysc.h bus: ti-sysc: Fix am335x resume hang for usb otg module 2021-05-18 10:11:06 +03:00
timer-ixp4xx.h
touchscreen-s3c2410.h
tsc2007.h
tsl2563.h
tsl2772.h
uio_dmem_genirq.h
uio_pruss.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
usb-davinci.h
usb-ehci-orion.h
usb-musb-ux500.h
usb-ohci-pxa27x.h
usb-ohci-s3c2410.h
usb-omap.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
usb-omap1.h
usb-pxa3xx-ulpi.h
usb-s3c2410_udc.h
usb3503.h
ux500_wdt.h
video-ep93xx.h
video-imxfb.h
video-mx3fb.h
video-pxafb.h
video_s3c.h
voltage-omap.h
wan_ixp4xx_hss.h
wilco-ec.h
wiznet.h
wkup_m3.h
xilinx-ll-temac.h
xtalk-bridge.h
zforce_ts.h