diff --git a/qcom/opensource/wlan/platform/cnss2/qmi.c b/qcom/opensource/wlan/platform/cnss2/qmi.c index b3a851880d..6af4232987 100644 --- a/qcom/opensource/wlan/platform/cnss2/qmi.c +++ b/qcom/opensource/wlan/platform/cnss2/qmi.c @@ -4074,6 +4074,10 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) struct dms_get_mac_address_resp_msg_v01 resp; struct qmi_txn txn; int ret = 0; +#ifdef OPLUS_FEATURE_WIFI_MAC + int i; + char revert_mac[QMI_WLFW_MAC_ADDR_SIZE_V01]; +#endif /* OPLUS_FEATURE_WIFI_MAC */ if (!test_bit(CNSS_QMI_DMS_CONNECTED, &plat_priv->driver_state)) { cnss_pr_err("DMS QMI connection not established\n"); @@ -4120,7 +4124,14 @@ int cnss_qmi_get_dms_mac(struct cnss_plat_data *plat_priv) goto out; } plat_priv->dms.mac_valid = true; +#ifdef OPLUS_FEATURE_WIFI_MAC + for (i = 0; i < QMI_WLFW_MAC_ADDR_SIZE_V01; i++) { + revert_mac[i] = resp.mac_address[QMI_WLFW_MAC_ADDR_SIZE_V01 - i -1]; + } + memcpy(plat_priv->dms.mac, revert_mac, QMI_WLFW_MAC_ADDR_SIZE_V01); +#else memcpy(plat_priv->dms.mac, resp.mac_address, QMI_WLFW_MAC_ADDR_SIZE_V01); +#endif cnss_pr_info("Received DMS MAC: [%pM]\n", plat_priv->dms.mac); ret = cnss_utils_set_wlan_mac_address(plat_priv->dms.mac, QMI_WLFW_MAC_ADDR_SIZE_V01); if (ret < 0) {