qcacmn: Convert wireless modes to host internal values
Convert the wireless_modes HALPHY capability from FW defined REGDMN_MODE values to host internal WMI_HOST_REGDMN_MODE values. This will help make host code independent of target specific definitions. Change-Id: I6d325f76959b35a3f854ade680f4d058c9d4bfcb CRs-Fixed: 1061096
This commit is contained in:

committed by
qcabuildsw

parent
dad75ffbce
commit
33bb714364
@@ -5545,12 +5545,89 @@ static QDF_STATUS extract_hal_reg_cap_non_tlv(wmi_unified_t wmi_handle,
|
|||||||
TARGET_HAL_REG_CAPABILITIES *cap)
|
TARGET_HAL_REG_CAPABILITIES *cap)
|
||||||
{
|
{
|
||||||
wmi_service_ready_event *ev;
|
wmi_service_ready_event *ev;
|
||||||
|
u_int32_t wireless_modes_orig = 0;
|
||||||
|
|
||||||
ev = (wmi_service_ready_event *) evt_buf;
|
ev = (wmi_service_ready_event *) evt_buf;
|
||||||
|
|
||||||
qdf_mem_copy(cap, &ev->hal_reg_capabilities,
|
qdf_mem_copy(cap, &ev->hal_reg_capabilities,
|
||||||
sizeof(TARGET_HAL_REG_CAPABILITIES));
|
sizeof(TARGET_HAL_REG_CAPABILITIES));
|
||||||
|
|
||||||
|
/* Convert REGDMN_MODE values sent by target to host internal
|
||||||
|
* WMI_HOST_REGDMN_MODE values.
|
||||||
|
*
|
||||||
|
* REGULATORY TODO :
|
||||||
|
* REGDMN_MODE_11AC_VHT*_2G values are not used by the
|
||||||
|
* host currently. Add this in the future if required.
|
||||||
|
*/
|
||||||
|
wireless_modes_orig = ev->hal_reg_capabilities.wireless_modes;
|
||||||
|
cap->wireless_modes = 0;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_TURBO)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_TURBO;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11B)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11B;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_PUREG)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_PUREG;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11G)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11G;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_108G)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_108G;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_108A)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_108A;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_XR)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_XR;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A_HALF_RATE)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A_HALF_RATE;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A_QUARTER_RATE)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A_QUARTER_RATE;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT80)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT160)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT160;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT80_80)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80_80;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11825,6 +11825,7 @@ static QDF_STATUS extract_hal_reg_cap_tlv(wmi_unified_t wmi_handle,
|
|||||||
void *evt_buf, TARGET_HAL_REG_CAPABILITIES *cap)
|
void *evt_buf, TARGET_HAL_REG_CAPABILITIES *cap)
|
||||||
{
|
{
|
||||||
WMI_SERVICE_READY_EVENTID_param_tlvs *param_buf;
|
WMI_SERVICE_READY_EVENTID_param_tlvs *param_buf;
|
||||||
|
u_int32_t wireless_modes_orig = 0;
|
||||||
|
|
||||||
param_buf = (WMI_SERVICE_READY_EVENTID_param_tlvs *) evt_buf;
|
param_buf = (WMI_SERVICE_READY_EVENTID_param_tlvs *) evt_buf;
|
||||||
|
|
||||||
@@ -11832,6 +11833,86 @@ static QDF_STATUS extract_hal_reg_cap_tlv(wmi_unified_t wmi_handle,
|
|||||||
sizeof(uint32_t)),
|
sizeof(uint32_t)),
|
||||||
sizeof(TARGET_HAL_REG_CAPABILITIES));
|
sizeof(TARGET_HAL_REG_CAPABILITIES));
|
||||||
|
|
||||||
|
/* Convert REGDMN_MODE values sent by target to host internal
|
||||||
|
* WMI_HOST_REGDMN_MODE values.
|
||||||
|
*
|
||||||
|
* REGULATORY TODO : REGDMN_MODE_11AC_VHT*_2G values are not used by the
|
||||||
|
* host currently. Add this in the future if required.
|
||||||
|
*
|
||||||
|
* 11AX TODO (Phase II) : 11ax related values are not currently
|
||||||
|
* advertised separately by FW. As part of phase II regulatory bring-up,
|
||||||
|
* finalize the advertisement mechanism.
|
||||||
|
*/
|
||||||
|
|
||||||
|
wireless_modes_orig = param_buf->hal_reg_capabilities->wireless_modes;
|
||||||
|
cap->wireless_modes = 0;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_TURBO)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_TURBO;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11B)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11B;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_PUREG)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_PUREG;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11G)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11G;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_108G)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_108G;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_108A)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_108A;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_XR)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_XR;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A_HALF_RATE)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A_HALF_RATE;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11A_QUARTER_RATE)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11A_QUARTER_RATE;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NG_HT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11NA_HT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT20)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT20;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT40PLUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40PLUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT40MINUS)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40MINUS;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT80)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT160)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT160;
|
||||||
|
|
||||||
|
if (wireless_modes_orig & REGDMN_MODE_11AC_VHT80_80)
|
||||||
|
cap->wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80_80;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user