Skip to content

FROMLIST scsi: ufs: ufs-qcom: Enable only lane clocks in lane clock APIs#828

Open
ggiriprasad wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ggiriprasad:qcom-6.18.y
Open

FROMLIST scsi: ufs: ufs-qcom: Enable only lane clocks in lane clock APIs#828
ggiriprasad wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ggiriprasad:qcom-6.18.y

Conversation

@ggiriprasad

Copy link
Copy Markdown

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 framewore.

Link: https://lore.kernel.org/linux-scsi/20260713173434.883386-1-nitin.rawat@oss.qualcomm.com/

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 framewore.

Link: https://lore.kernel.org/linux-scsi/20260713173434.883386-1-nitin.rawat@oss.qualcomm.com/
Signed-off-by: Nitin Rawat <nitin.rawat@oss.qualcomm.com>
Signed-off-by: Giri Prasad Goriparthi <ggoripar@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@sgaud-quic

Copy link
Copy Markdown
Contributor

PR #828 — validate-patch

PR: #828

Verdict Issues Detailed Report
⚠️ 1 Full report

Final Summary

  1. Lore link present: Yes — commit has Link: https://lore.kernel.org/linux-scsi/20260713173434.883386-1-nitin.rawat@oss.qualcomm.com/
  2. Lore link matches PR commits: Yes — PR diff matches the fetched lore patch with context-only line/index differences.
  3. Upstream patch status: In review — local lore mbox contains the posting/thread evidence, with no definitive applied/queued/merged or NAK signal available from the inspected local evidence.
  4. PR present in qcom-next/topics: Partial - 1/1 commit(s) only have partial integration evidence
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: [PATCH] FROMLIST scsi: ufs: ufs-qcom: Enable only lane clocks in lane clock APIs #828
Upstream commit: https://lore.kernel.org/linux-scsi/20260713173434.883386-1-nitin.rawat@oss.qualcomm.com/
Verdict: ⚠️ PARTIAL

Commit Message

Check Status Note
Subject matches upstream Upstream subject is adapted with FROMLIST; wording matches.
Body preserves rationale Rationale is preserved, including the lane-clock-only fix explanation.
Fixes tag present/correct No Fixes: tag exists in the lore posting; none was dropped.
Authorship preserved FROMLIST author rule is satisfied: lore author Nitin Rawat <nitin.rawat@oss.qualcomm.com> is present as author and Signed-off-by.
Backport note (if applicable) N/A Not a BACKPORT commit.

Diff

File Status Notes
drivers/ufs/host/ufs-qcom.c Lore hunk content matches; only context line numbers/indexes differ.
drivers/ufs/host/ufs-qcom.h Lore hunk content matches; only context line numbers/indexes differ.

Issues

  • qcom-next/topics presence is only partial: integration_presence_report.md reports present_commits: 0/1, partial_commits: 1/1, and topics missing. Per the provided rule, lack of full qcom-next/topics presence prevents a clean pass.

Verdict

Diff and commit metadata are faithful to the lore patch, but request follow-up because integration presence is only partial rather than fully verified in qcom-next/topics.

Final Summary

  1. Lore link present: Yes — commit has Link: https://lore.kernel.org/linux-scsi/20260713173434.883386-1-nitin.rawat@oss.qualcomm.com/
  2. Lore link matches PR commits: Yes — PR diff matches the fetched lore patch with context-only line/index differences.
  3. Upstream patch status: In review — local lore mbox contains the posting/thread evidence, with no definitive applied/queued/merged or NAK signal available from the inspected local evidence.
  4. PR present in qcom-next/topics: Partial — integration_presence_report.md says qcom-next has only partial evidence and topics has no subject, patch-id, or full tree-content match.

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: a5cf3debd8c3c660711ad586ad4bb84e9ca42635
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/1 [PATCH] FROMLIST scsi: ufs: ufs-qcom: Enable only lane clocks in lane partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial

Final Status

overall_status: PARTIAL
present_commits: 0/1
partial_commits: 1/1
missing_commits: 0/1
topics_checked_for_commits: 1/1
final_summary: PR present in qcom-next/topics: Partial - 1/1 commit(s) only have partial integration evidence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants