|
@@ -28,6 +28,38 @@
|
|
|
#include "wmi_unified_param.h"
|
|
|
#include "qdf_module.h"
|
|
|
|
|
|
+static const wmi_host_channel_width mode_to_width[WMI_HOST_MODE_MAX] = {
|
|
|
+ [WMI_HOST_MODE_11A] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11G] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11B] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11GONLY] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11NA_HT20] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11NG_HT20] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT20] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT20_2G] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11NA_HT40] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11NG_HT40] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT40] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT40_2G] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT80] = WMI_HOST_CHAN_WIDTH_80,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT80_2G] = WMI_HOST_CHAN_WIDTH_80,
|
|
|
+#if CONFIG_160MHZ_SUPPORT
|
|
|
+ [WMI_HOST_MODE_11AC_VHT80_80] = WMI_HOST_CHAN_WIDTH_80P80,
|
|
|
+ [WMI_HOST_MODE_11AC_VHT160] = WMI_HOST_CHAN_WIDTH_160,
|
|
|
+#endif
|
|
|
+
|
|
|
+#if SUPPORT_11AX
|
|
|
+ [WMI_HOST_MODE_11AX_HE20] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11AX_HE40] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11AX_HE80] = WMI_HOST_CHAN_WIDTH_80,
|
|
|
+ [WMI_HOST_MODE_11AX_HE80_80] = WMI_HOST_CHAN_WIDTH_80P80,
|
|
|
+ [WMI_HOST_MODE_11AX_HE160] = WMI_HOST_CHAN_WIDTH_160,
|
|
|
+ [WMI_HOST_MODE_11AX_HE20_2G] = WMI_HOST_CHAN_WIDTH_20,
|
|
|
+ [WMI_HOST_MODE_11AX_HE40_2G] = WMI_HOST_CHAN_WIDTH_40,
|
|
|
+ [WMI_HOST_MODE_11AX_HE80_2G] = WMI_HOST_CHAN_WIDTH_80,
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* wmi_unified_vdev_create_send() - send VDEV create command to fw
|
|
|
* @wmi_handle: wmi handle
|
|
@@ -7436,3 +7468,17 @@ QDF_STATUS wmi_unified_extract_obss_color_collision_info(void *wmi_hdl,
|
|
|
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
|
}
|
|
|
+
|
|
|
+wmi_host_channel_width wmi_get_ch_width_from_phy_mode(void *wmi_hdl,
|
|
|
+ WMI_HOST_WLAN_PHY_MODE phymode)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * this API does translation between host only strcutres, hence
|
|
|
+ * does not need separate TLV, non-TLV definitions
|
|
|
+ */
|
|
|
+
|
|
|
+ if (phymode >= WMI_HOST_MODE_11A && phymode < WMI_HOST_MODE_MAX)
|
|
|
+ return mode_to_width[phymode];
|
|
|
+ else
|
|
|
+ return WMI_HOST_CHAN_WIDTH_20;
|
|
|
+}
|