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
Tento commit je obsažen v:
Naveen Rawat
2018-02-02 15:18:33 -08:00
odevzdal nshrivas
rodič 9fdd4f55e6
revize caca8b01fd
3 změnil soubory, kde provedl 60 přidání a 0 odebrání

Zobrazit soubor

@@ -2242,4 +2242,13 @@ QDF_STATUS wmi_unified_offload_11k_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(void *wmi_hdl,
struct wmi_invoke_neighbor_report_params *params);
/* wmi_get_ch_width_from_phy_mode() - convert phy mode to channel width
* @wmi_hdl: wmi handle
* @phymode: phy mode
*
* Return: wmi channel width
*/
wmi_host_channel_width wmi_get_ch_width_from_phy_mode(void *wmi_hdl,
WMI_HOST_WLAN_PHY_MODE phymode);
#endif /* _WMI_UNIFIED_API_H_ */

Zobrazit soubor

@@ -404,6 +404,11 @@ typedef void *ol_scn_t;
typedef int (*wmi_unified_event_handler)(ol_scn_t scn_handle,
uint8_t *event_buf, uint32_t len);
/**
* @WMI_HOST_WLAN_PHY_MODE: Host based enum ID for corresponding in
* WLAN_PHY_MODE. This should be consistent with WLAN_PHY_MODE always to avoid
* breaking the WMI
*/
typedef enum {
WMI_HOST_MODE_11A = 0, /* 11a Mode */
WMI_HOST_MODE_11G = 1, /* 11b/g Mode */

Zobrazit soubor

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