Loading drivers/net/wireless/cnss2/main.c +2 −2 Original line number Diff line number Diff line Loading @@ -517,11 +517,11 @@ static int cnss_setup_dms_mac(struct cnss_plat_data *plat_priv) break; ret = cnss_qmi_get_dms_mac(plat_priv); if (ret == 0) if (ret != -EAGAIN) break; msleep(CNSS_DMS_QMI_CONNECTION_WAIT_MS); } if (!plat_priv->dms.mac_valid) { if (!plat_priv->dms.nv_mac_not_prov && !plat_priv->dms.mac_valid) { cnss_pr_err("Unable to get MAC from DMS after retries\n"); CNSS_ASSERT(0); return -EINVAL; Loading drivers/net/wireless/cnss2/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -394,6 +394,7 @@ enum cnss_ce_index { struct cnss_dms_data { u32 mac_valid; u8 nv_mac_not_prov; u8 mac[QMI_WLFW_MAC_ADDR_SIZE_V01]; }; Loading drivers/net/wireless/cnss2/qmi.c +9 −3 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #define QMI_WLFW_MAX_RECV_BUF_SIZE SZ_8K #define IMSPRIVATE_SERVICE_MAX_MSG_LEN SZ_8K #define DMS_QMI_MAX_MSG_LEN SZ_256 #define DMS_MAC_NOT_PROVISIONED 16 #define QMI_WLFW_MAC_READY_TIMEOUT_MS 50 #define QMI_WLFW_MAC_READY_MAX_RETRY 200 Loading Loading @@ -2872,7 +2873,7 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) if (!test_bit(CNSS_QMI_DMS_CONNECTED, &plat_priv->driver_state)) { cnss_pr_err("DMS QMI connection not established\n"); return -EINVAL; return -EAGAIN; } cnss_pr_dbg("Requesting DMS MAC address"); Loading Loading @@ -2903,8 +2904,13 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) } if (resp.resp.result != QMI_RESULT_SUCCESS_V01) { if (resp.resp.error == DMS_MAC_NOT_PROVISIONED) { cnss_pr_err("NV MAC address is not provisioned"); plat_priv->dms.nv_mac_not_prov = 1; } else { cnss_pr_err("QMI_DMS_GET_MAC_ADDRESS_REQ_V01 failed, result: %d, err: %d\n", resp.resp.result, resp.resp.error); } ret = -resp.resp.result; goto out; } Loading Loading
drivers/net/wireless/cnss2/main.c +2 −2 Original line number Diff line number Diff line Loading @@ -517,11 +517,11 @@ static int cnss_setup_dms_mac(struct cnss_plat_data *plat_priv) break; ret = cnss_qmi_get_dms_mac(plat_priv); if (ret == 0) if (ret != -EAGAIN) break; msleep(CNSS_DMS_QMI_CONNECTION_WAIT_MS); } if (!plat_priv->dms.mac_valid) { if (!plat_priv->dms.nv_mac_not_prov && !plat_priv->dms.mac_valid) { cnss_pr_err("Unable to get MAC from DMS after retries\n"); CNSS_ASSERT(0); return -EINVAL; Loading
drivers/net/wireless/cnss2/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -394,6 +394,7 @@ enum cnss_ce_index { struct cnss_dms_data { u32 mac_valid; u8 nv_mac_not_prov; u8 mac[QMI_WLFW_MAC_ADDR_SIZE_V01]; }; Loading
drivers/net/wireless/cnss2/qmi.c +9 −3 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #define QMI_WLFW_MAX_RECV_BUF_SIZE SZ_8K #define IMSPRIVATE_SERVICE_MAX_MSG_LEN SZ_8K #define DMS_QMI_MAX_MSG_LEN SZ_256 #define DMS_MAC_NOT_PROVISIONED 16 #define QMI_WLFW_MAC_READY_TIMEOUT_MS 50 #define QMI_WLFW_MAC_READY_MAX_RETRY 200 Loading Loading @@ -2872,7 +2873,7 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) if (!test_bit(CNSS_QMI_DMS_CONNECTED, &plat_priv->driver_state)) { cnss_pr_err("DMS QMI connection not established\n"); return -EINVAL; return -EAGAIN; } cnss_pr_dbg("Requesting DMS MAC address"); Loading Loading @@ -2903,8 +2904,13 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) } if (resp.resp.result != QMI_RESULT_SUCCESS_V01) { if (resp.resp.error == DMS_MAC_NOT_PROVISIONED) { cnss_pr_err("NV MAC address is not provisioned"); plat_priv->dms.nv_mac_not_prov = 1; } else { cnss_pr_err("QMI_DMS_GET_MAC_ADDRESS_REQ_V01 failed, result: %d, err: %d\n", resp.resp.result, resp.resp.error); } ret = -resp.resp.result; goto out; } Loading