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

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

Merge 1ea847c4 on remote branch

Change-Id: Iff836f3ebaaca823c62a4e7e68b1f22d391ade04
parents 01cba11e 1ea847c4
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -543,12 +543,23 @@ mlme_get_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id);
 * @reqs: RSO stop requestor
 * @clear: clear bit if true else set bit
 *
 * Return: bitmap value
 * Return: None
 */
void
mlme_set_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
			   enum roam_control_requestor reqs, bool clear);

/**
 * mlme_clear_operations_bitmap() - Clear mlme operations bitmap which
 *  indicates what mlme operations are in progress
 * @psoc: PSOC pointer
 * @vdev_id: vdev for which the mlme operation bitmap is requested
 *
 * Return: None
 */
void
mlme_clear_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id);

/**
 * mlme_get_cfg_wlm_level() - Get the WLM level value
 * @psoc: pointer to psoc object
+31 −0
Original line number Diff line number Diff line
@@ -2924,6 +2924,8 @@ mlme_get_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
	}

	bitmap = mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap;
	mlme_legacy_debug("vdev[%d] bitmap[0x%x]", vdev_id,
			  mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap);
	wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);

	return bitmap;
@@ -2954,6 +2956,35 @@ mlme_set_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
		mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap &= ~reqs;
	else
		mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap |= reqs;

	mlme_legacy_debug("vdev[%d] bitmap[0x%x], reqs: %d, clear: %d", vdev_id,
			  mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap,
			  reqs, clear);
	wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);
}

void
mlme_clear_operations_bitmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
{
	struct wlan_objmgr_vdev *vdev;
	struct mlme_legacy_priv *mlme_priv;

	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
						    WLAN_MLME_OBJMGR_ID);

	if (!vdev) {
		mlme_legacy_err("vdev object is NULL");
		return;
	}

	mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
	if (!mlme_priv) {
		mlme_legacy_err("vdev legacy private object is NULL");
		wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);
		return;
	}

	mlme_priv->mlme_roam.roam_sm.mlme_operations_bitmap = 0;
	wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);
}

+32 −0
Original line number Diff line number Diff line
@@ -1847,6 +1847,37 @@ static void hdd_cm_set_default_wlm_mode(struct hdd_adapter *adapter)
	}
}

/**
 * hdd_reset_udp_qos_upgrade_config() - Reset the threshold for UDP packet
 * QoS upgrade.
 * @adapter: adapter for which this configuration is to be applied
 *
 * Return: None
 */
static void hdd_reset_udp_qos_upgrade_config(struct hdd_adapter *adapter)
{
	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
	bool reset;
	QDF_STATUS status;

	if (!hdd_ctx) {
		hdd_err("hdd_ctx is NULL");
		return;
	}

	status = ucfg_mlme_cfg_get_wlm_reset(hdd_ctx->psoc, &reset);
	if (QDF_IS_STATUS_ERROR(status)) {
		hdd_err("could not get the wlm reset flag");
		return;
	}

	if (reset) {
		adapter->upgrade_udp_qos_threshold = QCA_WLAN_AC_BK;
		hdd_debug("UDP packets qos upgrade to: %d",
			  adapter->upgrade_udp_qos_threshold);
	}
}

/**
 * hdd_dis_connect_handler() - disconnect event handler
 * @adapter: pointer to adapter
@@ -1899,6 +1930,7 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
				  sta_ctx->conn_info.bssid.bytes);

	hdd_cm_set_default_wlm_mode(adapter);
	hdd_reset_udp_qos_upgrade_config(adapter);
	hdd_periodic_sta_stats_stop(adapter);

#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
+12 −5
Original line number Diff line number Diff line
@@ -3301,12 +3301,19 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
		sap_config->acs_cfg.ch_width = ch_width;
	}
	/* No VHT80 in 2.4G so perform ACS accordingly */
	/* Check 2.4ghz cbmode and update BW if only 2.4 channels are present */
	if (sap_config->acs_cfg.end_ch_freq <=
	    WLAN_REG_CH_TO_FREQ(CHAN_ENUM_2484) &&
	    sap_config->acs_cfg.ch_width == eHT_CHANNEL_WIDTH_80MHZ) {
		sap_config->acs_cfg.ch_width = eHT_CHANNEL_WIDTH_40MHZ;
		hdd_debug("resetting to 40Mhz in 2.4Ghz");
	    sap_config->acs_cfg.ch_width >= eHT_CHANNEL_WIDTH_40MHZ) {
		uint32_t channel_bonding_mode;
		ucfg_mlme_get_channel_bonding_24ghz(hdd_ctx->psoc,
						    &channel_bonding_mode);
		sap_config->acs_cfg.ch_width = channel_bonding_mode ?
			eHT_CHANNEL_WIDTH_40MHZ : eHT_CHANNEL_WIDTH_20MHZ;
		hdd_debug("Only 2.4ghz channels, resetting BW to %d 2.4 cbmode %d",
			  sap_config->acs_cfg.ch_width, channel_bonding_mode);
	}
	hdd_nofl_debug("ACS Config country %s ch_width %d hw_mode %d ACS_BW: %d HT: %d VHT: %d START_CH: %d END_CH: %d band %d",
+4 −0
Original line number Diff line number Diff line
@@ -15416,6 +15416,10 @@ static void hdd_set_adapter_wlm_def_level(struct hdd_context *hdd_ctx)
			       QCA_WLAN_VENDOR_ATTR_CONFIG_LATENCY_LEVEL_NORMAL;
		else
			adapter->latency_level = latency_level;

		adapter->upgrade_udp_qos_threshold = QCA_WLAN_AC_BK;
		hdd_debug("UDP packets qos reset to: %d",
			  adapter->upgrade_udp_qos_threshold);
		hdd_adapter_dev_put_debug(adapter, dbgid);
	}
}
Loading