mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
Merge c5560438fc on remote branch
Change-Id: Icc52e6da6682bf669931c3b63ac72e56f7386748
This commit is contained in:
commit
9909727aee
5 changed files with 37 additions and 13 deletions
|
|
@ -3138,6 +3138,7 @@ struct dp_fisa_stats {
|
|||
/* flow index invalid from RX HW TLV */
|
||||
uint32_t invalid_flow_index;
|
||||
uint32_t reo_mismatch;
|
||||
uint32_t incorrect_rdi;
|
||||
};
|
||||
|
||||
enum fisa_aggr_ret {
|
||||
|
|
|
|||
|
|
@ -205,6 +205,10 @@
|
|||
#define WLAN_MAX_HEOP_IE_LEN 16
|
||||
#define WLAN_HEOP_OUI_TYPE "\x24"
|
||||
#define WLAN_HEOP_OUI_SIZE 1
|
||||
#define WLAN_MIN_HECAP_IE_LEN 22
|
||||
#define WLAN_MAX_HECAP_IE_LEN 55
|
||||
#define WLAN_HE_MCS_MAP_LEN 2
|
||||
#define WLAN_INVALID_RX_MCS_MAP 0xFFFF
|
||||
|
||||
#define WLAN_HEOP_FIXED_PARAM_LENGTH 7
|
||||
#define WLAN_HEOP_VHTOP_LENGTH 3
|
||||
|
|
|
|||
|
|
@ -831,11 +831,18 @@ enum reg_6g_ap_type reg_decide_6g_ap_pwr_type(struct wlan_objmgr_pdev *pdev)
|
|||
return REG_VERY_LOW_POWER_AP;
|
||||
}
|
||||
|
||||
if (reg_is_afc_available(pdev))
|
||||
if (reg_is_afc_available(pdev)) {
|
||||
ap_pwr_type = REG_STANDARD_POWER_AP;
|
||||
else if (pdev_priv_obj->reg_6g_superid != FCC1_6G &&
|
||||
pdev_priv_obj->reg_6g_superid != FCC1_6G_CL)
|
||||
} else if (pdev_priv_obj->indoor_chan_enabled) {
|
||||
if (pdev_priv_obj->reg_rules.num_of_6g_ap_reg_rules[REG_INDOOR_AP])
|
||||
ap_pwr_type = REG_INDOOR_AP;
|
||||
else
|
||||
ap_pwr_type = REG_VERY_LOW_POWER_AP;
|
||||
} else if (pdev_priv_obj->reg_rules.num_of_6g_ap_reg_rules[REG_VERY_LOW_POWER_AP]) {
|
||||
ap_pwr_type = REG_VERY_LOW_POWER_AP;
|
||||
}
|
||||
reg_debug("indoor_chan_enabled %d ap_pwr_type %d",
|
||||
pdev_priv_obj->indoor_chan_enabled, ap_pwr_type);
|
||||
|
||||
reg_set_ap_pwr_and_update_chan_list(pdev, ap_pwr_type);
|
||||
|
||||
|
|
|
|||
|
|
@ -789,6 +789,9 @@ util_scan_parse_extn_ie(struct scan_cache_entry *scan_params,
|
|||
scan_params->ie_list.srp = (uint8_t *)ie;
|
||||
break;
|
||||
case WLAN_EXTN_ELEMID_HECAP:
|
||||
if ((extn_ie->ie_len < WLAN_MIN_HECAP_IE_LEN) ||
|
||||
(extn_ie->ie_len > WLAN_MAX_HECAP_IE_LEN))
|
||||
return QDF_STATUS_E_INVAL;
|
||||
scan_params->ie_list.hecap = (uint8_t *)ie;
|
||||
break;
|
||||
case WLAN_EXTN_ELEMID_HEOP:
|
||||
|
|
@ -1317,28 +1320,36 @@ static int util_scan_scm_calc_nss_supported_by_ap(
|
|||
{
|
||||
struct htcap_cmn_ie *htcap;
|
||||
struct wlan_ie_vhtcaps *vhtcaps;
|
||||
struct wlan_ie_hecaps *hecaps;
|
||||
uint8_t *he_cap;
|
||||
uint8_t *end_ptr = NULL;
|
||||
uint16_t rx_mcs_map = 0;
|
||||
uint8_t *mcs_map_offset;
|
||||
|
||||
htcap = (struct htcap_cmn_ie *)
|
||||
util_scan_entry_htcap(scan_params);
|
||||
vhtcaps = (struct wlan_ie_vhtcaps *)
|
||||
util_scan_entry_vhtcap(scan_params);
|
||||
hecaps = (struct wlan_ie_hecaps *)
|
||||
util_scan_entry_hecap(scan_params);
|
||||
he_cap = util_scan_entry_hecap(scan_params);
|
||||
|
||||
if (hecaps) {
|
||||
if (he_cap) {
|
||||
/* Using rx mcs map related to 80MHz or lower as in some
|
||||
* cases higher mcs may suuport lesser NSS than that
|
||||
* of lowe mcs. Thus giving max NSS capability.
|
||||
*/
|
||||
rx_mcs_map =
|
||||
qdf_cpu_to_le16(hecaps->mcs_bw_map[0].rx_mcs_map);
|
||||
end_ptr = he_cap + he_cap[1] + sizeof(struct ie_header);
|
||||
mcs_map_offset = (he_cap + sizeof(struct extn_ie_header) +
|
||||
WLAN_HE_MACCAP_LEN + WLAN_HE_PHYCAP_LEN);
|
||||
if ((mcs_map_offset + WLAN_HE_MCS_MAP_LEN) <= end_ptr) {
|
||||
rx_mcs_map = *(uint16_t *)mcs_map_offset;
|
||||
} else {
|
||||
rx_mcs_map = WLAN_INVALID_RX_MCS_MAP;
|
||||
scm_debug("mcs_map_offset exceeds he cap len");
|
||||
}
|
||||
} else if (vhtcaps) {
|
||||
rx_mcs_map = vhtcaps->rx_mcs_map;
|
||||
}
|
||||
|
||||
if (hecaps || vhtcaps) {
|
||||
if (he_cap || vhtcaps) {
|
||||
if ((rx_mcs_map & 0xC000) != 0xC000)
|
||||
return 8;
|
||||
|
||||
|
|
@ -2134,8 +2145,9 @@ static uint32_t util_gen_new_ie(uint8_t *ie, uint32_t ielen,
|
|||
* copied to new ie, skip ssid, capability, bssid-index ie
|
||||
*/
|
||||
tmp_new = sub_copy;
|
||||
while (((tmp_new + tmp_new[1] + MIN_IE_LEN) - sub_copy) <=
|
||||
(subie_len - 1)) {
|
||||
while ((subie_len > 0) &&
|
||||
(((tmp_new + tmp_new[1] + MIN_IE_LEN) - sub_copy) <=
|
||||
(subie_len - 1))) {
|
||||
if (!(tmp_new[0] == WLAN_ELEMID_NONTX_BSSID_CAP ||
|
||||
tmp_new[0] == WLAN_ELEMID_SSID ||
|
||||
tmp_new[0] == WLAN_ELEMID_MULTI_BSSID_IDX ||
|
||||
|
|
|
|||
|
|
@ -14539,7 +14539,7 @@ extract_smart_monitor_event_tlv(void *handle, void *evt_buf,
|
|||
if (params->vdev_id >= WLAN_UMAC_PDEV_MAX_VDEVS)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
params->rx_avg_rssi = smu_event->avg_rssi_data_dbm;
|
||||
params->rx_vht_sgi = smu_event->rx_vht_sgi;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue