Douglas Anderson
57a20248ef
clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288
...
Experimentally it can be seen that going into deep sleep (specifically
setting PMU_CLR_DMA and PMU_CLR_BUS in RK3288_PMU_PWRMODE_CON1)
appears to fail unless "aclk_dmac1" is on. The failure is that the
system never signals that it made it into suspend on the GLOBAL_PWROFF
pin and it just hangs.
NOTE that it's confirmed that it's the actual suspend that fails, not
one of the earlier calls to read/write registers. Specifically if you
comment out the "PMU_GLOBAL_INT_DISABLE" setting in
rk3288_slp_mode_set() and then comment out the "cpu_do_idle()" call in
rockchip_lpmode_enter() then you can exercise the whole suspend path
without any crashing.
This is currently not a problem with suspend upstream because there is
no current way to exercise the deep suspend code. However, anyone
trying to make it work will run into this issue.
This was not a problem on shipping rk3288-based Chromebooks because
those devices all ran on an old kernel based on 3.14. On that kernel
"aclk_dmac1" appears to be left on all the time.
There are several ways to skin this problem.
A) We could add "aclk_dmac1" to the list of critical clocks and that
apperas to work, but presumably that wastes power.
B) We could keep a list of "struct clk" objects to enable at suspend
time in clk-rk3288.c and use the standard clock APIs.
C) We could make the rk3288-pmu driver keep a list of clocks to enable
at suspend time. Presumably this would require a dts and bindings
change.
D) We could just whack the clock on in the existing syscore suspend
function where we whack a bunch of other clocks. This is particularly
easy because we know for sure that the clock's only parent
("aclk_cpu") is a critical clock so we don't need to do anything more
than ungate it.
In this case I have chosen D) because it seemed like the least work,
but any of the other options would presumably also work fine.
Signed-off-by: Douglas Anderson <[email protected] >
Reviewed-by: Elaine Zhang <[email protected] >
Signed-off-by: Heiko Stuebner <[email protected] >
2019-04-12 22:34:09 +02:00
..
accessibility
acpi
device-dax for 5.1
2019-03-16 13:05:32 -07:00
amba
android
ata
SCSI misc on 20190306
2019-03-09 16:53:47 -08:00
atm
auxdisplay
base
device-dax for 5.1
2019-03-16 13:05:32 -07:00
bcma
block
for-5.1/block-post-20190315
2019-03-16 12:36:39 -07:00
bluetooth
Bluetooth: mediatek: add support for MediaTek MT7663U and MT7668U UART devices
2019-03-02 19:51:23 +01:00
bus
ARM: SoC driver updates for 5.1
2019-03-06 09:41:12 -08:00
cdrom
char
Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2019-03-10 17:37:29 -07:00
clk
clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288
2019-04-12 22:34:09 +02:00
clocksource
ARM: some cleanups, direct physical timer assignment, cache sanitization
2019-03-15 15:00:28 -07:00
connector
connector: fix unsafe usage of ->real_parent
2019-03-08 15:06:38 -08:00
cpufreq
cpufreq: intel_pstate: Fix up iowait_boost computation
2019-03-12 09:47:30 +01:00
cpuidle
cpuidle: governor: Add new governors to cpuidle_governors again
2019-03-12 23:46:55 +01:00
crypto
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-03-13 09:51:17 -07:00
dax
device-dax for 5.1
2019-03-16 13:05:32 -07:00
dca
devfreq
dio
dma
dmaengine updates for v5.1-rc1
2019-03-14 09:11:54 -07:00
dma-buf
edac
Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2019-03-08 09:11:39 -08:00
eisa
extcon
firewire
firmware
memblock: drop memblock_alloc_*_nopanic() variants
2019-03-12 10:04:02 -07:00
fmc
fpga
fsi
gnss
gpio
pci-v5.1-changes
2019-03-09 14:57:08 -08:00
gpu
drm i915, amdgpu, qxl and etnaviv fixes
2019-03-15 13:58:35 -07:00
hid
Merge branch 'for-5.1/wacom' into for-linus
2019-03-05 15:43:05 +01:00
hsi
hv
Char/Misc driver patches for 5.1-rc1
2019-03-06 14:18:59 -08:00
hwmon
hwspinlock
hwtracing
ARM updates for 5.1-rc1
2019-03-15 14:37:46 -07:00
i2c
i2c: i2c-designware-platdrv: Always use a dynamic adapter number
2019-03-13 18:07:10 +01:00
i3c
- Add a /* fall-through */ comment in the dw-i3c-master driver
2019-03-04 19:05:02 -08:00
ide
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide
2019-03-11 09:34:00 -07:00
idle
iio
- New Drivers
2019-03-08 10:02:58 -08:00
infiniband
XArray updates for 5.1-rc1
2019-03-11 20:06:18 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2019-03-11 10:57:11 -07:00
interconnect
iommu
IOMMU Fix for Linux v5.1-rc1
2019-03-15 14:41:30 -07:00
ipack
irqchip
arm64 updates for 5.1:
2019-03-10 10:17:23 -07:00
isdn
isdn: hfcpci: fix potential NULL pointer dereference
2019-03-12 14:36:02 -07:00
leds
platform-drivers-x86 for v5.1-1
2019-03-10 13:16:37 -07:00
lightnvm
pblk: fix max_io calculation
2019-03-07 08:59:26 -07:00
macintosh
treewide: add checks for the return value of memblock_alloc*()
2019-03-12 10:04:02 -07:00
mailbox
mailbox: imx: keep MU irq working during suspend/resume
2019-03-11 02:51:43 -05:00
mcb
md
for-5.1/block-post-20190315
2019-03-16 12:36:39 -07:00
media
DMA mapping updates for 5.1
2019-03-10 11:54:48 -07:00
memory
memstick
message
mfd
DMA mapping updates for 5.1
2019-03-10 11:54:48 -07:00
misc
5.1 Merge Window Pull Request
2019-03-09 15:53:03 -08:00
mmc
for-5.1/block-20190302
2019-03-08 14:12:17 -08:00
mtd
This pull request contains updates for both UBI and UBIFS:
2019-03-13 09:34:35 -07:00
mux
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2019-03-14 09:28:12 -07:00
nfc
ntb
Fixes for switchtec debugability and mapping table entries, NTB
2019-03-15 14:32:59 -07:00
nubus
nvdimm
device-dax for 5.1
2019-03-16 13:05:32 -07:00
nvme
for-5.1/block-post-20190315
2019-03-16 12:36:39 -07:00
nvmem
Char/Misc driver patches for 5.1-rc1
2019-03-06 14:18:59 -08:00
of
of: fix kmemleak crash caused by imbalance in early memory reservation
2019-03-12 10:04:02 -07:00
opp
PM / OPP: Update performance state when freq == old_freq
2019-03-12 09:45:56 +01:00
oprofile
parisc
DMA mapping updates for 5.1
2019-03-10 11:54:48 -07:00
parport
pci
IOMMU Updates for Linux v5.1
2019-03-10 12:29:52 -07:00
pcmcia
perf
arm64 updates for 5.1:
2019-03-10 10:17:23 -07:00
phy
drm next pull request for 5.1
2019-03-08 08:23:15 -08:00
pinctrl
This is the bulk of pin control changes for the v5.1 kernel cycle.
2019-03-11 11:12:50 -07:00
platform
chrome platform changes for v5.1
2019-03-12 09:46:32 -07:00
pnp
power
powercap
pps
ps3
ptp
Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2019-03-05 14:08:26 -08:00
pwm
pwm: atmel: Remove useless symbolic definitions
2019-03-04 12:52:49 +01:00
rapidio
rapidio/mport_cdev: mark expected switch fall-through
2019-03-07 18:32:02 -08:00
ras
regulator
regulator: mc13xxx: Constify regulator_ops variables
2019-03-04 00:01:08 +00:00
remoteproc
remoteproc updates for v5.1
2019-03-14 09:00:06 -07:00
reset
rpmsg
rtc
chrome platform changes for v5.1
2019-03-12 09:46:32 -07:00
s390
ARM: some cleanups, direct physical timer assignment, cache sanitization
2019-03-15 15:00:28 -07:00
sbus
scsi
SCSI misc on 20190315
2019-03-16 12:51:50 -07:00
sfi
sh
siox
slimbus
sn
soc
ARM: SoC driver updates for 5.1
2019-03-06 09:41:12 -08:00
soundwire
spi
pci-v5.1-changes
2019-03-09 14:57:08 -08:00
spmi
ssb
staging
media updates for v5.1-rc1
2019-03-09 14:45:54 -08:00
target
SCSI misc on 20190315
2019-03-16 12:51:50 -07:00
tc
tee
ARM: SoC driver updates for 5.1
2019-03-06 09:41:12 -08:00
thermal
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal
2019-03-08 09:52:41 -08:00
thunderbolt
tty
dmaengine updates for v5.1-rc1
2019-03-14 09:11:54 -07:00
uio
usb
memblock: drop memblock_alloc_*_nopanic() variants
2019-03-12 10:04:02 -07:00
uwb
vfio
powerpc updates for 5.1
2019-03-07 12:56:26 -08:00
vhost
virtio: fixes, cleanups
2019-03-10 12:47:57 -07:00
video
fbdev changes for v5.1:
2019-03-15 14:22:59 -07:00
virt
virt: vbox: Mark expected switch fall-through
2019-02-27 16:00:20 +01:00
virtio
virtio: hint if callbacks surprisingly might sleep
2019-03-06 11:19:57 -05:00
visorbus
vlynq
vme
w1
watchdog
linux-watchdog 5.1-rc1 tag
2019-03-11 11:22:15 -07:00
xen
xen/balloon: Fix mapping PG_offline pages to user space
2019-03-15 15:35:35 +01:00
zorro
Kconfig
Makefile
IOMMU Updates for Linux v5.1
2019-03-10 12:29:52 -07:00