qcacld-3.0: Add configuration support for vdev dot11 mode

Add user configuration support to configure dot11 modes for
different vdev types.

Change-Id: I338d9d76f000195d1798bbc8b3b7ff1fb33ee305
CRs-Fixed: 2760240
This commit is contained in:
Kiran Kumar Lokere
2020-08-20 19:36:39 -07:00
committad av snandini
förälder 59d4af5c85
incheckning 6ae664ed6c
13 ändrade filer med 233 tillägg och 52 borttagningar

Visa fil

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -31,8 +31,58 @@
CFG_VALUE_OR_DEFAULT, \
"dot 11 mode")
/*
* <ini>
* vdev_dot11_mode- Bit mask to set the dot11 mode for different vdev types
* @Min: 0x0
* @Max: 0x333333
* @Default: 0
*
* This ini is used to set the dot11mode different vdev types.
* dot11_mode ini value (CFG_DOT11_MODE) is the master configuration
* Min configuration of INI dot11_mode and vdev_dot11_mode is used for that
* vdev type.
* dot11_mode vdev_dot11_mode dot11_mode_used
* 11AX 11AC 11AC
* 11AC 11AX 11AC
*
* Dot11 mode value is 4 bit length for each vdev. Below is the bit definition
* for different vdev types dot11 mode value bit index.
*
* Bits used for dot11mode Vdev Type
* BIT[3:0] STA mode
* BIT[7:4] P2P_CLI/P2P_DEVICE mode
* BIT[11:8] NAN DISCOVERY
* BIT[15:12] OCB
* BIT[19:16] TDLS
* BIT[23:20] NDI mode
*
* Dot11 mode value to be set in the above bit definition:
* 0 - Auto, Uses CFG_DOT11_MODE setting
* 1 - HT mode(11N)
* 2 - VHT mode(11AC)
* 3 - HE mode(11AX)
*
* E.g: vdev_dot11_mode=0x013220
*
* 0 1 3 2 2 0
* NDI(auto) TDLS HT OCB_HE VHT NAN_DISC VHT P2P STA_AUTO
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_VDEV_DOT11_MODE CFG_INI_UINT( \
"vdev_dot11_mode", \
0, \
0x333333, \
0, \
CFG_VALUE_OR_DEFAULT, \
"vdev dot 11 mode")
#define CFG_DOT11_MODE_ALL \
CFG(CFG_DOT11_MODE) \
CFG(CFG_VDEV_DOT11_MODE) \
#endif /* __CFG_MLME_DOT11MODE_H */

Visa fil

@@ -43,6 +43,13 @@
#define CFG_VHT_TX_MCS_MAP_STAMAX 0xFFFF
#define CFG_VHT_TX_MCS_MAP_STADEF 0xFFFE
#define STA_DOT11_MODE_INDX 0
#define P2P_DEV_DOT11_MODE_INDX 4
#define NAN_DISC_DOT11_MODE_INDX 8
#define OCB_DOT11_MODE_INDX 12
#define TDLS_DOT11_MODE_INDX 16
#define NDI_DOT11_MODE_INDX 20
/* Roam debugging related macro defines */
#define MAX_ROAM_DEBUG_BUF_SIZE 250
#define MAX_ROAM_EVENTS_SUPPORTED 5
@@ -195,13 +202,29 @@ enum mlme_dot11_mode {
MLME_DOT11_MODE_11AX_ONLY
};
/**
* enum mlme_vdev_dot11_mode - Dot11 mode of the vdev
* MLME_VDEV_DOT11_MODE_AUTO: vdev uses mlme_dot11_mode
* MLME_VDEV_DOT11_MODE_11N: vdev supports 11N mode
* MLME_VDEV_DOT11_MODE_11AC: vdev supports 11AC mode
* MLME_VDEV_DOT11_MODE_11AX: vdev supports 11AX mode
*/
enum mlme_vdev_dot11_mode {
MLME_VDEV_DOT11_MODE_AUTO,
MLME_VDEV_DOT11_MODE_11N,
MLME_VDEV_DOT11_MODE_11AC,
MLME_VDEV_DOT11_MODE_11AX,
};
/**
* struct wlan_mlme_dot11_mode - dot11 mode
*
* @dot11_mode: dot11 mode supported
* @vdev_type_dot11_mode: dot11 mode supported by different vdev types
*/
struct wlan_mlme_dot11_mode {
enum mlme_dot11_mode dot11_mode;
uint32_t vdev_type_dot11_mode;
};
/**