cnss2: Support enable 32k sleep clk from cnss2
Add one new device tree config item "qcom,sleep-clk-supported"
to support enable 32k internal sleep clock in case it has no
external 32k clk attached in wlan chipset HW. Like qca6390
on some auto platform, host need explicitly tell firmware
to use internal sleep clock, otherwise it will cause LMAC
ps failure.
Change-Id: I52f5d332a912235596eb127ab8e4660355988038
CRs-Fixed: 3448595
此提交包含在:
13
cnss2/qmi.c
13
cnss2/qmi.c
@@ -57,6 +57,11 @@
|
||||
#define QMI_WLFW_MAC_READY_TIMEOUT_MS 50
|
||||
#define QMI_WLFW_MAC_READY_MAX_RETRY 200
|
||||
|
||||
enum nm_modem_bit {
|
||||
SLEEP_CLOCK_SELECT_INTERNAL_BIT = BIT(1),
|
||||
HOST_CSTATE_BIT = BIT(2),
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CNSS2_DEBUG
|
||||
static bool ignore_qmi_failure;
|
||||
#define CNSS_QMI_ASSERT() CNSS_ASSERT(ignore_qmi_failure)
|
||||
@@ -309,6 +314,14 @@ static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv)
|
||||
req->cal_done = plat_priv->cal_done;
|
||||
cnss_pr_dbg("Calibration done is %d\n", plat_priv->cal_done);
|
||||
|
||||
if (plat_priv->sleep_clk) {
|
||||
req->nm_modem_valid = 1;
|
||||
/* Notify firmware about the sleep clock selection,
|
||||
* nm_modem_bit[1] is used for this purpose.
|
||||
*/
|
||||
req->nm_modem |= SLEEP_CLOCK_SELECT_INTERNAL_BIT;
|
||||
}
|
||||
|
||||
if (cnss_bus_is_smmu_s1_enabled(plat_priv) &&
|
||||
!cnss_bus_get_iova(plat_priv, &iova_start, &iova_size) &&
|
||||
!cnss_bus_get_iova_ipa(plat_priv, &iova_ipa_start,
|
||||
|
新增問題並參考
封鎖使用者