wil6210: support new WMI-only FW capability
WMI_ONLY FW is used for testing in production. It cannot be used for scan/connect, etc. In case FW reports this capability, driver will not allow interface up. Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
@@ -24,8 +24,9 @@ static int wil_open(struct net_device *ndev)
|
|||||||
|
|
||||||
wil_dbg_misc(wil, "open\n");
|
wil_dbg_misc(wil, "open\n");
|
||||||
|
|
||||||
if (debug_fw) {
|
if (debug_fw ||
|
||||||
wil_err(wil, "while in debug_fw mode\n");
|
test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities)) {
|
||||||
|
wil_err(wil, "while in debug_fw or wmi_only mode\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,8 +99,10 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil)
|
|||||||
*/
|
*/
|
||||||
int msi_only = pdev->msi_enabled;
|
int msi_only = pdev->msi_enabled;
|
||||||
bool _use_msi = use_msi;
|
bool _use_msi = use_msi;
|
||||||
|
bool wmi_only = test_bit(WMI_FW_CAPABILITY_WMI_ONLY,
|
||||||
|
wil->fw_capabilities);
|
||||||
|
|
||||||
wil_dbg_misc(wil, "if_pcie_enable\n");
|
wil_dbg_misc(wil, "if_pcie_enable, wmi_only %d\n", wmi_only);
|
||||||
|
|
||||||
pdev->msi_enabled = 0;
|
pdev->msi_enabled = 0;
|
||||||
|
|
||||||
@@ -123,9 +125,11 @@ static int wil_if_pcie_enable(struct wil6210_priv *wil)
|
|||||||
if (rc)
|
if (rc)
|
||||||
goto stop_master;
|
goto stop_master;
|
||||||
|
|
||||||
/* need reset here to obtain MAC */
|
/* need reset here to obtain MAC or in case of WMI-only FW, full reset
|
||||||
|
* and fw loading takes place
|
||||||
|
*/
|
||||||
mutex_lock(&wil->mutex);
|
mutex_lock(&wil->mutex);
|
||||||
rc = wil_reset(wil, false);
|
rc = wil_reset(wil, wmi_only);
|
||||||
mutex_unlock(&wil->mutex);
|
mutex_unlock(&wil->mutex);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto release_irq;
|
goto release_irq;
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ enum wmi_fw_capability {
|
|||||||
WMI_FW_CAPABILITY_RF_SECTORS = 2,
|
WMI_FW_CAPABILITY_RF_SECTORS = 2,
|
||||||
WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT = 3,
|
WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT = 3,
|
||||||
WMI_FW_CAPABILITY_DISABLE_AP_SME = 4,
|
WMI_FW_CAPABILITY_DISABLE_AP_SME = 4,
|
||||||
|
WMI_FW_CAPABILITY_WMI_ONLY = 5,
|
||||||
WMI_FW_CAPABILITY_MAX,
|
WMI_FW_CAPABILITY_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user