diff options
| author | Nitin Rawat <nitin.rawat@oss.qualcomm.com> | 2026-09-09 11:09:44 +0530 |
|---|---|---|
| committer | Martin K. Petersen (Oracle) <mkp@kernel.org> | 2026-09-09 22:30:27 -0400 |
| commit | f07317a8d57f382ec505597816271dd72ffa20c7 (patch) | |
| tree | bb7533cfe6eba399924668ff768d48fe61812595 /tools/perf/scripts/python/event_analyzing_sample.py | |
| parent | 1b800ac9e21c2dbeda3dcb923060017e42612c4b (diff) | |
| download | linux-next-f07317a8d57f382ec505597816271dd72ffa20c7.tar.gz linux-next-f07317a8d57f382ec505597816271dd72ffa20c7.zip | |
scsi: ufs: ufs-qcom: Enable only lane clocks in lane clock APIs
ufs_qcom_enable_lane_clks() and ufs_qcom_disable_lane_clks() currently
use clk_bulk_prepare_enable()/clk_bulk_disable_unprepare() on the entire
host->clks array obtained from devm_clk_bulk_get_all(). This array
contains all device clocks, not just lane symbol clocks.
Since the UFS core framework already manages the non-lane clocks via the
setup_clocks callback, the bulk enable/disable in the lane clock APIs
resulted in duplicate reference count increments on those shared
clocks. The extra enable counts were never balanced by a corresponding
disable from the framework's clock gating path, preventing the clock
reference counts from reaching zero and ultimately blocking CXO shutdown
during low-power states.
Fix this by restricting the lane clock APIs to only prepare/enable and
disable/unprepare the three lane symbol clocks (tx_lane0_sync_clk,
rx_lane0_sync_clk, rx_lane1_sync_clk), leaving the handling of all other
clocks to the UFS core framework. The lane clocks are now acquired
individually via devm_clk_get() instead of being looked up in the bulk
clock array.
Signed-off-by: Nitin Rawat <nitin.rawat@oss.qualcomm.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://patch.msgid.link/20260909053944.2827968-1-nitin.rawat@oss.qualcomm.com
Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/event_analyzing_sample.py')
0 files changed, 0 insertions, 0 deletions
