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

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

Merge bdca97fb on remote branch

Change-Id: I17eabc85b2fb2e99ca391efa4abbbf97c0fe374e
parents e27b1097 bdca97fb
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -936,6 +936,24 @@ QDF_STATUS cds_set_hw_mode_on_channel_switch(uint8_t session_id);
void cds_set_do_hw_mode_change_flag(bool flag);
bool cds_is_hw_mode_change_after_vdev_up(void);
void cds_checkn_update_hw_mode_single_mac_mode(uint8_t channel);

/**
 * cds_check_and_stop_opportunistic_timer() - Stop dbs opportunistic timer
 *
 * Stop dbs opportunistic timer and depending on the current connections change
 * hw_mode to single mac mode.
 *
 * Return: None
 */
void cds_check_and_stop_opportunistic_timer(void);

/**
 * cds_set_opportunistic_update() - Set opportunistic update event
 *
 * Return: QDF_STATUS
 */
QDF_STATUS cds_set_opportunistic_update(void);

void cds_dump_connection_status_info(void);
/**
 * cds_mode_specific_vdev_id() - provides the
+1 −0
Original line number Diff line number Diff line
@@ -376,6 +376,7 @@ typedef struct _cds_context_type {
	qdf_event_t connection_update_done_evt;
	qdf_mutex_t qdf_conc_list_lock;
	qdf_mc_timer_t dbs_opportunistic_timer;
	qdf_event_t opportunistic_update_done_evt;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
	void (*sap_restart_chan_switch_cb)(struct hdd_adapter_s *,
					   uint32_t, uint32_t);
+83 −5
Original line number Diff line number Diff line
@@ -2683,19 +2683,19 @@ static void cds_pdev_set_hw_mode_cb(uint32_t status,
	cds_ctx = cds_get_context(QDF_MODULE_ID_QDF);
	if (!cds_ctx) {
		cds_err("Invalid CDS Context");
		return;
		goto set_done_event;
	}

	cds_set_hw_mode_change_in_progress(CDS_HW_MODE_NOT_IN_PROGRESS);

	if (status != SET_HW_MODE_STATUS_OK) {
		cds_err("Set HW mode failed with status %d", status);
		return;
		goto set_done_event;
	}

	if (!vdev_mac_map) {
		cds_err("vdev_mac_map is NULL");
		return;
		goto set_done_event;
	}

	cds_debug("cfgd_hw_mode_index=%d", cfgd_hw_mode_index);
@@ -2708,7 +2708,7 @@ static void cds_pdev_set_hw_mode_cb(uint32_t status,
	ret = wma_get_hw_mode_from_idx(cfgd_hw_mode_index, &hw_mode);
	if (ret != QDF_STATUS_SUCCESS) {
		cds_err("Get HW mode failed: %d", ret);
		return;
		goto set_done_event;
	}

	cds_debug("MAC0: TxSS:%d, RxSS:%d, Bw:%d",
@@ -2736,7 +2736,10 @@ static void cds_pdev_set_hw_mode_cb(uint32_t status,
	if (cds_ctx->mode_change_cb)
		cds_ctx->mode_change_cb();

	return;
set_done_event:
	ret = cds_set_opportunistic_update();
	if (!QDF_IS_STATUS_SUCCESS(ret))
		cds_err("ERROR: set opportunistic_update event failed");
}

/**
@@ -4403,6 +4406,14 @@ QDF_STATUS cds_deinit_policy_mgr(void)
		return QDF_STATUS_E_FAILURE;
	}

	/* Destroy opportunistic_update_done_evt */
	status = qdf_event_destroy(&cds_ctx->opportunistic_update_done_evt);
	if (!QDF_IS_STATUS_SUCCESS(status)) {
		cds_err("Failed to destroy opportunistic_update_done_evt");
		status = QDF_STATUS_E_FAILURE;
		QDF_ASSERT(0);
	}

	if (!QDF_IS_STATUS_SUCCESS(qdf_event_destroy
				  (&cds_ctx->connection_update_done_evt))) {
		cds_err("Failed to destroy connection_update_done_evt");
@@ -4507,6 +4518,12 @@ QDF_STATUS cds_init_policy_mgr(struct cds_sme_cbacks *sme_cbacks)
		return QDF_STATUS_E_FAILURE;
	}

	status = qdf_event_create(&cds_ctx->opportunistic_update_done_evt);
	if (!QDF_IS_STATUS_SUCCESS(status)) {
		cds_err("opportunistic_update_done_evt init failed");
		return status;
	}

	return QDF_STATUS_SUCCESS;
}

