qcacmn: Add DBR support for standalone sounding CBF CV data

Added change,
1. Define new DBR module DBR_MODULE_CBF to handle TxBF
   standalone sounding CV data and corresponding ring
   initialization.
2. API to extract new meta data TLV added for CV data.
3. API to handle standalone sounding complete.

Change-Id: Id28c5561bb8b3bf08de7ddd9aa2365e2ae99f1c2
CRs-Fixed: 3415627
This commit is contained in:
Basamma Yakkanahalli
2023-03-05 06:04:17 +05:30
کامیت شده توسط Madan Koyyalamudi
والد aecdfaa78a
کامیت 031d51614e
12فایلهای تغییر یافته به همراه172 افزوده شده و 13 حذف شده

مشاهده پرونده

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 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
@@ -78,4 +79,18 @@ QDF_STATUS wmi_extract_dbr_buf_metadata(
uint8_t *evt_buf, uint8_t idx,
struct direct_buf_rx_metadata *param);
/**
* wmi_extract_dbr_buf_cv_metadata: Extract direct buffer TxBF cbf cv metadata
*
* @wmi_handle: WMI handle
* @evt_buf: Event buffer
* @idx: Index of the module for which capability is received
* @param: Pointer to direct buffer cv metadata
*
* Return: QDF status of operation
*/
QDF_STATUS wmi_extract_dbr_buf_cv_metadata(
wmi_unified_t wmi_handle,
uint8_t *evt_buf, uint8_t idx,
struct direct_buf_rx_cv_metadata *param);
#endif /* _WMI_UNIFIED_DBR_API_H_ */

مشاهده پرونده

@@ -79,7 +79,8 @@
* @pdev_id: Index of the pdev for which response is received
* @mod_id: Index of the module for which respone is received
* @num_buf_release_entry: Number of buffers released through event
* @num_meta_data_entry:
* @num_meta_data_entry: Number of meta data released
* @num_cv_meta_data_entry: Number of cv meta data released
* @dbr_entries: Pointer to direct buffer rx entry struct
*/
struct direct_buf_rx_rsp {
@@ -87,6 +88,7 @@ struct direct_buf_rx_rsp {
uint32_t mod_id;
uint32_t num_buf_release_entry;
uint32_t num_meta_data_entry;
uint32_t num_cv_meta_data_entry;
struct direct_buf_rx_entry *dbr_entries;
};
@@ -138,6 +140,30 @@ struct direct_buf_rx_metadata {
uint32_t ch_width;
};
/**
* struct direct_buf_rx_cv_metadata: direct buffer metadata for TxBF CV upload
*
* @is_valid: Set cv metadata is valid,
* false if sw_peer_id is invalid or FCS error
* @fb_type: Feedback type, 0 for SU 1 for MU
* @asnr_len: Average SNR length
* @asnr_offset: Average SNR offset
* @dsnr_len: Delta SNR length
* @dsnr_offset: Delta SNR offset
* @peer_mac: Peer macaddr
* @fb_params: Feedback params, [1:0] Nc [3:2] nss_num
*/
struct direct_buf_rx_cv_metadata {
uint32_t is_valid;
uint32_t fb_type;
uint16_t asnr_len;
uint16_t asnr_offset;
uint16_t dsnr_len;
uint16_t dsnr_offset;
struct qdf_mac_addr peer_mac;
uint32_t fb_params;
};
/**
* struct direct_buf_rx_entry: direct buffer rx release entry structure
*

مشاهده پرونده

@@ -5264,6 +5264,9 @@ typedef enum {
wmi_pdev_set_tgtr2p_table_eventid,
#ifdef QCA_MANUAL_TRIGGERED_ULOFDMA
wmi_manual_ul_ofdma_trig_feedback_eventid,
#endif
#ifdef QCA_STANDALONE_SOUNDING_TRIGGER
wmi_vdev_standalone_sound_complete_eventid,
#endif
wmi_events_max,
} wmi_conv_event_id;
@@ -6307,6 +6310,9 @@ typedef enum {
wmi_service_manual_ulofdma_trigger_support,
#endif
wmi_service_pre_rx_timeout,
#ifdef QCA_STANDALONE_SOUNDING_TRIGGER
wmi_service_standalone_sound,
#endif
wmi_services_max,
} wmi_conv_service_ids;
#define WMI_SERVICE_UNAVAILABLE 0xFFFF

مشاهده پرونده

@@ -2283,6 +2283,11 @@ QDF_STATUS (*extract_dbr_buf_metadata)(
wmi_unified_t wmi_handle,
uint8_t *evt_buf, uint8_t idx,
struct direct_buf_rx_metadata *param);
QDF_STATUS (*extract_dbr_buf_cv_metadata)(
wmi_unified_t wmi_handle,
uint8_t *evt_buf, uint8_t idx,
struct direct_buf_rx_cv_metadata *param);
#endif
QDF_STATUS (*extract_pdev_utf_event)(wmi_unified_t wmi_hdl,
@@ -2708,6 +2713,15 @@ QDF_STATUS(*extract_twt_session_stats_data)
);
#endif
#ifdef QCA_STANDALONE_SOUNDING_TRIGGER
QDF_STATUS (*extract_standalone_sounding_evt_params)
(
wmi_unified_t wmi_handle,
void *evt_buf,
struct wmi_host_standalone_sounding_evt_params *ss_params
);
#endif
#ifdef QCA_SUPPORT_CP_STATS
QDF_STATUS (*extract_cca_stats)(wmi_unified_t wmi_handle, void *evt_buf,
struct wmi_host_congestion_stats *stats);