qcacmn: ini parameter to allow STA+SAP SCC on LTE coex channel

When Force SCC and STA+SAP SCC on LTE coex channel are enabled:
   1. When STA on LTE coex channel, start SAP, select STA
      channel.
   2. When SAP on, connect STA on LTE coex channel, then switch
      SAP channel to STA channel.

Change-Id: I7864e0ab2655c3bee95154ea4dedfb60fe8689e4
CRs-Fixed: 2261226
Bu işleme şunda yer alıyor:
Zhu Jianmin
2018-06-11 19:03:39 +08:00
işlemeyi yapan: nshrivas
ebeveyn 96863531f1
işleme 3bd52b06e9
4 değiştirilmiş dosya ile 27 ekleme ve 2 silme

Dosyayı Görüntüle

@@ -2336,4 +2336,14 @@ bool policy_mgr_dual_beacon_on_single_mac_scc_capable(
bool policy_mgr_dual_beacon_on_single_mac_mcc_capable(
struct wlan_objmgr_psoc *psoc);
/**
* policy_mgr_sta_sap_scc_on_lte_coex_chan() - get capability that
* whether support sta sap scc on lte coex chan
* @psoc: pointer to soc
*
* Return: bool: capable
*/
bool policy_mgr_sta_sap_scc_on_lte_coex_chan(
struct wlan_objmgr_psoc *psoc);
#endif /* __WLAN_POLICY_MGR_API_H */

Dosyayı Görüntüle

@@ -1024,6 +1024,7 @@ struct policy_mgr_user_cfg {
bool sub_20_mhz_enabled;
bool is_sta_sap_scc_allowed_on_dfs_chan;
uint32_t channel_select_logic_conc;
uint32_t sta_sap_scc_on_lte_coex_chan;
};
/**

Dosyayı Görüntüle

@@ -887,9 +887,10 @@ QDF_STATUS policy_mgr_valid_sap_conc_channel_check(
if (policy_mgr_valid_sta_channel_check(psoc, channel)) {
if (wlan_reg_is_dfs_ch(pm_ctx->pdev, channel) ||
wlan_reg_is_passive_or_disable_ch(
wlan_reg_is_passive_or_disable_ch(
pm_ctx->pdev, channel) ||
!policy_mgr_is_safe_channel(psoc, channel)) {
!(policy_mgr_sta_sap_scc_on_lte_coex_chan(psoc) ||
policy_mgr_is_safe_channel(psoc, channel))) {
if (policy_mgr_is_hw_dbs_capable(psoc)) {
temp_channel =
policy_mgr_get_alternate_channel_for_sap(psoc);

Dosyayı Görüntüle

@@ -3074,3 +3074,16 @@ bool policy_mgr_dual_beacon_on_single_mac_mcc_capable(
policy_mgr_debug("Not support dual beacon on different channel on single MAC");
return false;
}
bool policy_mgr_sta_sap_scc_on_lte_coex_chan(
struct wlan_objmgr_psoc *psoc)
{
struct policy_mgr_psoc_priv_obj *pm_ctx;
pm_ctx = policy_mgr_get_context(psoc);
if (!pm_ctx) {
policy_mgr_err("Invalid Context");
return false;
}
return pm_ctx->user_cfg.sta_sap_scc_on_lte_coex_chan;
}