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

Commit 6ea076b7 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 32f9221c on remote branch

Change-Id: Ied4b43ff30e53b7411a6a5037893d31ebc2653d3
parents fc65c4f1 32f9221c
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -2368,6 +2368,7 @@ void policy_mgr_check_concurrent_intf_and_restart_sap(
	uint32_t op_ch_freq_list[MAX_NUMBER_OF_CONC_CONNECTIONS] = {0};
	uint8_t vdev_id[MAX_NUMBER_OF_CONC_CONNECTIONS] = {0};
	uint32_t cc_count = 0;
	uint32_t timeout_ms = 0;
	bool restart_sap = false;
	uint32_t sap_freq;
	/*
@@ -2447,10 +2448,21 @@ void policy_mgr_check_concurrent_intf_and_restart_sap(
	if (restart_sap ||
	    ((mcc_to_scc_switch != QDF_MCC_TO_SCC_SWITCH_DISABLE) &&
	    (sta_check || gc_check))) {
		if (pm_ctx->sta_ap_intf_check_work_info) {
			qdf_sched_work(0, &pm_ctx->sta_ap_intf_check_work);
			policy_mgr_debug(
				"Checking for Concurrent Change interference");
		if (!pm_ctx->sta_ap_intf_check_work_info) {
			policy_mgr_err("invalid sta_ap_intf_check_work_info");
			return;
		}

		policy_mgr_debug("Checking for Concurrent Change interference");

		if (policy_mgr_mode_specific_connection_count(
					psoc, PM_P2P_GO_MODE, NULL))
			timeout_ms = MAX_NOA_TIME;

		if (!qdf_delayed_work_start(&pm_ctx->sta_ap_intf_check_work,
					    timeout_ms)) {
			policy_mgr_err("change interface request failure");
			return;
		}
	}
}
+3 −2
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
#include "qdf_defer.h"
#include "wlan_reg_services_api.h"
#include "cds_ieee80211_common_i.h"

#include "qdf_delayed_work.h"
#define DBS_OPPORTUNISTIC_TIME   5

#define POLICY_MGR_SER_CMD_TIMEOUT 4000
@@ -40,6 +40,7 @@
#define PM_24_GHZ_CH_FREQ_6   (2437)
#define PM_5_GHZ_CH_FREQ_36   (5180)
#define CHANNEL_SWITCH_COMPLETE_TIMEOUT   (2000)
#define MAX_NOA_TIME (3000)

/**
 * Policy Mgr hardware mode list bit-mask definitions.
@@ -351,7 +352,7 @@ struct policy_mgr_psoc_priv_obj {
	uint32_t concurrency_mode;
	uint8_t no_of_open_sessions[QDF_MAX_NO_OF_MODE];
	uint8_t no_of_active_sessions[QDF_MAX_NO_OF_MODE];
	qdf_work_t sta_ap_intf_check_work;
	struct qdf_delayed_work sta_ap_intf_check_work;
	qdf_work_t nan_sap_conc_work;
	uint32_t num_dbs_hw_modes;
	struct dbs_hw_mode_info hw_mode;
+10 −4
Original line number Diff line number Diff line
@@ -338,9 +338,15 @@ QDF_STATUS policy_mgr_psoc_open(struct wlan_objmgr_psoc *psoc)
		return QDF_STATUS_E_FAILURE;
	}
	pm_ctx->sta_ap_intf_check_work_info->psoc = psoc;
	qdf_create_work(0, &pm_ctx->sta_ap_intf_check_work,
	if (QDF_IS_STATUS_ERROR(qdf_delayed_work_create(
				&pm_ctx->sta_ap_intf_check_work,
				policy_mgr_check_sta_ap_concurrent_ch_intf,
			pm_ctx->sta_ap_intf_check_work_info);
				pm_ctx))) {
		policy_mgr_err("Failed to create dealyed work queue");
		qdf_mutex_destroy(&pm_ctx->qdf_conc_list_lock);
		qdf_mem_free(pm_ctx->sta_ap_intf_check_work_info);
		return QDF_STATUS_E_FAILURE;
	}

	return QDF_STATUS_SUCCESS;
}
@@ -369,7 +375,7 @@ QDF_STATUS policy_mgr_psoc_close(struct wlan_objmgr_psoc *psoc)
	}

	if (pm_ctx->sta_ap_intf_check_work_info) {
		qdf_cancel_work(&pm_ctx->sta_ap_intf_check_work);
		qdf_delayed_work_destroy(&pm_ctx->sta_ap_intf_check_work);
		qdf_mem_free(pm_ctx->sta_ap_intf_check_work_info);
		pm_ctx->sta_ap_intf_check_work_info = NULL;
	}
+23 −11
Original line number Diff line number Diff line
@@ -3579,7 +3579,6 @@ static void wlan_ipa_uc_loaded_handler(struct wlan_ipa_priv *ipa_ctx)
		ipa_info("UC already loaded");
		return;
	}
	ipa_ctx->uc_loaded = true;

	if (!qdf_dev) {
		ipa_err("qdf_dev is null");
@@ -3602,7 +3601,7 @@ static void wlan_ipa_uc_loaded_handler(struct wlan_ipa_priv *ipa_ctx)
	if (status) {
		ipa_err("Failure to setup IPA pipes (status=%d)",
			status);
		return;
		goto connect_pipe_fail;
	}
	/* Setup the Tx buffer SMMU mapings */
	status = cdp_ipa_tx_buf_smmu_mapping(ipa_ctx->dp_soc,
@@ -3610,7 +3609,7 @@ static void wlan_ipa_uc_loaded_handler(struct wlan_ipa_priv *ipa_ctx)
	if (status) {
		ipa_err("Failure to map Tx buffers for IPA(status=%d)",
			status);
		return;
		goto smmu_map_fail;
	}
	ipa_info("TX buffers mapped to IPA");
	cdp_ipa_set_doorbell_paddr(ipa_ctx->dp_soc, ipa_ctx->dp_pdev_id);
@@ -3630,6 +3629,19 @@ static void wlan_ipa_uc_loaded_handler(struct wlan_ipa_priv *ipa_ctx)
		ipa_debug("Client already connected, enable IPA/FW PIPEs");
		wlan_ipa_uc_handle_first_con(ipa_ctx);
	}

	ipa_ctx->uc_loaded = true;

	return;

smmu_map_fail:
	qdf_ipa_wdi_disconn_pipes();

connect_pipe_fail:
	if (wlan_ipa_uc_sta_is_enabled(ipa_ctx->config)) {
		qdf_cancel_work(&ipa_ctx->mcc_work);
		wlan_ipa_teardown_sys_pipe(ipa_ctx);
	}
}

