qcacmn: Waikiki CFR changes

Add CFR support inclusing 240MHz & 320MHz for
Waikiki Chip.

CRs-Fixed: 3057992
Change-Id: I87499369a076ca561fea066ebbfc2ebeab854868
Цей коміт міститься в:
Shwetha G K
2021-10-12 10:33:13 +05:30
зафіксовано Madan Koyyalamudi
джерело 055acf7a87
коміт 9c320060ac
3 змінених файлів з 21 додано та 6 видалено

Переглянути файл

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -27,6 +27,7 @@
/**
* cfr_cwm_width : Capture bandwidth
* 0 : 20MHz, 1 : 40MHz, 2 : 80MHz, 3 : 160MHz, 4 : 80+80MHz
* 5 : 320MHz
*/
enum cfr_cwm_width {
CFR_CWM_WIDTH20,
@@ -34,6 +35,7 @@ enum cfr_cwm_width {
CFR_CWM_WIDTH80,
CFR_CWM_WIDTH160,
CFR_CWM_WIDTH80_80,
CFR_CWM_WIDTH320,
CFR_CWM_WIDTH_MAX,
CFR_CWM_WIDTHINVALID = 0xff
@@ -90,7 +92,7 @@ enum cfr_capture_method {
* to capture by programming the user provided values.
* These values(cap_dur, cap_intvl) range from 1 us to roughly 16.8 in 1 us
* units. Max value is 0xFFFFFF, i.e., 16.777215 s
* @bw: Bandwidth: 20, 40, 80, 160, 320MHz
* @bw: Bandwidth: 20, 40, 80, 160, 240, 320MHz
* @nss: 8 bits are allotted for NSS mask. Specifies which numbers of
* spatial streams (MIMO factor) are permitted
* @grp_id: Group id could of any value between 0 and 15
@@ -150,10 +152,10 @@ struct cfr_wlanconfig_param {
rsvd1 :8;
uint32_t cap_intvl :24,
rsvd2 :8;
uint32_t bw :5,
uint32_t bw :6,
nss :8,
grp_id :4,
rsvd3 :15;
rsvd3 :14;
uint32_t expected_mgmt_subtype :16,
expected_ctrl_subtype :16;
@@ -175,6 +177,9 @@ struct cfr_wlanconfig_param {
cap_intval_mode_sel :1,
rsvd7 :15;
#endif
#ifdef WLAN_FEATURE_11BE
uint32_t puncture_bitmap;
#endif
};
#endif /* _WLAN_CFR_PUBLIC_STRUCTS_H_ */

Переглянути файл

@@ -116,6 +116,7 @@ enum cfrradiotype {
CFR_CAPTURE_RADIO_MOSELLE,
CFR_CAPTURE_RADIO_SPRUCE,
CFR_CAPTURE_RADIO_ALDER,
CFR_CAPTURE_RADIO_WAIKIKI,
CFR_CAPTURE_RADIO_MAX = 0xFF,
};
@@ -268,6 +269,9 @@ struct cfr_capture_params {
u_int8_t bandwidth;
u_int32_t period;
u_int8_t method;
#ifdef WLAN_FEATURE_11BE
uint32_t puncture_bitmap;
#endif
};
/**
@@ -415,9 +419,9 @@ struct unassoc_pool_entry {
*/
struct ta_ra_cfr_cfg {
uint8_t filter_group_id;
uint16_t bw :5,
uint16_t bw :6,
nss :8,
rsvd0 :3;
rsvd0 :2;
uint16_t valid_ta :1,
valid_ta_mask :1,
valid_ra :1,
@@ -661,6 +665,9 @@ struct peer_cfr {
u_int8_t bandwidth;
u_int32_t period;
u_int8_t capture_method;
#ifdef WLAN_FEATURE_11BE
uint32_t puncture_bitmap;
#endif
};
/**

Переглянути файл

@@ -122,6 +122,9 @@ int ucfg_cfr_start_capture(struct wlan_objmgr_pdev *pdev,
pe->period = params->period;
pe->capture_method = params->method;
pe->request = PEER_CFR_CAPTURE_ENABLE;
#ifdef WLAN_FEATURE_11BE
pe->puncture_bitmap = params->puncture_bitmap;
#endif
} else
pa->cfr_current_sta_count--;