Skip to content

Shikra bt wcn clock enable - #1908

Open
yepurisiddu wants to merge 2 commits into
qualcomm-linux:tech/net/bluetoothfrom
yepurisiddu:shikra/bt-wcn-clk-enable
Open

yepurisiddu wants to merge 2 commits into
qualcomm-linux:tech/net/bluetoothfrom
yepurisiddu:shikra/bt-wcn-clk-enable

Conversation

@yepurisiddu

@yepurisiddu yepurisiddu commented Sep 25, 2026 •

Copy link
Copy Markdown

Add WCN clock enable/disable support for Shikra by enabling the clock during BT power-on and disabling it during BT power-off via the pwrseq path.
With RPMCC proxy vote removal on QCM2290, BT can no longer rely on proxy votes to keep the WCN clock active.
This change ensures BT explicitly manages the WCN clock. Without this change, BT functionality will be impacted after the proxy vote removal.

Link: https://lore.kernel.org/linux-arm-msm/20260925-bt-wcn-clk-enable-v1-0-30bee88c4de4@oss.qualcomm.com/
CRs-fixed: 4684986

…ed power path

RPMCC previously kept WCN clocks enabled via proxy votes, so the pwrseq
power path in hci_qca did not need to explicitly manage the clock.
With proxy vote removal, each consumer must explicitly enable and disable
its required clocks.

Extend the pwrseq-based power path to acquire and manage an optional
WCN clock. In qca_serdev_probe(), acquire the clock using
devm_clk_get_optional(). In qca_regulator_enable(), enable the clock
after a successful pwrseq_enable() with proper rollback on failure.
In qca_power_off(), disable the clock before pwrseq_disable().

Targets that do not define a clock in DTS are unaffected since
devm_clk_get_optional() returns NULL and all clock operations are
guarded accordingly.

Link: https://lore.kernel.org/linux-arm-msm/20260925-bt-wcn-clk-enable-v1-1-30bee88c4de4@oss.qualcomm.com/
Signed-off-by: Yepuri Siddu <yepuri.siddu@oss.qualcomm.com>
With RPMCC proxy vote removal, the Bluetooth node must explicitly
declare its WCN clock dependency so the hci_qca driver can vote for
it during BT power on/off via the pwrseq path.

CQM SOM uses RPM_SMD_RF_CLK2 while IQS SOM uses RPM_SMD_RF_CLK1,
reflecting the WCN clock assignments on each board variant.

Link: https://lore.kernel.org/linux-arm-msm/20260925-bt-wcn-clk-enable-v1-2-30bee88c4de4@oss.qualcomm.com/
Signed-off-by: Yepuri Siddu <yepuri.siddu@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4684986
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

@qcomlnxci
qcomlnxci requested review from a team, Cheng Jiang (che-jiang) and quic-mohamull and removed request for a team September 25, 2026 07:24

@quic-mohamull quic-mohamull left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed, changes looks fine to me.

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.

2 participants