Jelajahi Sumber

qcacmn: Add get channel width from phy mode API

Add get channel width from phy mode API which will be used by
ndp schedule update event.

Change-Id: I13d00c0b818eb0da434c8a5372b2ab7b6693f22a
CRs-Fixed: 2216801
Naveen Rawat 7 tahun lalu
induk
melakukan
2630545223
1 mengubah file dengan 46 tambahan dan 0 penghapusan
  1. 46 0
      wmi_unified_api.c

+ 46 - 0
wmi_unified_api.c

@@ -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;
+}