qcacmn: DBR Support extract standalone sounding CQI metadata
Added change to handle TxBF standalone sounding CQI data. 1. Define and handle structure to support new TLV for CQI data. 2. API to extract new meta data TLV added for CQI data 3. API to handle processing CQI data. Change-Id: If6e654fc03cc5c150b85bc9af487c58b77d78e1d CRs-Fixed: 3594811
This commit is contained in:

committed by
Rahul Choudhary

parent
fb436899e2
commit
e3dd0df678
@@ -81,6 +81,7 @@
|
||||
* @num_buf_release_entry: Number of buffers released through event
|
||||
* @num_meta_data_entry: Number of meta data released
|
||||
* @num_cv_meta_data_entry: Number of cv meta data released
|
||||
* @num_cqi_meta_data_entry: Number of cqi meta data released
|
||||
* @dbr_entries: Pointer to direct buffer rx entry struct
|
||||
*/
|
||||
struct direct_buf_rx_rsp {
|
||||
@@ -89,6 +90,7 @@ struct direct_buf_rx_rsp {
|
||||
uint32_t num_buf_release_entry;
|
||||
uint32_t num_meta_data_entry;
|
||||
uint32_t num_cv_meta_data_entry;
|
||||
uint32_t num_cqi_meta_data_entry;
|
||||
struct direct_buf_rx_entry *dbr_entries;
|
||||
};
|
||||
|
||||
@@ -164,6 +166,53 @@ struct direct_buf_rx_cv_metadata {
|
||||
uint32_t fb_params;
|
||||
};
|
||||
|
||||
/*
|
||||
* In CQI data buffer, each user CQI data will be stored
|
||||
* in a fixed offset of 64 locations from each other,
|
||||
* and each location corresponds to 64-bit length.
|
||||
*/
|
||||
#define CQI_USER_DATA_LENGTH (64 * 8)
|
||||
#define CQI_USER_DATA_OFFSET(idx) ((idx) * CQI_USER_DATA_LENGTH)
|
||||
#define MAX_NUM_CQI_USERS 3
|
||||
/*
|
||||
* struct direct_buf_rx_cqi_per_user_info: Per user CQI data
|
||||
*
|
||||
* @asnr_len: Average SNR length
|
||||
* @asnr_offset: Average SNR offset
|
||||
* @fb_params: Feedback params, [1:0] Nc
|
||||
* @peer_mac: Peer macaddr
|
||||
*/
|
||||
struct direct_buf_rx_cqi_per_user_info {
|
||||
uint16_t asnr_len;
|
||||
uint16_t asnr_offset;
|
||||
uint32_t fb_params;
|
||||
struct qdf_mac_addr peer_mac;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct direct_buf_rx_cqi_metadata: direct buffer metadata for CQI upload
|
||||
*
|
||||
* @num_users: Number of user info in a metadta buffer
|
||||
* @is_valid: Set cqi metadata is valid,
|
||||
* false if sw_peer_id is invalid or FCS error
|
||||
* @fb_type: Feedback type, 0 for SU 1 for MU 2 for CQI
|
||||
* @fb_params: Feedback params
|
||||
* [0] is_valid0
|
||||
* [1] is_valid1
|
||||
* [2] is_valid2
|
||||
* [4:3] Nc0
|
||||
* [5:4] Nc1
|
||||
* [6:5] Nc2
|
||||
* @user_info: Per user CQI info
|
||||
*/
|
||||
struct direct_buf_rx_cqi_metadata {
|
||||
uint8_t num_users;
|
||||
uint32_t is_valid;
|
||||
uint32_t fb_type;
|
||||
uint32_t fb_params;
|
||||
struct direct_buf_rx_cqi_per_user_info user_info[MAX_NUM_CQI_USERS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct direct_buf_rx_entry: direct buffer rx release entry structure
|
||||
*
|
||||
|
Reference in New Issue
Block a user