qcacmn: Add support for LL_LT_SAP_MODE in policy mgr

Currently PM_LL_LT_SAP_MODE is not handled in policy manager.
With this change add support for PM_LL_LT_SAP_MODE in the policy
manager.

Change-Id: I7b893b04498957eb4a7e9f74c4b4395d4a823bf9
CRs-Fixed: 3536612
Esse commit está contido em:
Ashish Kumar Dhanotiya
2023-06-21 16:48:31 +05:30
commit de Rahul Choudhary
commit a0bd216fc8
4 arquivos alterados com 18 adições e 32 exclusões

Ver arquivo

@@ -280,12 +280,7 @@ static void wlan_cfg80211_pno_callback(struct wlan_objmgr_vdev *vdev,
#ifdef WLAN_POLICY_MGR_ENABLE
static bool wlan_cfg80211_is_ap_go_present(struct wlan_objmgr_psoc *psoc)
{
return policy_mgr_mode_specific_connection_count(psoc,
PM_SAP_MODE,
NULL) ||
policy_mgr_mode_specific_connection_count(psoc,
PM_P2P_GO_MODE,
NULL);
return policy_mgr_get_beaconing_mode_count(psoc, NULL);
}
static QDF_STATUS wlan_cfg80211_is_chan_ok_for_dnbs(
@@ -1622,11 +1617,7 @@ int wlan_cfg80211_scan(struct wlan_objmgr_vdev *vdev,
if (request->n_channels) {
#ifdef WLAN_POLICY_MGR_ENABLE
bool ap_or_go_present =
policy_mgr_mode_specific_connection_count(
psoc, PM_SAP_MODE, NULL) ||
policy_mgr_mode_specific_connection_count(
psoc, PM_P2P_GO_MODE, NULL);
bool ap_or_go_present = wlan_cfg80211_is_ap_go_present(psoc);
#endif
for (i = 0; i < request->n_channels; i++) {
c_freq = request->channels[i]->center_freq;

Ver arquivo

@@ -758,6 +758,7 @@ static uint32_t wlan_dcs_get_pcl_for_sap(struct wlan_objmgr_vdev *vdev,
enum channel_state state;
QDF_STATUS status;
int i, j;
enum policy_mgr_con_mode mode;
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc)
@@ -771,9 +772,11 @@ static uint32_t wlan_dcs_get_pcl_for_sap(struct wlan_objmgr_vdev *vdev,
if (!pcl)
return 0;
status = policy_mgr_get_pcl_for_vdev_id(psoc,
PM_SAP_MODE,
pcl->pcl_list, &pcl->pcl_len,
mode = policy_mgr_qdf_opmode_to_pm_con_mode(psoc, QDF_SAP_MODE,
wlan_vdev_get_id(vdev));
status = policy_mgr_get_pcl_for_vdev_id(psoc, mode, pcl->pcl_list,
&pcl->pcl_len,
pcl->weight_list,
QDF_ARRAY_SIZE(pcl->weight_list),
wlan_vdev_get_id(vdev));

Ver arquivo

@@ -1752,8 +1752,6 @@ cm_get_pcl_chan_weigtage_for_sta(struct wlan_objmgr_pdev *pdev,
struct pcl_freq_weight_list *pcl_lst,
struct wlan_objmgr_vdev *vdev)
{
enum QDF_OPMODE opmode = QDF_STA_MODE;
enum policy_mgr_con_mode pm_mode;
uint32_t num_entries = 0;
uint8_t vdev_id;
QDF_STATUS status;
@@ -1763,16 +1761,15 @@ cm_get_pcl_chan_weigtage_for_sta(struct wlan_objmgr_pdev *pdev,
vdev_id = wlan_vdev_get_id(vdev);
if (policy_mgr_map_concurrency_mode(&opmode, &pm_mode)) {
status = policy_mgr_get_pcl(wlan_pdev_get_psoc(pdev), pm_mode,
pcl_lst->pcl_freq_list,
&num_entries,
pcl_lst->pcl_weight_list,
NUM_CHANNELS, vdev_id);
if (QDF_IS_STATUS_ERROR(status))
return;
pcl_lst->num_of_pcl_channels = num_entries;
}
status = policy_mgr_get_pcl(wlan_pdev_get_psoc(pdev),
PM_STA_MODE,
pcl_lst->pcl_freq_list,
&num_entries,
pcl_lst->pcl_weight_list,
NUM_CHANNELS, vdev_id);
if (QDF_IS_STATUS_ERROR(status))
return;
pcl_lst->num_of_pcl_channels = num_entries;
}
void cm_calculate_scores(struct cnx_mgr *cm_ctx,

Ver arquivo

@@ -178,12 +178,7 @@ void wlan_scan_update_pno_dwell_time(struct wlan_objmgr_vdev *vdev,
if (!psoc)
return;
sap_or_p2p_present = policy_mgr_mode_specific_connection_count
(psoc,
PM_SAP_MODE, NULL) ||
policy_mgr_mode_specific_connection_count
(psoc,
PM_P2P_GO_MODE, NULL) ||
sap_or_p2p_present = policy_mgr_get_beaconing_mode_count(psoc, NULL) ||
policy_mgr_mode_specific_connection_count
(psoc,
PM_P2P_CLIENT_MODE, NULL);