@@ -11096,6 +11113,67 @@ void cds_checkn_update_hw_mode_single_mac_mode(uint8_t channel)
	cds_dbs_opportunistic_timer_handler((void *)cds_ctx);
}

QDF_STATUS cds_set_opportunistic_update(void)
{
	QDF_STATUS status;
	cds_context_type *cds_ctx;

	cds_ctx = cds_get_context(QDF_MODULE_ID_QDF);
	if (!cds_ctx) {
		cds_err("Invalid CDS Context");
		return QDF_STATUS_E_FAILURE;
	}

	status = qdf_event_set(&cds_ctx->opportunistic_update_done_evt);
	if (!QDF_IS_STATUS_SUCCESS(status)) {
		cds_err("set event failed");
		return QDF_STATUS_E_FAILURE;
	}

	return QDF_STATUS_SUCCESS;
}

void cds_check_and_stop_opportunistic_timer(void)
{
	cds_context_type *cds_ctx;
	enum cds_conc_next_action action = CDS_NOP;
	QDF_STATUS status = QDF_STATUS_E_FAILURE;

	cds_ctx = cds_get_context(QDF_MODULE_ID_QDF);
	if (!cds_ctx) {
		cds_err("Invalid CDS Context");
		return;
	}

	if (cds_ctx->dbs_opportunistic_timer.state != QDF_TIMER_STATE_RUNNING)
		return;

	qdf_mc_timer_stop(&cds_ctx->dbs_opportunistic_timer);

	action = cds_need_opportunistic_upgrade();
	if (!action)
		return;

	qdf_event_reset(&cds_ctx->opportunistic_update_done_evt);

	/*
	 * lets call for action, session id is being used only
	 * in hidden ssid case for now. So, session id 0 is ok here.
	 */
	status = cds_next_actions(0, action, SIR_UPDATE_REASON_OPPORTUNISTIC);
	if (!QDF_IS_STATUS_SUCCESS(status)) {
		cds_err("Failed in cds_next_actions");
		return;
	}

	status = qdf_wait_single_event(&cds_ctx->opportunistic_update_done_evt,
				       CONNECTION_UPDATE_TIMEOUT);
	if (!QDF_IS_STATUS_SUCCESS(status)) {
		cds_err("wait on opportunistic_update_done_evt is failed");
		return;
	}
}

/**
 * cds_set_do_hw_mode_change_flag() - Set flag to indicate hw mode change
 * @flag: Indicate if hw mode change is required or not
+1 −0
Original line number Diff line number Diff line
@@ -6163,6 +6163,7 @@ ol_txrx_mon_rx_data_cb(void *ppdev, void *nbuf_list, uint8_t vdev_id,

		/* clear IEEE80211_RADIOTAP_F_FCS flag*/
		rx_status.rtap_flags &= ~(BIT(4));
		rx_status.rtap_flags &= ~(BIT(2));

		/*
		 * convert 802.3 header format into 802.11 format
+5 −5
Original line number Diff line number Diff line
@@ -11368,8 +11368,8 @@ enum restart_beaconing_on_ch_avoid_rule {
 * <ini>
 * gAutoBmpsTimerValue - Set Auto BMPS Timer value
 * @Min: 0
 * @Max: 120
 * @Default: 90
 * @Max: 1000
 * @Default: 600
 *
 * This ini is used to set Auto BMPS Timer value in seconds
 *
@@ -11383,8 +11383,8 @@ enum restart_beaconing_on_ch_avoid_rule {
 */
#define CFG_AUTO_PS_ENABLE_TIMER_NAME          "gAutoBmpsTimerValue"
#define CFG_AUTO_PS_ENABLE_TIMER_MIN           (0)
#define CFG_AUTO_PS_ENABLE_TIMER_MAX           (120)
#define CFG_AUTO_PS_ENABLE_TIMER_DEFAULT       (90)
#define CFG_AUTO_PS_ENABLE_TIMER_MAX           (1000)
#define CFG_AUTO_PS_ENABLE_TIMER_DEFAULT       (600)

#ifdef WLAN_ICMP_DISABLE_PS
/*
@@ -12675,7 +12675,7 @@ enum hw_filter_mode {
 * </ini>
 */
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE_NAME    "gActionOUISwitchTo11nMode"
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE_DEFAULT "00904C 03 0418BF E0 21 40"
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE_DEFAULT "00904C 05 0418BF0CB2 F8 21 40"

/*
 * <ini>
Loading