android_kernel_motorola_sm6375/drivers/bus
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Manu Gautam 5be8f883fc mhi: core: add mhi_device_get_sync_atomic() to wait until M0
There is a possibility of client driver's dev_wake request
as part mhi_device_get() racing with M1 state transition
event processing. This can result in a scenario where client
finds MHI state as M0 after mhi_device_get() returns only to
be changed later as M1 event processing is still pending on
different CPU core.
It causes M0 -> M2 -> M0 state transition after mhi_device_get()
has already returned. This isn't expected by client and currently
treats that as fatal error. Also, as per MHI spec host must allow
M1 -> M2 transition for device and it shouldn't abort that.

However, clients can ignore that transition as device is expected
to immediately move from M2 to M0 without entering deep sleep
state. Hence, it must be safe to access their MMIO.
To simplify this logic, introduce mhi_device_get_sync_atomic()
function that can be used by clients to achieve the same and once
it returns success they don't need to have any explicit MHI state
checks.

Change-Id: I0b4a1ad723a0444ee2402bf171fc5ffc46afcdce
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
2020-06-17 23:24:02 -07:00
..
fsl-mc bus: fsl-mc: remove explicit device_link_del 2019-08-16 14:17:35 -05:00
mhi mhi: core: add mhi_device_get_sync_atomic() to wait until M0 2020-06-17 23:24:02 -07:00
arm-cci.c
brcmstb_gisb.c
da8xx-mstpri.c
hisi_lpc.c bus: hisi_lpc: Add .remove method to avoid driver unbind crash 2019-08-13 14:54:34 +08:00
imx-weim.c bus: imx-weim: remove incorrect __init annotations 2019-09-04 17:59:32 +02:00
Kconfig Merge android-5.4.24 (ce5de62) into msm-5.4 2020-04-14 08:25:29 -07:00
Makefile mhi: add snapshot for MHI driver stack 2019-12-25 21:32:42 -08:00
mips_cdmm.c
moxtet.c bus: moxtet: fix potential stack buffer overflow 2020-02-19 19:53:04 +01:00
mvebu-mbus.c
omap-ocp2scp.c
omap_l3_noc.c
omap_l3_noc.h
omap_l3_smx.c
omap_l3_smx.h
qcom-ebi2.c
simple-pm-bus.c
sun50i-de2.c
sunxi-rsb.c bus: sunxi-rsb: Remove dev_err() usage after platform_get_irq() 2019-08-06 14:15:49 +08:00
tegra-aconnect.c
tegra-gmi.c
ti-sysc.c bus: ti-sysc: Fix 1-wire reset quirk 2020-03-12 13:00:31 +01:00
ts-nbus.c
uniphier-system-bus.c bus: uniphier-system-bus: use devm_platform_ioremap_resource() 2019-09-05 17:57:18 +02:00
vexpress-config.c