qcacld-3.0: Allow TDLS connection in wideband only if fw supports
Irrespective of 6 GHz, wideband can be supported. So, Allow TDLS connection in wideband only if FW supports TDLS on 6Ghz. If Fw doesn't support wideband then restrict the TDLS connection BW to APs Bw. Change-Id: If726233f381921a8eda25ac7a2705942db79d410 CRs-Fixed: 3223760
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1d9049888f
commit
4d9e51e8a7
@@ -196,6 +196,7 @@ struct tdls_set_state_info {
|
||||
* @fw_tdls_6g_capability: bool for tdls 6g fw capability
|
||||
* @bss_sta_power: bss sta power
|
||||
* @@bss_sta_power_type: bss sta power type
|
||||
* @fw_tdls_wideband_capability: bool for tdls wideband fw capability
|
||||
*/
|
||||
struct tdls_soc_priv_obj {
|
||||
struct wlan_objmgr_psoc *soc;
|
||||
@@ -250,6 +251,7 @@ struct tdls_soc_priv_obj {
|
||||
uint8_t bss_sta_power;
|
||||
uint8_t bss_sta_power_type;
|
||||
#endif
|
||||
bool fw_tdls_wideband_capability;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -75,10 +75,31 @@ QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
|
||||
struct tdls_start_params *req);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_update_fw_wideband_capability() - Update FW TDLS wideband
|
||||
* capability in TDLS component
|
||||
*
|
||||
* @psoc: psoc object
|
||||
* @is_fw_tdls_wideband_capable: if fw is tdls wideband capable then it is true
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void ucfg_tdls_update_fw_wideband_capability(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_fw_tdls_wideband_capable);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_is_fw_wideband_capable() - Get FW TDLS wideband capability from
|
||||
* TDLS component.
|
||||
* @psoc: psoc object
|
||||
*
|
||||
* Return: true if fw supports tdls wideband
|
||||
*/
|
||||
bool ucfg_tdls_is_fw_wideband_capable(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
/**
|
||||
* ucfg_tdls_update_fw_11ax_support() - Update FW TDLS 11ax capability in TLDS
|
||||
* Component
|
||||
* ucfg_tdls_update_fw_11ax_capability() - Update FW TDLS 11ax capability in
|
||||
* TDLS Component
|
||||
* @psoc: psoc object
|
||||
* @is_fw_tdls_11ax_capable: bool if fw is tdls 11ax capable then it is true
|
||||
*
|
||||
@@ -88,7 +109,7 @@ void ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_fw_tdls_11ax_capable);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_update_fw_6g_support() - Update FW TDLS 6g capability in TLDS
|
||||
* ucfg_update_fw_tdls_6g_capability() - Update FW TDLS 6g capability in TDLS
|
||||
* Component
|
||||
* @psoc: psoc object
|
||||
* @is_fw_tdls_6g_capable: set to true if firmware supports TDLS on 6G band
|
||||
|
@@ -320,6 +320,38 @@ QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||
return status;
|
||||
}
|
||||
|
||||
void ucfg_tdls_update_fw_wideband_capability(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_fw_tdls_wideband_capable)
|
||||
{
|
||||
struct tdls_soc_priv_obj *soc_obj;
|
||||
|
||||
soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_TDLS);
|
||||
if (!soc_obj) {
|
||||
tdls_err("Failed to get tdls psoc component");
|
||||
return;
|
||||
}
|
||||
|
||||
soc_obj->fw_tdls_wideband_capability = is_fw_tdls_wideband_capable;
|
||||
}
|
||||
|
||||
bool ucfg_tdls_is_fw_wideband_capable(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct tdls_soc_priv_obj *soc_obj;
|
||||
|
||||
soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_TDLS);
|
||||
if (!soc_obj) {
|
||||
tdls_err("Failed to get tdls psoc component");
|
||||
return false;
|
||||
}
|
||||
|
||||
tdls_debug("FW wideband capability %d",
|
||||
soc_obj->fw_tdls_wideband_capability);
|
||||
|
||||
return soc_obj->fw_tdls_wideband_capability;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc *psoc,
|
||||
bool is_fw_tdls_11ax_capable)
|
||||
@@ -380,7 +412,6 @@ bool ucfg_tdls_is_fw_6g_capable(struct wlan_objmgr_psoc *psoc)
|
||||
|
||||
return soc_obj->fw_tdls_6g_capability;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
|
||||
|
Reference in New Issue
Block a user