Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07bc68ae authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge ac3d7f75 on remote branch

Change-Id: Ie73dbd1abe4b58b265351772de316406ccffb61b
parents d05f7833 ac3d7f75
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3068,6 +3068,10 @@ cppflags-$(CONFIG_WDI2_IPA_OVER_GSI) += -DIPA_WDI2_GSI
#Enable WMI DIAG log over CE7
cppflags-$(CONFIG_WLAN_FEATURE_WMI_DIAG_OVER_CE7) += -DWLAN_FEATURE_WMI_DIAG_OVER_CE7

ifdef CONFIG_WLAN_DP_FEATURE_DEFERRED_REO_QDESC_DESTROY
cppflags-y += -DWLAN_DP_FEATURE_DEFERRED_REO_QDESC_DESTROY
endif

ifeq ($(CONFIG_ARCH_SDX20), y)
cppflags-y += -DSYNC_IPA_READY
endif
+0 −8
Original line number Diff line number Diff line
@@ -1971,14 +1971,6 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
			pm_ctx->dp_cbacks.hdd_disable_rx_ol_in_concurrency(false);
	};

	if ((mode == QDF_SAP_MODE || mode == QDF_P2P_GO_MODE) &&
	    (policy_mgr_mode_specific_connection_count(psoc, PM_SAP_MODE,
						       NULL) == 0) &&
	    (policy_mgr_mode_specific_connection_count(psoc, PM_P2P_GO_MODE,
						       NULL) == 0))
		wlan_reg_set_ap_pwr_and_update_chan_list(pm_ctx->pdev,
							 REG_INDOOR_AP);

	/* Disable RPS if SAP interface has come up */
	if (policy_mgr_mode_specific_connection_count(psoc, PM_SAP_MODE, NULL)
		== 0) {
+18 −6
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ void policy_mgr_decr_session_set_pcl(struct wlan_objmgr_psoc *psoc,
 * policy_mgr_update_valid_ch_freq_list() - Update policy manager valid ch list
 * @pm_ctx: policy manager context data
 * @ch_list: Regulatory channel list
 * @is_client: true if caller is a client, false if it is a beaconing entity
 *
 * When regulatory component channel list is updated this internal function is
 * called to update policy manager copy of valid channel list.
@@ -233,14 +234,21 @@ void policy_mgr_decr_session_set_pcl(struct wlan_objmgr_psoc *psoc,
 */
static void
policy_mgr_update_valid_ch_freq_list(struct policy_mgr_psoc_priv_obj *pm_ctx,
				     struct regulatory_channel *reg_ch_list)
				     struct regulatory_channel *reg_ch_list,
				     bool is_client)
{
	uint32_t i, j = 0, ch_freq;
	enum channel_state state;

	for (i = 0; i < NUM_CHANNELS; i++) {
		ch_freq = reg_ch_list[i].center_freq;
		state = wlan_reg_get_channel_state_for_freq(pm_ctx->pdev, ch_freq);
		if (is_client)
			state = wlan_reg_get_channel_state_for_freq(
							pm_ctx->pdev, ch_freq);
		else
			state =
			wlan_reg_get_channel_state_from_secondary_list_for_freq(
							pm_ctx->pdev, ch_freq);

		if (state != CHANNEL_STATE_DISABLE &&
		    state != CHANNEL_STATE_INVALID) {
@@ -268,7 +276,8 @@ policy_mgr_reg_chan_change_callback(struct wlan_objmgr_psoc *psoc,
		return;
	}

	policy_mgr_update_valid_ch_freq_list(pm_ctx, chan_list);
	wlan_reg_decide_6g_ap_pwr_type(pdev);
	policy_mgr_update_valid_ch_freq_list(pm_ctx, chan_list, false);

	if (!avoid_freq_ind) {
		policy_mgr_debug("avoid_freq_ind NULL");
@@ -571,7 +580,9 @@ static QDF_STATUS policy_mgr_modify_sap_pcl_based_on_dfs(
	}

	for (i = 0; i < *pcl_len_org; i++) {
		if (!wlan_reg_is_dfs_for_freq(pm_ctx->pdev, pcl_list_org[i])) {
		if (!wlan_reg_is_dfs_in_secondary_list_for_freq(
							pm_ctx->pdev,
							pcl_list_org[i])) {
			pcl_list_org[pcl_len] = pcl_list_org[i];
			weight_list_org[pcl_len++] = weight_list_org[i];
		}
@@ -604,7 +615,7 @@ static QDF_STATUS policy_mgr_modify_sap_pcl_based_on_nol(
	}

	for (i = 0; i < *pcl_len_org; i++) {
		if (!wlan_reg_is_disable_for_freq(
		if (!wlan_reg_is_disable_in_secondary_list_for_freq(
		    pm_ctx->pdev, pcl_list_org[i])) {
			pcl_list[pcl_len] = pcl_list_org[i];
			weight_list[pcl_len++] = weight_list_org[i];
@@ -704,7 +715,8 @@ policy_mgr_modify_pcl_based_on_indoor(struct wlan_objmgr_psoc *psoc,
	}

	for (i = 0; i < *pcl_len_org; i++) {
		if (wlan_reg_is_freq_indoor(pm_ctx->pdev, pcl_list_org[i]))
		if (wlan_reg_is_freq_indoor_in_secondary_list(pm_ctx->pdev,
							      pcl_list_org[i]))
			continue;
		pcl_list[pcl_len] = pcl_list_org[i];
		weight_list[pcl_len++] = weight_list_org[i];
+34 −19
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@
#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
#include <wlan_pmo_obj_mgmt_api.h>
#endif
#ifdef WLAN_SUPPORT_TWT
#include <wlan_mlme_twt_public_struct.h>
#endif

#ifdef WLAN_SUPPORT_TWT

@@ -44,9 +47,10 @@
 * @dest_param: Pointer to copy twt session parameters when a peer with
 * given dialog id is found
 *
 * Return: true if stats are copied for a peer with given dialog, else false
 * Return: Success if stats are copied for a peer with given dialog,
 * else failure
 */
static bool
static QDF_STATUS
ucfg_twt_get_peer_session_param_by_dlg_id(struct peer_mc_cp_stats *mc_stats,
					  uint32_t input_dialog_id,
					  struct wmi_host_twt_session_stats_info
@@ -54,26 +58,33 @@ ucfg_twt_get_peer_session_param_by_dlg_id(struct peer_mc_cp_stats *mc_stats,
{
	struct wmi_host_twt_session_stats_info *src_param;
	uint32_t event_type;
	int i;
	int i, num_session = 0;
	QDF_STATUS qdf_status = QDF_STATUS_E_INVAL;

	if (!mc_stats || !dest_param)
		return false;
		return qdf_status;

	for (i = 0; i < TWT_PEER_MAX_SESSIONS; i++) {
		event_type = mc_stats->twt_param[i].event_type;

		src_param = &mc_stats->twt_param[i];
		if ((!event_type) || (src_param->dialog_id != input_dialog_id))
		if (!event_type ||
		    (src_param->dialog_id != input_dialog_id &&
		     input_dialog_id != WLAN_ALL_SESSIONS_DIALOG_ID))
			continue;

		if ((event_type == HOST_TWT_SESSION_SETUP) ||
		    (event_type == HOST_TWT_SESSION_UPDATE)) {
			qdf_mem_copy(dest_param, src_param, sizeof(*src_param));
			return true;
			qdf_mem_copy(&dest_param[num_session], src_param,
				     sizeof(*src_param));
			qdf_status = QDF_STATUS_SUCCESS;
			num_session += 1;
			if (num_session >= TWT_PEER_MAX_SESSIONS)
				break;
		}
	}

	return false;
	return qdf_status;
}

/**
@@ -114,10 +125,10 @@ ucfg_twt_get_single_peer_session_params(struct wlan_objmgr_psoc *psoc_obj,
	wlan_cp_stats_peer_obj_lock(peer_cp_stats_priv);
	peer_mc_stats = peer_cp_stats_priv->peer_stats;

	if (ucfg_twt_get_peer_session_param_by_dlg_id(peer_mc_stats,
						      dialog_id, params)) {
		qdf_status = QDF_STATUS_SUCCESS;
	} else {
	qdf_status = ucfg_twt_get_peer_session_param_by_dlg_id(peer_mc_stats,
							       dialog_id,
							       params);
	if (QDF_IS_STATUS_ERROR(qdf_status)) {
		qdf_err("No TWT session for " QDF_MAC_ADDR_FMT " dialog_id %d",
			QDF_MAC_ADDR_REF(mac_addr), dialog_id);
	}
@@ -192,6 +203,9 @@ ucfg_twt_get_all_peer_session_params(struct wlan_objmgr_psoc *psoc_obj,
	qdf_list_t *obj_list;
	int i, num_sessions = 0;

	if (!psoc_obj || !params)
		return qdf_status;

	/* psoc obj lock should be taken before peer list lock */
	wlan_psoc_obj_lock(psoc_obj);
	psoc_objmgr = &psoc_obj->soc_objmgr;
@@ -262,18 +276,19 @@ ucfg_twt_get_peer_session_params(struct wlan_objmgr_psoc *psoc_obj,
	dialog_id = params[0].dialog_id;

	/*
	 * Currently twt_get_params nl cmd is sending only dialog_id(STA) and
	 * mac_addr is being filled by driver in STA peer case. When
	 * twt_get_params adds support for mac_addr and dialog_id of STA/SAP,
	 * we need handle unicast/multicast macaddr in
	 * ucfg_twt_get_all_peer_session_params for all active twt sessions
	 * Currently for STA case, twt_get_params nl is sending only dialog_id
	 * and mac_addr is being filled by driver in STA peer case.
	 * For SAP case, twt_get_params nl is sending dialog_id and
	 * peer mac_addr. When twt_get_params add mac_addr and dialog_id of
	 * STA/SAP, we need handle unicast/multicast macaddr in
	 * ucfg_twt_get_peer_session_params.
	 */
	if (dialog_id <= TWT_MAX_DIALOG_ID)
	if (!QDF_IS_ADDR_BROADCAST(mac_addr))
		return ucfg_twt_get_single_peer_session_params(psoc_obj,
							       mac_addr,
							       dialog_id,
							       params);
	else if (dialog_id == TWT_GET_ALL_PEER_PARAMS_DIALOG_ID)
	else
		return ucfg_twt_get_all_peer_session_params(psoc_obj, params);

	return QDF_STATUS_E_INVAL;
+7 −0
Original line number Diff line number Diff line
@@ -3855,6 +3855,13 @@ QDF_STATUS wlan_ipa_uc_ol_init(struct wlan_ipa_priv *ipa_ctx,
			ipa_err("Failure to setup IPA pipes (status=%d)",
				status);
			status = QDF_STATUS_E_FAILURE;

			if (wlan_ipa_uc_sta_is_enabled(ipa_ctx->config)) {
				qdf_cancel_work(&ipa_ctx->mcc_work);
				wlan_ipa_teardown_sys_pipe(ipa_ctx);
			}
			ipa_ctx->uc_loaded = false;

			goto fail_return;
		}

Loading