summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorShawn Lin <shawn.lin@rock-chips.com>2025-12-16 19:49:56 +0800
committerUlf Hansson <ulf.hansson@linaro.org>2026-02-23 12:06:52 +0100
commit9313c6c3dbd7aab645f1a37943f8187ea48edc6f (patch)
tree8cbc0cc4d2ae8dababb9981a89f3f9ba060147e1 /tools/perf/scripts/python/stackcollapse.py
parent5962f68603ea74b804f7bb01a475b08846932aad (diff)
mmc: dw_mmc: Remove vqmmc_enabled from struct dw_mci and update the reset
commit 51da2240906c ("mmc: dw_mmc: use mmc_regulator_get_supply to handle regulators") introduced tracking of vqmmc_enabled. Currently, mmc_regulator_enable_vqmmc() and mmc_regulator_disable_vqmmc() well record the status of vqmmc, so use these two helpers to remove vqmmc_enabled locally. With vqmmc_enabled gone, resetting controller on MMC_POWER_ON phase won't work as dw_mci_set_ios() will be called several times during enumerating which leads to reset the controller several times too. This messes up the status machine of controller. By looking into the commit d1f1dd86006c ("mmc: dw_mmc: Give a good reset after we give power"), it tried to solve failures on rk3288. The problem is probably because the vqmmc is used for IO block associated with dw controller. When SD is removed during I/O, cutting off vqmmc in MMC_POWER_OFF phase will confuse the controller as its status machine refers to several IO status, such as data_state_mc_busy and data_busy on SDMMC_STATUS reg. So the controller could run into an unexpected state and could not enumerate cards correctly the next time. Reset it on MMC_POWER_ON phase or MMC_POWER_OFF phase should work, let's do the latter. This patch is tested on RK3588s/RK3399/RK3576 EVB with TF cards with both vqmmc present or not. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions