qcacmn: Fix umac/cfr documentation

The kernel-doc script has identified multiple documentation issues in
umac/cfr, so fix them.

Change-Id: Ie459075a92719e4708021cb965fdbab1f682df24
CRs-Fixed: 3372808
This commit is contained in:
Jeff Johnson
2022-12-30 10:08:12 -08:00
committato da Madan Koyyalamudi
parent da575d47b2
commit 183cd295b8
6 ha cambiato i file con 210 aggiunte e 177 eliminazioni

Vedi File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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
@@ -26,9 +26,15 @@
#define MAX_CAPTURE_COUNT_VAL 0xFFFF
/**
* cfr_cwm_width : Capture bandwidth
* 0 : 20MHz, 1 : 40MHz, 2 : 80MHz, 3 : 160MHz, 4 : 80+80MHz
* 5 : 320MHz
* enum cfr_cwm_width - Capture bandwidth
* @CFR_CWM_WIDTH20: 20 MHz
* @CFR_CWM_WIDTH40: 40 MHz
* @CFR_CWM_WIDTH80: 80 MHz
* @CFR_CWM_WIDTH160: 160 MHz
* @CFR_CWM_WIDTH80_80: 80+80 MHz
* @CFR_CWM_WIDTH320: 320 MHz
* @CFR_CWM_WIDTH_MAX:
* @CFR_CWM_WIDTHINVALID:
*/
enum cfr_cwm_width {
CFR_CWM_WIDTH20,
@@ -43,11 +49,14 @@ enum cfr_cwm_width {
};
/**
* cfr_capture_method : Tx based CFR capture method
* enum cfr_capture_method - Tx based CFR capture method
* @CFR_CAPTURE_METHOD_QOS_NULL : Send QOS Null frame and capture CFR on ACK
* @CFR_CAPTURE_METHOD_QOS_NULL_WITH_PHASE: Send QoS Null frame with phase
* @CFR_CAPTURE_METHOD_PROBE_RESPONSE : Capture is enabled on probe response
* If node is not found, trigger unassociated capture.
* @CFR_CAPTURE_METHOD_LAST_VALID:
* @CFR_CAPTURE_METHOD_AUTO:
* @CFR_CAPTURE_METHOD_MAX:
*/
enum cfr_capture_method {
CFR_CAPTURE_METHOD_QOS_NULL = 0,
@@ -59,7 +68,7 @@ enum cfr_capture_method {
};
/**
* cfr_wlanconfig_param : CFR params used to store user provided inputs
* struct cfr_wlanconfig_param - CFR params used to store user provided inputs
* @bandwidth : CFR capture bandwidth
* @periodicity : CFR capture periodicity in milli seconds
* @capture_method : CFR capture method
@@ -67,7 +76,7 @@ enum cfr_capture_method {
* @ta : Tx address
* @ra : Rx Address
* @ta_mask: Tx address mask
* @ra_mask; Rx address mask
* @ra_mask: Rx address mask
* *** Controls for different capture modes in RCC ***
* @en_directed_ftm: Enable capture for directed RTT FTM Packet
* @en_directed_ndpa_ndp: Enable NDPA filter followed by directed NDP capture
@@ -85,44 +94,54 @@ enum cfr_capture_method {
* @en_ta_ra_filter_in_as_fp: Filter in frames as FP/MO in m_ta_ra_filter mode
* 0: as MO
* 1: as FP
* @rsvd0: reserved bits
*
* **** Fixed parameters ****
* @cap_dur: Capture duration
* @rsvd1: reserved bits
* @cap_intvl: Capture interval
* FW may limit the interval and duration during which HW may attempt
* 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
* @rsvd2: reserved bits
* @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
* @expected_mgmt_subtype/ expected_ctrl_subtype / expected_data_subtype:
* @rsvd3: reserved bits
* @expected_mgmt_subtype:
* @expected_ctrl_subtype:
* @expected_data_subtype:
* corresponds to mgmt/ ctrl/ data, all are bitmasks, in which each bit
* represents the corresponding type/ subtype value as per IEEE80211.
* @rsvd5: reserved bits
*
* @en_cfg and reset_cfg: This bitmap of 16 bits, indicates 16 groups.
* @en_cfg:
* @reset_cfg: This bitmap of 16 bits, indicates 16 groups.
* Valid entry should be in between 0 to 0xFFFF.
* Turning on a bit in en_cfg will enable MAC TA_RA filter
* for corresponding group; whereas turning on a bit in reset_cfg
* will reset all 9 params in the corresponding group to default values.
*
* @ul_mu_user_mask_lower, ul_mu_user_mask_upper :
* Since Cypress supports max bandwidth of 80Mhz, maximum number
* @ul_mu_user_mask_lower:
* @ul_mu_user_mask_upper:
* Since Cypress supports max bandwidth of 80 MHz, maximum number
* of users in a UL MU-MIMO transmission would be 37.
* mask_lower_32: Bits from 31 to 0 indicate user indices for 32 users.
* mask_upper_32: Bits from 0 to 4 indicate user indices from 33 to 37.
*
* @ freeze_tlv_delay_cnt_en, freeze_tlv_delay_cnt_thr :
* freeze_tlv_delay_cnt_thr will decide the threshold for MAC to drop the
* freeze TLV. freeze_tlv_delay_cnt_thr will only be applicable if
* freeze_tlv_delay_cnt_en is enabled.
* @freeze_tlv_delay_cnt_en: set to enable @freeze_tlv_delay_cnt_thr
* @freeze_tlv_delay_cnt_thr: the threshold for MAC to drop the
* freeze TLV. only be applicable if @freeze_tlv_delay_cnt_en is enabled.
* @rsvd6: reserved bits
*
* @cap_count: After capture_count+1 number of captures, MAC stops RCC and
* waits for capture_interval duration before enabling again
*
* @cap_intval_mode_sel: 0 indicates capture_duration mode, 1 indicates the
* capture_count mode.
* @rsvd7: reserved bits
*/
struct cfr_wlanconfig_param {
enum cfr_cwm_width bandwidth;

Vedi File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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
@@ -181,6 +181,9 @@ void tgt_cfr_stop_lut_age_timer(struct wlan_objmgr_pdev *pdev);
* tgt_cfr_default_ta_ra_cfg() - API to configure default values in TA_RA mode
* entries
* @pdev: pointer to pdev_object
* @rcc_param:
* @allvalid:
* @reset_cfg:
*
* Return: none
*/
@@ -196,7 +199,7 @@ void tgt_cfr_dump_lut_enh(struct wlan_objmgr_pdev *pdev);
/**
* tgt_cfr_rx_tlv_process() - Process PPDU status TLVs
* @pdev_obj: pointer to pdev_object
* @pdev: pointer to pdev_object
* @nbuf: pointer to cdp_rx_indication_ppdu
*/
void tgt_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf);

Vedi File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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,7 +62,7 @@ int ucfg_cfr_stop_capture(struct wlan_objmgr_pdev *pdev,
* unassociated clients
* @pdev: pointer to pdev object
* @unassoc_mac: mac address of un-associated client
* @cfr_params: config params to cfr capture
* @params: config params to cfr capture
*
* Return: status of start capture.
*/
@@ -108,7 +108,7 @@ int ucfg_cfr_get_timer(struct wlan_objmgr_pdev *pdev);
/**
* ucfg_cfr_stop_indication() - User space API to write cfr stop string
* @vdev - pointer to vdev object
* @vdev: pointer to vdev object
*
* Write stop string and indicate to up layer.
*

Vedi File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. 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
@@ -248,9 +248,9 @@ struct csi_cfr_header {
/**
* struct cfr_capture_params - structure to store cfr config param
* bandwidth: bandwidth of capture
* period: period of capture
* method: enum of method being followed to capture cfr data. 0-QoS null data
* @bandwidth: bandwidth of capture
* @period: period of capture
* @method: enum of method being followed to capture cfr data. 0-QoS null data
*/
struct cfr_capture_params {
u_int8_t bandwidth;
@@ -260,12 +260,13 @@ struct cfr_capture_params {
/**
* struct psoc_cfr - private psoc object for cfr
* psoc_obj: pointer to psoc object
* is_cfr_capable: flag to determine if cfr is enabled or not
* is_cap_interval_mode_sel_support: flag to determine if target supports both
* capture_count and capture_duration modes
* with a nob provided to configure
* is_mo_marking_support: flag to determine if MO marking is supported or not
* @psoc_obj: pointer to psoc object
* @is_cfr_capable: flag to determine if cfr is enabled or not
* @is_cap_interval_mode_sel_support: flag to determine if target supports both
* capture_count and capture_duration modes
* with a nob provided to configure
* @is_mo_marking_support: flag to determine if MO marking is supported or not
* @is_aoa_for_rcc_support:
*/
struct psoc_cfr {
struct wlan_objmgr_psoc *psoc_obj;
@@ -279,10 +280,10 @@ struct psoc_cfr {
/**
* struct cfr_wmi_host_mem_chunk - wmi mem chunk related
* vaddr: pointer to virtual address
* paddr: physical address
* len: len of the mem chunk allocated
* req_id: reqid related to the mem chunk
* @vaddr: pointer to virtual address
* @paddr: physical address
* @len: len of the mem chunk allocated
* @req_id: reqid related to the mem chunk
*/
struct cfr_wmi_host_mem_chunk {
uint32_t *vaddr;
@@ -324,24 +325,24 @@ struct whal_cfir_dma_hdr {
/**
* struct look_up_table - Placeholder for 2 asynchronous events (DBR and
* TXRX event)
* dbr_recv: Indicates whether WMI for DBR completion is received or not
* tx_recv: Indicates whether WMI for TX completion (or) WDI event for RX
* @dbr_recv: Indicates whether WMI for DBR completion is received or not
* @tx_recv: Indicates whether WMI for TX completion (or) WDI event for RX
* status is received or not
* data: pointer to CFR data that ucode DMAs to host memory
* data_len: length of CFR data DMAed by ucode
* dbr_ppdu_id: PPDU id retrieved from DBR completion WMI event
* tx_ppdu_id: PPDU id retrieved from WMI TX completion event (or) PPDU status
* @data: pointer to CFR data that ucode DMAs to host memory
* @data_len: length of CFR data DMAed by ucode
* @dbr_ppdu_id: PPDU id retrieved from DBR completion WMI event
* @tx_ppdu_id: PPDU id retrieved from WMI TX completion event (or) PPDU status
* TLV
* dbr_address: Physical address of the CFR data dump retrieved from DBR
* @dbr_address: Physical address of the CFR data dump retrieved from DBR
* completion WMI event
* tx_address1: Physical address of the CFR data from TX/RX event
* tx_address2: Physical address of the CFR data from TX/RX event
* csi_cfr_header: CFR header constructed by host
* whal_cfir_enhanced_hdr: CFR header constructed by ucode
* tx_tstamp: Timestamp when TX/RX event was received
* dbr_tstamp: Timestamp when DBR completion event was received
* header_length: Length of header DMAed by ucode in words
* payload_length: Length of CFR payload
* @tx_address1: Physical address of the CFR data from TX/RX event
* @tx_address2: Physical address of the CFR data from TX/RX event
* @header: CFR header constructed by host
* @dma_hdr: CFR header constructed by ucode
* @txrx_tstamp: Timestamp when TX/RX event was received
* @dbr_tstamp: Timestamp when DBR completion event was received
* @header_length: Length of header DMAed by ucode in words
* @payload_length: Length of CFR payload
*/
struct look_up_table {
bool dbr_recv;
@@ -371,34 +372,36 @@ struct unassoc_pool_entry {
/**
* struct ta_ra_cfr_cfg - structure to store configuration of 16 groups in
* M_TA_RA mode
* filter_group_id: Filter group number for which the below filters needs to be
* @filter_group_id: Filter group number for which the below filters needs to be
* applied
* bw: CFR capture will be done for packets matching the bandwidths specified
* @bw: CFR capture will be done for packets matching the bandwidths specified
* within this bitmask
* nss: CFR capture will be done for packets matching the Nss specified within
* @nss: CFR capture will be done for packets matching the Nss specified within
* this bitmask
* valid_ta: Ta_addr is valid if set
* valid_ta_mask: Ta_addr_mask is valid if set
* valid_ra: Ra_addr is valid if set
* valid_ra_mask: Ra_addr_mask is valid if set
* valid_bw_mask: Bandwidth is valid if set
* valid_nss_mask: NSS is valid if set
* valid_mgmt_subtype: Mgmt_subtype is valid if set
* valid_ctrl_subtype: Ctrl_subtype is valid if set
* valid_data_subtype: Data_subtype is valid if set
* mgmt_subtype_filter: Managments Packets matching the subtype filter
* @rsvd0: reserved bits
* @valid_ta: Ta_addr is valid if set
* @valid_ta_mask: Ta_addr_mask is valid if set
* @valid_ra: Ra_addr is valid if set
* @valid_ra_mask: Ra_addr_mask is valid if set
* @valid_bw_mask: Bandwidth is valid if set
* @valid_nss_mask: NSS is valid if set
* @valid_mgmt_subtype: Mgmt_subtype is valid if set
* @valid_ctrl_subtype: Ctrl_subtype is valid if set
* @valid_data_subtype: Data_subtype is valid if set
* @rsvd1: reserved bits
* @mgmt_subtype_filter: Managments Packets matching the subtype filter
* categories will be filtered in by MAC for CFR capture.
* ctrl_subtype_filter: Control Packets matching the subtype filter
* @ctrl_subtype_filter: Control Packets matching the subtype filter
* categories will be filtered in by MAC for CFR capture.
* data_subtype_filter: Data Packets matching the subtype filter
* @data_subtype_filter: Data Packets matching the subtype filter
* categories will be filtered in by MAC for CFR capture.
* tx_addr: Packets whose transmitter address matches (tx_addr & tx_addr_mask)
* @tx_addr: Packets whose transmitter address matches (tx_addr & tx_addr_mask)
* will be filtered in by MAC
* tx_addr_mask: Packets whose transmitter address matches (tx_addr &
* @tx_addr_mask: Packets whose transmitter address matches (tx_addr &
* tx_addr_mask) will be filtered in by MAC
* rx_addr: Packets whose receiver address matches (rx_addr & rx_addr_mask)
* @rx_addr: Packets whose receiver address matches (rx_addr & rx_addr_mask)
* will be filtered in by MAC
* rx_addr_mask: Packets whose receiver address matches (rx_addr &
* @rx_addr_mask: Packets whose receiver address matches (rx_addr &
* rx_addr_mask) will be filtered in by MAC
*/
struct ta_ra_cfr_cfg {
@@ -428,38 +431,41 @@ struct ta_ra_cfr_cfg {
/**
* struct cfr_rcc_param - structure to store cfr config param
* pdev_id: pdev_id for identifying the MAC
* vdev_id: vdev_id of current rcc configures
* srng_id: srng id of current rcc configures
* capture_duration: Capture Duration field for which CFR capture has to happen,
* in microsecond units
* capture_interval: Capture interval field which is time in between
* @pdev_id: pdev_id for identifying the MAC
* @vdev_id: vdev_id of current rcc configures
* @srng_id: srng id of current rcc configures
* @capture_duration: Capture Duration field for which CFR capture has to
* happen, in microsecond units
* @capture_interval: Capture interval field which is time in between
* consecutive CFR capture, in microsecond units
* ul_mu_user_mask_lower: Bitfields indicates which of the users in the current
* @ul_mu_user_mask_lower: Bitfields indicates which of the users in the current
* UL MU transmission are enabled for CFR capture.
* ul_mu_user_mask_upper: This is continuation of the above lower mask.
* freeze_tlv_delay_cnt_en: Enable Freeze TLV delay counter in MAC
* freeze_tlv_delay_cnt_thr: Indicates the number of consecutive Rx packets to
* @ul_mu_user_mask_upper: This is continuation of the above lower mask.
* @freeze_tlv_delay_cnt_en: Enable Freeze TLV delay counter in MAC
* @freeze_tlv_delay_cnt_thr: Indicates the number of consecutive Rx packets to
* be skipped before CFR capture is enabled again.
* filter_group_bitmap: Bitfields set indicates which of the CFR group config is
* enabled
* m_directed_ftm: Filter Directed FTM ACK frames for CFR capture
* m_all_ftm_ack: Filter All FTM ACK frames for CFR capture
* m_ndpa_ndp_directed: Filter NDPA NDP Directed Frames for CFR capture
* m_ndpa_ndp_all: Filter all NDPA NDP for CFR capture
* m_ta_ra_filter: Filter Frames based on TA/RA/Subtype as provided in CFR Group
* config
* m_all_packet: Filter in All packets for CFR Capture
* en_ta_ra_filter_in_as_fp: Filter in frames as FP/MO in m_ta_ra_filter mode
* num_grp_tlvs: Indicates the number of groups in M_TA_RA mode, that have
* @rsvd0: reserved bits
* @filter_group_bitmap: Bitfields set indicates which of the CFR group config
* is enabled
* @m_directed_ftm: Filter Directed FTM ACK frames for CFR capture
* @m_all_ftm_ack: Filter All FTM ACK frames for CFR capture
* @m_ndpa_ndp_directed: Filter NDPA NDP Directed Frames for CFR capture
* @m_ndpa_ndp_all: Filter all NDPA NDP for CFR capture
* @m_ta_ra_filter: Filter Frames based on TA/RA/Subtype as provided in CFR
* Group config
* @m_all_packet: Filter in All packets for CFR Capture
* @en_ta_ra_filter_in_as_fp: Filter in frames as FP/MO in m_ta_ra_filter mode
* @rsvd1: reserved bits
* @num_grp_tlvs: Indicates the number of groups in M_TA_RA mode, that have
* changes in the current commit session, use to construct WMI group TLV(s)
* curr: Placeholder for M_TA_RA group config in current commit session
* modified_in_curr_session: Bitmap indicating number of groups in M_TA_RA mode
* @curr: Placeholder for M_TA_RA group config in current commit session
* @modified_in_curr_session: Bitmap indicating number of groups in M_TA_RA mode
* that have changed in current commit session.
* capture_count: After capture_count+1 number of captures, MAC stops RCC and
* @capture_count: After capture_count+1 number of captures, MAC stops RCC and
* waits for capture_interval duration before enabling again
* capture_intval_mode_sel: 0 indicates capture_duration mode, 1 indicates the
* @capture_intval_mode_sel: 0 indicates capture_duration mode, 1 indicates the
* capture_count mode.
* @rsvd2: reserved bits
*/
struct cfr_rcc_param {
uint8_t pdev_id;
@@ -493,9 +499,9 @@ struct cfr_rcc_param {
/**
* struct nl_event_cb - nl event cb for cfr data
* vdev_id: vdev id
* pid: PID to which data is sent via unicast nl event
* cfr_nl_cb: callback to send nl event
* @vdev_id: vdev id
* @pid: PID to which data is sent via unicast nl event
* @cfr_nl_cb: callback to send nl event
*/
struct nl_event_cb {
uint8_t vdev_id;
@@ -506,63 +512,65 @@ struct nl_event_cb {
/**
* struct pdev_cfr - private pdev object for cfr
* pdev_obj: pointer to pdev object
* is_cfr_capable: flag to determine if cfr is enabled or not
* cfr_timer_enable: flag to enable/disable timer
* chip_type: chip type which is defined in enum cfrradiotype
* cfr_mem_chunk: Region of memory used for storing cfr data
* cfr_max_sta_count: Maximum stations supported in one-shot capture mode
* num_subbufs: No. of sub-buffers used in relayfs
* subbuf_size: Size of sub-buffer used in relayfs
* chan_ptr: Channel in relayfs
* dir_ptr: Parent directory of relayfs file
* lut: lookup table used to store asynchronous DBR and TX/RX events for
* @pdev_obj: pointer to pdev object
* @is_cfr_capable: flag to determine if cfr is enabled or not
* @cfr_timer_enable: flag to enable/disable timer
* @chip_type: chip type which is defined in enum cfrradiotype
* @cfr_mem_chunk: Region of memory used for storing cfr data
* @cfr_max_sta_count: Maximum stations supported in one-shot capture mode
* @cfr_current_sta_count:
* @num_subbufs: No. of sub-buffers used in relayfs
* @subbuf_size: Size of sub-buffer used in relayfs
* @chan_ptr: Channel in relayfs
* @dir_ptr: Parent directory of relayfs file
* @lut: lookup table used to store asynchronous DBR and TX/RX events for
* correlation
* lut_num: Number of lut
* dbr_buf_size: Size of DBR completion buffer
* dbr_num_bufs: No. of DBR completions
* tx_evt_cnt: No. of TX completion events till CFR stop was issued
* total_tx_evt_cnt: No. of Tx completion events since wifi was up
* dbr_evt_cnt: No. of WMI DBR completion events
* release_cnt: No. of CFR data buffers relayed to userspace
* tx_peer_status_cfr_fail: No. of tx events without tx status set to
* @lut_num: Number of lut
* @dbr_buf_size: Size of DBR completion buffer
* @dbr_num_bufs: No. of DBR completions
* @max_mu_users: Max number of MU users
* @tx_evt_cnt: No. of TX completion events till CFR stop was issued
* @total_tx_evt_cnt: No. of Tx completion events since wifi was up
* @dbr_evt_cnt: No. of WMI DBR completion events
* @release_cnt: No. of CFR data buffers relayed to userspace
* @tx_peer_status_cfr_fail: No. of tx events without tx status set to
* PEER_CFR_CAPTURE_EVT_STATUS_MASK indicating CFR capture failure on a peer.
* tx_evt_status_cfr_fail: No. of tx events without tx status set to
* @tx_evt_status_cfr_fail: No. of tx events without tx status set to
* CFR_TX_EVT_STATUS_MASK indicating CFR capture status failure.
* tx_dbr_cookie_lookup_fail: No. of dbr cookie lookup failures during tx event
* @tx_dbr_cookie_lookup_fail: No. of dbr cookie lookup failures during tx event
* process.
* rcc_param: Structure to store CFR config for the current commit session
* global: Structure to store accumulated CFR config
* rx_tlv_evt_cnt: Number of CFR WDI events from datapath
* lut_age_timer: Timer to flush pending TXRX/DBR events in lookup table
* lut_timer_init: flag to determine if lut_age_timer is initialized or not
* is_cfr_rcc_capable: Flag to determine if RCC is enabled or not.
* flush_dbr_cnt: No. of un-correlated DBR completions flushed when a newer PPDU
* is correlated successfully with newer DBR completion
* invalid_dma_length_cnt: No. of buffers for which CFR DMA header length (or)
* @rcc_param: Structure to store CFR config for the current commit session
* @global: Structure to store accumulated CFR config
* @rx_tlv_evt_cnt: Number of CFR WDI events from datapath
* @lut_age_timer: Timer to flush pending TXRX/DBR events in lookup table
* @lut_timer_init: flag to determine if lut_age_timer is initialized or not
* @is_cfr_rcc_capable: Flag to determine if RCC is enabled or not.
* @flush_dbr_cnt: No. of un-correlated DBR completions flushed when a newer
* PPDU is correlated successfully with newer DBR completion
* @invalid_dma_length_cnt: No. of buffers for which CFR DMA header length (or)
* data length was invalid
* flush_timeout_dbr_cnt: No. of DBR completion flushed out in ageout logic
* clear_txrx_event: No. of PPDU status TLVs over-written in LUT
* last_success_tstamp: DBR timestamp which indicates that both DBR and TX/RX
* @flush_timeout_dbr_cnt: No. of DBR completion flushed out in ageout logic
* @clear_txrx_event: No. of PPDU status TLVs over-written in LUT
* @last_success_tstamp: DBR timestamp which indicates that both DBR and TX/RX
* events have been received successfully.
* cfr_dma_aborts: No. of CFR DMA aborts in ucode
* is_cap_interval_mode_sel_support: flag to determine if target supports both
* is_mo_marking_support: flag to determine if MO marking is supported or not
* is_aoa_for_rcc_support: flag to determine if AoA is available for RCC or not
* @cfr_dma_aborts: No. of CFR DMA aborts in ucode
* @is_cap_interval_mode_sel_support: flag to determine if target supports both
* @is_mo_marking_support: flag to determine if MO marking is supported or not
* @is_aoa_for_rcc_support: flag to determine if AoA is available for RCC or not
* capture_count and capture_duration modes with a nob provided to configure.
* unassoc_pool: Pool of un-associated clients used when capture method is
* @unassoc_pool: Pool of un-associated clients used when capture method is
* CFR_CAPTURE_METHOD_PROBE_RESPONSE
* nl_cb: call back to register for nl event for cfr data
* lut_lock: Lock to protect access to cfr lookup table
* is_prevent_suspend: CFR wake lock acquired or not
* wake_lock: wake lock for cfr
* runtime_lock: runtime lock for cfr
* freq: current operating freq for which AoA Phase delta values reported by FW
* max_aoa_chains: Indicate the max number of chains to which target supports
* @nl_cb: call back to register for nl event for cfr data
* @lut_lock: Lock to protect access to cfr lookup table
* @is_prevent_suspend: CFR wake lock acquired or not
* @wake_lock: wake lock for cfr
* @runtime_lock: runtime lock for cfr
* @freq: current operating freq for which AoA Phase delta values reported by FW
* @max_aoa_chains: Indicate the max number of chains to which target supports
* AoA data.
* phase_delta: per chain phase delta associated with 62 gain values reported by
* FW via WMI_PDEV_AOA_PHASEDELTA_EVENTID.
* ibf_cal_val: Per chain IBF cal value from FW.
* @phase_delta: per chain phase delta associated with 62 gain values reported
* by FW via WMI_PDEV_AOA_PHASEDELTA_EVENTID.
* @ibf_cal_val: Per chain IBF cal value from FW.
*/
/*
* To be extended if we get more capbality info
@@ -627,20 +635,21 @@ struct pdev_cfr {
/**
* enum cfr_capt_status - CFR capture status
* @PEER_CFR_CAPTURE_DISABLE: Capture not in progress
* @PEER_CFR_CAPTURE_ENABLE: Capture in progress
*/
enum cfr_capt_status {
/* Capture not in progress */
PEER_CFR_CAPTURE_DISABLE,
/* Capture in progress */
PEER_CFR_CAPTURE_ENABLE,
};
/**
* struct peer_cfr - private peer object for cfr
* peer_obj: pointer to peer_obj
* request: Type of request (start/stop)
* bandwidth: bandwitdth of capture for this peer
* capture_method: enum determining type of cfr data capture.
* @peer_obj: pointer to peer_obj
* @request: Type of request (start/stop)
* @bandwidth: bandwitdth of capture for this peer
* @period: period of capture for this peer
* @capture_method: enum determining type of cfr data capture.
* 0-Qos null data
*/
struct peer_cfr {
@@ -707,7 +716,7 @@ uint8_t count_set_bits(unsigned long value);
/**
* wlan_cfr_is_feature_disabled() - Check if cfr feature is disabled
* @pdev - the physical device object.
* @pdev: the physical device object.
*
* Return : true if cfr is disabled, else false.
*/
@@ -717,7 +726,7 @@ bool wlan_cfr_is_feature_disabled(struct wlan_objmgr_pdev *pdev);
/**
* wlan_cfr_rx_tlv_process() - Process PPDU status TLVs and store info in
* lookup table
* @pdev_obj: PDEV object
* @pdev: PDEV object
* @nbuf: ppdu info
*
* Return: none