qcacmn: Add new API to convert host to fw phymode

Add new util API to convert host phymode into fw
phymode.

Change-Id: I4edf91f3c4140cf004b2b900cb6ca4290a90b241
CRs-Fixed: 3557258
Šī revīzija ir iekļauta:
Deeksha Gupta
2023-07-12 11:08:14 +05:30
revīziju iesūtīja Rahul Choudhary
vecāks 3cee2d29bb
revīzija d5bf598373
2 mainīti faili ar 111 papildinājumiem un 0 dzēšanām

Parādīt failu

@@ -3940,4 +3940,13 @@ static inline void wmi_coap_attach_tlv(wmi_unified_t wmi_handle)
* Return: host channel width, enum phy_ch_width
*/
enum phy_ch_width wmi_map_ch_width(A_UINT32 wmi_width);
/**
* wmi_host_to_fw_phymode() - convert host to fw phymode
* @host_phymode: phymode to convert
*
* Return: one of the values defined in enum WMI_HOST_WLAN_PHY_MODE;
* or WMI_HOST_MODE_UNKNOWN if the conversion fails
*/
WMI_HOST_WLAN_PHY_MODE wmi_host_to_fw_phymode(enum wlan_phymode host_phymode);
#endif

Parādīt failu

@@ -8333,6 +8333,108 @@ enum phy_ch_width wmi_map_ch_width(A_UINT32 wmi_width)
}
}
#ifdef WLAN_FEATURE_11BE
/**
* wmi_host_to_fw_phymode_11be() - convert host to fw phymode for 11be phymode
* @host_phymode: phymode to convert
*
* Return: one of the 11be values defined in enum WMI_HOST_WLAN_PHY_MODE;
* or WMI_HOST_MODE_UNKNOWN if the input is not an 11be phymode
*/
static WMI_HOST_WLAN_PHY_MODE
wmi_host_to_fw_phymode_11be(enum wlan_phymode host_phymode)
{
switch (host_phymode) {
case WLAN_PHYMODE_11BEA_EHT20:
return WMI_HOST_MODE_11BE_EHT20;
case WLAN_PHYMODE_11BEA_EHT40:
return WMI_HOST_MODE_11BE_EHT40;
case WLAN_PHYMODE_11BEA_EHT80:
return WMI_HOST_MODE_11BE_EHT80;
case WLAN_PHYMODE_11BEA_EHT160:
return WMI_HOST_MODE_11BE_EHT160;
case WLAN_PHYMODE_11BEA_EHT320:
return WMI_HOST_MODE_11BE_EHT320;
case WLAN_PHYMODE_11BEG_EHT20:
return WMI_HOST_MODE_11BE_EHT20_2G;
case WLAN_PHYMODE_11BEG_EHT40:
case WLAN_PHYMODE_11BEG_EHT40PLUS:
case WLAN_PHYMODE_11BEG_EHT40MINUS:
return WMI_HOST_MODE_11BE_EHT40_2G;
default:
return WMI_HOST_MODE_UNKNOWN;
}
}
#else
static WMI_HOST_WLAN_PHY_MODE
wmi_host_to_fw_phymode_11be(enum wlan_phymode host_phymode)
{
return WMI_HOST_MODE_UNKNOWN;
}
#endif
WMI_HOST_WLAN_PHY_MODE wmi_host_to_fw_phymode(enum wlan_phymode host_phymode)
{
switch (host_phymode) {
case WLAN_PHYMODE_11A:
return WMI_HOST_MODE_11A;
case WLAN_PHYMODE_11G:
return WMI_HOST_MODE_11G;
case WLAN_PHYMODE_11B:
return WMI_HOST_MODE_11B;
case WLAN_PHYMODE_11G_ONLY:
return WMI_HOST_MODE_11GONLY;
case WLAN_PHYMODE_11NA_HT20:
return WMI_HOST_MODE_11NA_HT20;
case WLAN_PHYMODE_11NG_HT20:
return WMI_HOST_MODE_11NG_HT20;
case WLAN_PHYMODE_11NA_HT40:
return WMI_HOST_MODE_11NA_HT40;
case WLAN_PHYMODE_11NG_HT40:
case WLAN_PHYMODE_11NG_HT40PLUS:
case WLAN_PHYMODE_11NG_HT40MINUS:
return WMI_HOST_MODE_11NG_HT40;
case WLAN_PHYMODE_11AC_VHT20:
return WMI_HOST_MODE_11AC_VHT20;
case WLAN_PHYMODE_11AC_VHT40:
return WMI_HOST_MODE_11AC_VHT40;
case WLAN_PHYMODE_11AC_VHT80:
return WMI_HOST_MODE_11AC_VHT80;
case WLAN_PHYMODE_11AC_VHT20_2G:
return WMI_HOST_MODE_11AC_VHT20_2G;
case WLAN_PHYMODE_11AC_VHT40PLUS_2G:
case WLAN_PHYMODE_11AC_VHT40MINUS_2G:
case WLAN_PHYMODE_11AC_VHT40_2G:
return WMI_HOST_MODE_11AC_VHT40_2G;
case WLAN_PHYMODE_11AC_VHT80_2G:
return WMI_HOST_MODE_11AC_VHT80_2G;
case WLAN_PHYMODE_11AC_VHT80_80:
return WMI_HOST_MODE_11AC_VHT80_80;
case WLAN_PHYMODE_11AC_VHT160:
return WMI_HOST_MODE_11AC_VHT160;
case WLAN_PHYMODE_11AXA_HE20:
return WMI_HOST_MODE_11AX_HE20;
case WLAN_PHYMODE_11AXA_HE40:
return WMI_HOST_MODE_11AX_HE40;
case WLAN_PHYMODE_11AXA_HE80:
return WMI_HOST_MODE_11AX_HE80;
case WLAN_PHYMODE_11AXA_HE80_80:
return WMI_HOST_MODE_11AX_HE80_80;
case WLAN_PHYMODE_11AXA_HE160:
return WMI_HOST_MODE_11AX_HE160;
case WLAN_PHYMODE_11AXG_HE20:
return WMI_HOST_MODE_11AX_HE20_2G;
case WLAN_PHYMODE_11AXG_HE40:
case WLAN_PHYMODE_11AXG_HE40PLUS:
case WLAN_PHYMODE_11AXG_HE40MINUS:
return WMI_HOST_MODE_11AX_HE40_2G;
case WLAN_PHYMODE_11AXG_HE80:
return WMI_HOST_MODE_11AX_HE80_2G;
default:
return wmi_host_to_fw_phymode_11be(host_phymode);
}
}
/*
* convert_host_to_target_ch_width()- map host channel width(enum phy_ch_width)
* to wmi channel width