summaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea
diff options
context:
space:
mode:
authorSayali Lokhande <sayalil@codeaurora.org>2018-02-19 16:38:26 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2019-03-18 21:15:38 -0700
commit7a4c37e16d1d8f6cb779b43981aa57bdbabb0b15 (patch)
treeaa251a4021a8d820f06b5efaee1a4f599c8a04ad /drivers/usb/chipidea
parent9280a655b9c11b73024494f2885de6a84457ed9d (diff)
mmc: host: Cancel clock gating work in suspend
In some scenarios, it is observed that mmc clock gating work is racing with pm suspend resulting in unclocked register access. Sequence of events: 1) System is going to suspend (PM_SUSPEND_PREPARE) 2) Sd card is inserted and mmc_power_up() is called as part of mmc_sd_detect. 3) mmc_power_up() released clocks and clock gate work is scheduled. 4) As part of PM suspend clocks are disabled. 5) Clock gate work(scheduled at step 3) kicks in now after suspend and unclocked register access happens in sdhci_set_bus_width() function. Logs: mmc1: Enter mode PM_SUSPEND_PREPARE mmc_sd_detect(mmc1): Re-init card success in mmc_sd_detect => mmc_power_up (clocks released here) mmc1: Enter mode PM_POST_SUSPEND mmc1: sdhci_msm_runtime_suspend: Enter mmc1: sdhci_msm_runtime_suspend: Exit mmc1: Enter mode PM_SUSPEND_PREPARE mmc1: mmc_bus_suspend: Enter mmc1: mmc_bus_suspend: Exit 0 mmc1: sdhci_msm_suspend: Enter mmc1: sdhci_msm_suspend: already runtime suspended mmc1: sdhci_msm_disable_controller_clock: disabled clock => PM_SUSPEND disabled clocks mmc1: sdhci_msm_suspend: Exit ret: 0 mmc_host_clk_gate_delayed: mmc1: Enter mmc_host_clk_gate_delayed: mmc1: calling gate_clock.. <> Unhandled fault: external abort Workqueue: events mmc_host_clk_gate_work PC is at sdhci_set_bus_width+0x2c/0xb4 To fix this unclocked access, cancel any clock gating work scheduled by mmc_host_clk_release() before turning off clocks in suspend. Change-Id: I1165ad2c5a1eb52abf18fef12667e93c947ae417 Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Diffstat (limited to 'drivers/usb/chipidea')
0 files changed, 0 insertions, 0 deletions