qcacmn: Add additional parameters to CFR meta data

Add per chain agc gain in dB information, CFO & rx_start_ts
fields to CFR metadata

Change-Id: I6af9c4212fe5a0bed6e51516d1c446155cea63aa
This commit is contained in:
Shwetha G K
2020-10-12 13:51:34 +05:30
zatwierdzone przez snandini
rodzic d11c7baf48
commit 44d132cc27

Wyświetl plik

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2019-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
@@ -62,6 +62,8 @@ enum cfrmetaversion {
CFR_META_VERSION_1,
CFR_META_VERSION_2,
CFR_META_VERSION_3,
CFR_META_VERSION_4,
CFR_META_VERSION_5,
CFR_META_VERSION_MAX = 0xFF,
};
@@ -166,6 +168,28 @@ struct cfr_metadata_version_2 {
u_int16_t chain_phase[HOST_MAX_CHAINS];
} __attribute__ ((__packed__));
struct cfr_metadata_version_4 {
u_int8_t peer_addr[QDF_MAC_ADDR_SIZE];
u_int8_t status;
u_int8_t capture_bw;
u_int8_t channel_bw;
u_int8_t phy_mode;
u_int16_t prim20_chan;
u_int16_t center_freq1;
u_int16_t center_freq2;
u_int8_t capture_mode;
u_int8_t capture_type;
u_int8_t sts_count;
u_int8_t num_rx_chain;
u_int32_t timestamp;
u_int32_t length;
u_int32_t chain_rssi[HOST_MAX_CHAINS];
u_int16_t chain_phase[HOST_MAX_CHAINS];
u_int32_t rtt_cfo_measurement;
u_int8_t agc_gain[HOST_MAX_CHAINS];
u_int32_t rx_start_ts;
} __attribute__ ((__packed__));
#ifdef WLAN_ENH_CFR_ENABLE
struct cfr_metadata_version_3 {
u_int8_t status;
@@ -190,6 +214,34 @@ struct cfr_metadata_version_3 {
u_int32_t chain_rssi[HOST_MAX_CHAINS];
u_int16_t chain_phase[HOST_MAX_CHAINS];
} __attribute__ ((__packed__));
struct cfr_metadata_version_5 {
u_int8_t status;
u_int8_t capture_bw;
u_int8_t channel_bw;
u_int8_t phy_mode;
u_int16_t prim20_chan;
u_int16_t center_freq1;
u_int16_t center_freq2;
u_int8_t capture_mode; /* ack_capture_mode */
u_int8_t capture_type; /* cfr_capture_type */
u_int8_t sts_count;
u_int8_t num_rx_chain;
u_int64_t timestamp;
u_int32_t length;
u_int8_t is_mu_ppdu;
u_int8_t num_mu_users;
union {
u_int8_t su_peer_addr[QDF_MAC_ADDR_SIZE];
u_int8_t mu_peer_addr[MAX_CFR_MU_USERS][QDF_MAC_ADDR_SIZE];
} peer_addr;
u_int32_t chain_rssi[HOST_MAX_CHAINS];
u_int16_t chain_phase[HOST_MAX_CHAINS];
u_int32_t rtt_cfo_measurement;
u_int8_t agc_gain[HOST_MAX_CHAINS];
u_int32_t rx_start_ts;
} __attribute__ ((__packed__));
#endif
struct csi_cfr_header {
@@ -199,13 +251,17 @@ struct csi_cfr_header {
u_int8_t cfr_data_version;
u_int8_t chip_type;
u_int8_t pltform_type;
u_int32_t Reserved;
u_int32_t cfr_metadata_len;
union {
struct cfr_metadata_version_1 meta_v1;
struct cfr_metadata_version_2 meta_v2;
#ifdef WLAN_ENH_CFR_ENABLE
struct cfr_metadata_version_3 meta_v3;
#endif
struct cfr_metadata_version_4 meta_v4;
#ifdef WLAN_ENH_CFR_ENABLE
struct cfr_metadata_version_5 meta_v5;
#endif
} u;
} __attribute__ ((__packed__));