qcacmn: Add 11BE wireless mode and NO11BE phybitmap
Extract the 11BE flags advertised by FW in WMI_SERVICE_READY_EXT2_EVENTID and update the regulatory pdev wireless modes. The wireless mode is currently represented as 'uint32_t' and all the 32 bits are exhausted. To accommodate the new 11BE flags, change the data type of wireless_modes from 'uint32_t' to 'uint64_t'. Add a regulatory phymode 'REG_PHYMODE_11BE' in enum reg_phymode. If the chip does not support 11BE phymode, FW advertises it via WMI_REGULATORY_PHYBITMAP enum with a value of REGULATORY_PHYMODE_NO11BE. Extract the phybitmap and store it in the regualtory as 'REGULATORY_PHYMODE_NO11BE' bitmap. CRs-Fixed: 2901260 Change-Id: I4ed3fc7c907b1f76e59efb347c747acea2a163b0
This commit is contained in:

committed by
snandini

parent
28de31d838
commit
2b51168ba8
@@ -119,7 +119,7 @@ struct wlan_psoc_host_ppe_threshold {
|
|||||||
* @high_5ghz_chan: higher 5 GHz channels
|
* @high_5ghz_chan: higher 5 GHz channels
|
||||||
*/
|
*/
|
||||||
struct wlan_psoc_host_hal_reg_cap_ext {
|
struct wlan_psoc_host_hal_reg_cap_ext {
|
||||||
uint32_t wireless_modes;
|
uint64_t wireless_modes;
|
||||||
uint32_t low_2ghz_chan;
|
uint32_t low_2ghz_chan;
|
||||||
uint32_t high_2ghz_chan;
|
uint32_t high_2ghz_chan;
|
||||||
uint32_t low_5ghz_chan;
|
uint32_t low_5ghz_chan;
|
||||||
@@ -263,7 +263,7 @@ struct wlan_psoc_host_mac_phy_caps_ext2 {
|
|||||||
uint32_t hw_mode_id;
|
uint32_t hw_mode_id;
|
||||||
uint32_t pdev_id;
|
uint32_t pdev_id;
|
||||||
uint32_t phy_id;
|
uint32_t phy_id;
|
||||||
uint32_t wireless_modes_ext;
|
uint64_t wireless_modes_ext;
|
||||||
#ifdef WLAN_FEATURE_11BE
|
#ifdef WLAN_FEATURE_11BE
|
||||||
uint32_t eht_cap_info_2G[PSOC_HOST_MAX_MAC_SIZE];
|
uint32_t eht_cap_info_2G[PSOC_HOST_MAX_MAC_SIZE];
|
||||||
uint32_t eht_supp_mcs_2G;
|
uint32_t eht_supp_mcs_2G;
|
||||||
|
@@ -401,7 +401,7 @@ struct wlan_psoc_host_hal_reg_capabilities_ext {
|
|||||||
uint32_t eeprom_reg_domain_ext;
|
uint32_t eeprom_reg_domain_ext;
|
||||||
uint32_t regcap1;
|
uint32_t regcap1;
|
||||||
uint32_t regcap2;
|
uint32_t regcap2;
|
||||||
uint32_t wireless_modes;
|
uint64_t wireless_modes;
|
||||||
uint32_t low_2ghz_chan;
|
uint32_t low_2ghz_chan;
|
||||||
uint32_t high_2ghz_chan;
|
uint32_t high_2ghz_chan;
|
||||||
uint32_t low_5ghz_chan;
|
uint32_t low_5ghz_chan;
|
||||||
@@ -416,7 +416,7 @@ struct wlan_psoc_host_hal_reg_capabilities_ext {
|
|||||||
*/
|
*/
|
||||||
struct wlan_psoc_host_hal_reg_capabilities_ext2 {
|
struct wlan_psoc_host_hal_reg_capabilities_ext2 {
|
||||||
uint32_t phy_id;
|
uint32_t phy_id;
|
||||||
uint32_t wireless_modes_ext;
|
uint64_t wireless_modes_ext;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -228,7 +228,7 @@ struct wlan_regulatory_pdev_priv_obj {
|
|||||||
uint32_t band_capability;
|
uint32_t band_capability;
|
||||||
bool indoor_chan_enabled;
|
bool indoor_chan_enabled;
|
||||||
bool en_chan_144;
|
bool en_chan_144;
|
||||||
uint32_t wireless_modes;
|
uint64_t wireless_modes;
|
||||||
struct ch_avoid_ind_type freq_avoid_list;
|
struct ch_avoid_ind_type freq_avoid_list;
|
||||||
bool force_ssc_disable_indoor_channel;
|
bool force_ssc_disable_indoor_channel;
|
||||||
bool sap_state;
|
bool sap_state;
|
||||||
|
@@ -2258,7 +2258,7 @@ QDF_STATUS reg_set_hal_reg_cap(
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t wireless_modes, uint8_t phy_id)
|
uint64_t wireless_modes, uint8_t phy_id)
|
||||||
{
|
{
|
||||||
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
||||||
|
|
||||||
@@ -4094,6 +4094,30 @@ reg_get_unii_5g_bitmap(struct wlan_objmgr_pdev *pdev, uint8_t *bitmap)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
bool reg_is_phymode_unallowed(enum reg_phymode phy_in, uint32_t phymode_bitmap)
|
||||||
|
{
|
||||||
|
if (!phymode_bitmap)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (phy_in == REG_PHYMODE_11BE)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11BE;
|
||||||
|
else if (phy_in == REG_PHYMODE_11AX)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11AX;
|
||||||
|
else if (phy_in == REG_PHYMODE_11AC)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11AC;
|
||||||
|
else if (phy_in == REG_PHYMODE_11N)
|
||||||
|
return phymode_bitmap & REGULATORY_CHAN_NO11N;
|
||||||
|
else if (phy_in == REG_PHYMODE_11G)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11G;
|
||||||
|
else if (phy_in == REG_PHYMODE_11A)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11A;
|
||||||
|
else if (phy_in == REG_PHYMODE_11B)
|
||||||
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11B;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#else
|
||||||
bool reg_is_phymode_unallowed(enum reg_phymode phy_in, uint32_t phymode_bitmap)
|
bool reg_is_phymode_unallowed(enum reg_phymode phy_in, uint32_t phymode_bitmap)
|
||||||
{
|
{
|
||||||
if (!phymode_bitmap)
|
if (!phymode_bitmap)
|
||||||
@@ -4113,8 +4137,8 @@ bool reg_is_phymode_unallowed(enum reg_phymode phy_in, uint32_t phymode_bitmap)
|
|||||||
return phymode_bitmap & REGULATORY_PHYMODE_NO11B;
|
return phymode_bitmap & REGULATORY_PHYMODE_NO11B;
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CHECK_REG_PHYMODE
|
#ifdef CHECK_REG_PHYMODE
|
||||||
enum reg_phymode reg_get_max_phymode(struct wlan_objmgr_pdev *pdev,
|
enum reg_phymode reg_get_max_phymode(struct wlan_objmgr_pdev *pdev,
|
||||||
|
@@ -456,7 +456,7 @@ QDF_STATUS reg_set_hal_reg_cap(
|
|||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t wireless_modes, uint8_t phy_id);
|
uint64_t wireless_modes, uint8_t phy_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_chan_in_range() - Check if the given channel is in pdev's channel range
|
* reg_chan_in_range() - Check if the given channel is in pdev's channel range
|
||||||
|
@@ -70,6 +70,9 @@
|
|||||||
#define REGULATORY_CHAN_NO11N BIT(3)
|
#define REGULATORY_CHAN_NO11N BIT(3)
|
||||||
#define REGULATORY_PHYMODE_NO11AC BIT(4)
|
#define REGULATORY_PHYMODE_NO11AC BIT(4)
|
||||||
#define REGULATORY_PHYMODE_NO11AX BIT(5)
|
#define REGULATORY_PHYMODE_NO11AX BIT(5)
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
#define REGULATORY_PHYMODE_NO11BE BIT(6)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define BW_5_MHZ 5
|
#define BW_5_MHZ 5
|
||||||
#define BW_10_MHZ 10
|
#define BW_10_MHZ 10
|
||||||
@@ -1304,6 +1307,7 @@ struct reg_ctl_params {
|
|||||||
* @REG_PHYMODE_11N: 802.11n phymode
|
* @REG_PHYMODE_11N: 802.11n phymode
|
||||||
* @REG_PHYMODE_11AC: 802.11ac phymode
|
* @REG_PHYMODE_11AC: 802.11ac phymode
|
||||||
* @REG_PHYMODE_11AX: 802.11ax phymode
|
* @REG_PHYMODE_11AX: 802.11ax phymode
|
||||||
|
* @REG_PHYMODE_11BE: 802.11be phymode
|
||||||
* @REG_PHYMODE_MAX: placeholder for future phymodes
|
* @REG_PHYMODE_MAX: placeholder for future phymodes
|
||||||
*/
|
*/
|
||||||
enum reg_phymode {
|
enum reg_phymode {
|
||||||
@@ -1314,6 +1318,9 @@ enum reg_phymode {
|
|||||||
REG_PHYMODE_11N,
|
REG_PHYMODE_11N,
|
||||||
REG_PHYMODE_11AC,
|
REG_PHYMODE_11AC,
|
||||||
REG_PHYMODE_11AX,
|
REG_PHYMODE_11AX,
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
REG_PHYMODE_11BE,
|
||||||
|
#endif
|
||||||
REG_PHYMODE_MAX,
|
REG_PHYMODE_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -921,7 +921,7 @@ bool wlan_reg_11d_enabled_on_host(struct wlan_objmgr_psoc *psoc);
|
|||||||
* Return: QDF STATUS
|
* Return: QDF STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
||||||
uint32_t *chip_mode);
|
uint64_t *chip_mode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_is_11d_scan_inprogress() - checks 11d scan status
|
* wlan_reg_is_11d_scan_inprogress() - checks 11d scan status
|
||||||
|
@@ -400,7 +400,7 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
|||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t wireless_modes, uint8_t phy_id);
|
uint64_t wireless_modes, uint8_t phy_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_set_ignore_fw_reg_offload_ind() - API to set ignore regdb offload ind
|
* ucfg_set_ignore_fw_reg_offload_ind() - API to set ignore regdb offload ind
|
||||||
|
@@ -609,7 +609,7 @@ bool wlan_reg_get_fcc_constraint(struct wlan_objmgr_pdev *pdev, uint32_t freq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
||||||
uint32_t *chip_mode)
|
uint64_t *chip_mode)
|
||||||
{
|
{
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
||||||
|
|
||||||
|
@@ -286,7 +286,7 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
|||||||
qdf_export_symbol(ucfg_reg_set_hal_reg_cap);
|
qdf_export_symbol(ucfg_reg_set_hal_reg_cap);
|
||||||
|
|
||||||
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t wireless_modes, uint8_t phy_id)
|
uint64_t wireless_modes, uint8_t phy_id)
|
||||||
{
|
{
|
||||||
return reg_update_hal_reg_cap(psoc, wireless_modes, phy_id);
|
return reg_update_hal_reg_cap(psoc, wireless_modes, phy_id);
|
||||||
}
|
}
|
||||||
|
@@ -551,6 +551,15 @@ typedef struct {
|
|||||||
* @WMI_HOST_REGDMN_MODE_11AXA_HE80: 11ax 5GHz, HE80 channels
|
* @WMI_HOST_REGDMN_MODE_11AXA_HE80: 11ax 5GHz, HE80 channels
|
||||||
* @WMI_HOST_REGDMN_MODE_11AXA_HE160: 11ax 5GHz, HE160 channels
|
* @WMI_HOST_REGDMN_MODE_11AXA_HE160: 11ax 5GHz, HE160 channels
|
||||||
* @WMI_HOST_REGDMN_MODE_11AXA_HE80_80: 11ax 5GHz, HE80+80 channels
|
* @WMI_HOST_REGDMN_MODE_11AXA_HE80_80: 11ax 5GHz, HE80+80 channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEG_EHT20: 11be 2GHz, EHT20 channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT20: 11be 5GHz, EHT20 channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS: 11be 2GHz, EHT40+ channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS: 11be 2GHz, EHT40- channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS: 11be 5GHz, EHT40+ channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS: 11be 5GHz, EHT40- channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT80: 11be 5GHz, EHT80 channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT160: 11be 5GHz, EHT160 channels
|
||||||
|
* @WMI_HOST_REGDMN_MODE_11BEA_EHT320: 11be 5GHz, EHT320 channels
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
WMI_HOST_REGDMN_MODE_11A = 0x00000001,
|
WMI_HOST_REGDMN_MODE_11A = 0x00000001,
|
||||||
@@ -585,7 +594,18 @@ typedef enum {
|
|||||||
WMI_HOST_REGDMN_MODE_11AXA_HE80 = 0x20000000,
|
WMI_HOST_REGDMN_MODE_11AXA_HE80 = 0x20000000,
|
||||||
WMI_HOST_REGDMN_MODE_11AXA_HE160 = 0x40000000,
|
WMI_HOST_REGDMN_MODE_11AXA_HE160 = 0x40000000,
|
||||||
WMI_HOST_REGDMN_MODE_11AXA_HE80_80 = 0x80000000,
|
WMI_HOST_REGDMN_MODE_11AXA_HE80_80 = 0x80000000,
|
||||||
WMI_HOST_REGDMN_MODE_ALL = 0xffffffff
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEG_EHT20 = 0x0000000100000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT20 = 0x0000000200000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS = 0x0000000400000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS = 0x0000000800000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS = 0x0000001000000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS = 0x0000002000000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT80 = 0x0000004000000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT160 = 0x0000008000000000,
|
||||||
|
WMI_HOST_REGDMN_MODE_11BEA_EHT320 = 0x0000010000000000,
|
||||||
|
#endif
|
||||||
|
WMI_HOST_REGDMN_MODE_ALL = 0xffffffffffffffff
|
||||||
} WMI_HOST_REGDMN_MODE;
|
} WMI_HOST_REGDMN_MODE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -9921,6 +9921,30 @@ static inline uint32_t convert_wireless_modes_tlv(uint32_t target_wireless_mode)
|
|||||||
return wireless_modes;
|
return wireless_modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_11be_phybitmap_to_reg_flags() - Convert 11BE phybitmap to
|
||||||
|
* to regulatory flags.
|
||||||
|
* @target_phybitmap: target phybitmap.
|
||||||
|
* @phybitmap: host internal REGULATORY_PHYMODE set based on target
|
||||||
|
* phybitmap.
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
static void convert_11be_phybitmap_to_reg_flags(uint32_t target_phybitmap,
|
||||||
|
uint32_t *phybitmap)
|
||||||
|
{
|
||||||
|
if (target_phybitmap & WMI_REGULATORY_PHYMODE_NO11BE)
|
||||||
|
*phybitmap |= REGULATORY_PHYMODE_NO11BE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void convert_11be_phybitmap_to_reg_flags(uint32_t target_phybitmap,
|
||||||
|
uint32_t *phybitmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* convert_phybitmap_tlv() - Convert WMI_REGULATORY_PHYBITMAP values sent by
|
/* convert_phybitmap_tlv() - Convert WMI_REGULATORY_PHYBITMAP values sent by
|
||||||
* target to host internal REGULATORY_PHYMODE values.
|
* target to host internal REGULATORY_PHYMODE values.
|
||||||
*
|
*
|
||||||
@@ -9952,13 +9976,61 @@ static uint32_t convert_phybitmap_tlv(uint32_t target_phybitmap)
|
|||||||
if (target_phybitmap & WMI_REGULATORY_PHYMODE_NO11AX)
|
if (target_phybitmap & WMI_REGULATORY_PHYMODE_NO11AX)
|
||||||
phybitmap |= REGULATORY_PHYMODE_NO11AX;
|
phybitmap |= REGULATORY_PHYMODE_NO11AX;
|
||||||
|
|
||||||
|
convert_11be_phybitmap_to_reg_flags(target_phybitmap, &phybitmap);
|
||||||
|
|
||||||
return phybitmap;
|
return phybitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint32_t convert_wireless_modes_ext_tlv(
|
/**
|
||||||
|
* convert_11be_flags_to_modes_ext() - Convert 11BE wireless mode flag
|
||||||
|
* advertised by the target to wireless mode ext flags.
|
||||||
|
* @target_wireless_modes_ext: Target wireless mode
|
||||||
|
* @wireless_modes_ext: Variable to hold all the target wireless mode caps.
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
#ifdef WLAN_FEATURE_11BE
|
||||||
|
static void convert_11be_flags_to_modes_ext(uint32_t target_wireless_modes_ext,
|
||||||
|
uint64_t *wireless_modes_ext)
|
||||||
|
{
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT20)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT20;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT40PLUS)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT40MINUS)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT20)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT20;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT40PLUS)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT40MINUS)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT80)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT80;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT160)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT160;
|
||||||
|
|
||||||
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT320)
|
||||||
|
*wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT320;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void convert_11be_flags_to_modes_ext(uint32_t target_wireless_modes_ext,
|
||||||
|
uint64_t *wireless_modes_ext)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static inline uint64_t convert_wireless_modes_ext_tlv(
|
||||||
uint32_t target_wireless_modes_ext)
|
uint32_t target_wireless_modes_ext)
|
||||||
{
|
{
|
||||||
uint32_t wireless_modes_ext = 0;
|
uint64_t wireless_modes_ext = 0;
|
||||||
|
|
||||||
wmi_debug("Target wireless mode: 0x%x", target_wireless_modes_ext);
|
wmi_debug("Target wireless mode: 0x%x", target_wireless_modes_ext);
|
||||||
|
|
||||||
@@ -9989,6 +10061,9 @@ static inline uint32_t convert_wireless_modes_ext_tlv(
|
|||||||
if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE80_80)
|
if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE80_80)
|
||||||
wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE80_80;
|
wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE80_80;
|
||||||
|
|
||||||
|
convert_11be_flags_to_modes_ext(target_wireless_modes_ext,
|
||||||
|
&wireless_modes_ext);
|
||||||
|
|
||||||
return wireless_modes_ext;
|
return wireless_modes_ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user