/**
@@ -3849,6 +3861,14 @@ QDF_STATUS wlan_ipa_uc_ol_init(struct wlan_ipa_priv *ipa_ctx,
		goto fail_return;
	}

	for (i = 0; i < WLAN_IPA_UC_OPCODE_MAX; i++) {
		ipa_ctx->uc_op_work[i].osdev = osdev;
		ipa_ctx->uc_op_work[i].msg = NULL;
		qdf_create_work(0, &ipa_ctx->uc_op_work[i].work,
				wlan_ipa_uc_fw_op_event_handler,
				&ipa_ctx->uc_op_work[i]);
	}

	if (true == ipa_ctx->uc_loaded) {
		status = wlan_ipa_wdi_setup(ipa_ctx, osdev);
		if (status) {
@@ -3882,14 +3902,6 @@ QDF_STATUS wlan_ipa_uc_ol_init(struct wlan_ipa_priv *ipa_ctx,
			ipa_err("Failed to init perf level");
	}

	for (i = 0; i < WLAN_IPA_UC_OPCODE_MAX; i++) {
		ipa_ctx->uc_op_work[i].osdev = osdev;
		qdf_create_work(0, &ipa_ctx->uc_op_work[i].work,
				wlan_ipa_uc_fw_op_event_handler,
				&ipa_ctx->uc_op_work[i]);
		ipa_ctx->uc_op_work[i].msg = NULL;
	}

	cdp_ipa_register_op_cb(ipa_ctx->dp_soc, ipa_ctx->dp_pdev_id,
			       wlan_ipa_uc_op_event_handler, (void *)ipa_ctx);
fail_return:
+2 −0
Original line number Diff line number Diff line
@@ -250,6 +250,7 @@ struct mscs_req_info {
 * @last_delba_sent_time: Last delba sent time to handle back to back delba
 *			  requests from some IOT APs
 * @ba_2k_jump_iot_ap: This is set to true if connected to the ba 2k jump IOT AP
 * @bad_htc_he_iot_ap: Set to true if connected to AP who can't decode htc he
 */
struct mlme_legacy_priv {
	bool chan_switch_in_progress;
@@ -287,6 +288,7 @@ struct mlme_legacy_priv {
#endif
	qdf_time_t last_delba_sent_time;
	bool ba_2k_jump_iot_ap;
	bool bad_htc_he_iot_ap;
};


Loading