Loading components/mlme/core/inc/wlan_mlme_main.h +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading components/mlme/core/src/wlan_mlme_main.c +31 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading core/hdd/src/wlan_hdd_assoc.c +32 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading core/hdd/src/wlan_hdd_cfg80211.c +12 −5 Original line number Diff line number Diff line Loading @@ -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", Loading core/hdd/src/wlan_hdd_main.c +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
components/mlme/core/inc/wlan_mlme_main.h +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
components/mlme/core/src/wlan_mlme_main.c +31 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading
core/hdd/src/wlan_hdd_assoc.c +32 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading
core/hdd/src/wlan_hdd_cfg80211.c +12 −5 Original line number Diff line number Diff line Loading @@ -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", Loading
core/hdd/src/wlan_hdd_main.c +4 −0 Original line number Diff line number Diff line Loading @@ -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