icnss2: Disable APPS proxy votes before WLAN_EN

WCN6450 has strict power on sequence where WLAN_EN needs
to be enable first followed by regulators. To achieve
this remove Host Proxy votes before sending TARGET_CAP
and MODE_ON QMI request in which FW is suppose to do
WLAN_EN high.

Change-Id: I315269048c6499153d4d2daf6ee6a829f6fd2ccc
CRs-Fixed: 3413588
This commit is contained in:
Sandeep Singh
2023-02-22 12:43:28 +05:30
committed by Madan Koyyalamudi
parent aec346c6bc
commit b9deac9d5c

View File

@@ -929,6 +929,9 @@ static int icnss_driver_event_server_arrive(struct icnss_priv *priv,
}
}
if (priv->device_id == WCN6450_DEVICE_ID)
icnss_hw_power_off(priv);
ret = wlfw_cap_send_sync_msg(priv);
if (ret < 0) {
ignore_assert = true;
@@ -3440,7 +3443,7 @@ int icnss_wlan_enable(struct device *dev, struct icnss_wlan_enable_cfg *config,
const char *host_version)
{
struct icnss_priv *priv = dev_get_drvdata(dev);
int temp = 0;
int temp = 0, ret = 0;
if (test_bit(ICNSS_FW_DOWN, &priv->state) ||
!test_bit(ICNSS_FW_READY, &priv->state)) {
@@ -3467,7 +3470,15 @@ int icnss_wlan_enable(struct device *dev, struct icnss_wlan_enable_cfg *config,
}
}
return icnss_send_wlan_enable_to_fw(priv, config, mode, host_version);
if (priv->device_id == WCN6450_DEVICE_ID)
icnss_hw_power_off(priv);
ret = icnss_send_wlan_enable_to_fw(priv, config, mode, host_version);
if (priv->device_id == WCN6450_DEVICE_ID)
icnss_hw_power_on(priv);
return ret;
}
EXPORT_SYMBOL(icnss_wlan_enable);