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:

committed by
Madan Koyyalamudi

parent
aec346c6bc
commit
b9deac9d5c
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user