From 550f97cf8a73486a4df5ae2b9ebdcf68220c98e0 Mon Sep 17 00:00:00 2001 From: Shwetha G K Date: Thu, 29 Apr 2021 16:40:12 +0530 Subject: [PATCH] qcacmn: Move CFR to common project Move CFR to common project and rename the files as it will be shared with other targets as well. Fix checkpatch errors too. Change-Id: I66481848036212aedab74c9c18848070ac1a3511 --- .../cfr/inc/target_if_cfr_dbr.h | 6 +- target_if/cfr/src/target_if_cfr.c | 2 +- .../cfr/src/target_if_cfr_dbr.c | 62 ++++++----- .../cfr}/src/target_if_cfr_wifi2_0.c | 104 +++++++++--------- 4 files changed, 87 insertions(+), 87 deletions(-) rename cfr/inc/target_if_cfr_8074v2.h => target_if/cfr/inc/target_if_cfr_dbr.h (94%) rename cfr/src/target_if_cfr_8074v2.c => target_if/cfr/src/target_if_cfr_dbr.c (95%) rename {cfr => target_if/cfr}/src/target_if_cfr_wifi2_0.c (80%) diff --git a/cfr/inc/target_if_cfr_8074v2.h b/target_if/cfr/inc/target_if_cfr_dbr.h similarity index 94% rename from cfr/inc/target_if_cfr_8074v2.h rename to target_if/cfr/inc/target_if_cfr_dbr.h index ac3a8f5932..1d3d0d26a4 100644 --- a/cfr/inc/target_if_cfr_8074v2.h +++ b/target_if/cfr/inc/target_if_cfr_dbr.h @@ -1,5 +1,5 @@ /* - * 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 @@ -16,8 +16,8 @@ * PERFORMANCE OF THIS SOFTWARE. */ -#ifndef _TARGET_IF_CFR_8072V2_H_ -#define _TARGET_IF_CFR_8072V2_H_ +#ifndef _TARGET_IF_CFR_DBR_H_ +#define _TARGET_IF_CFR_DBR_H_ #define STREAMFS_MAX_SUBBUF_8S 8500 #define STREAMFS_NUM_SUBBUF_8S 255 diff --git a/target_if/cfr/src/target_if_cfr.c b/target_if/cfr/src/target_if_cfr.c index 43181fca46..369ea3840c 100644 --- a/target_if/cfr/src/target_if_cfr.c +++ b/target_if/cfr/src/target_if_cfr.c @@ -32,7 +32,7 @@ #include "target_if_cfr_adrastea.h" #include "wlan_reg_services_api.h" #else -#include +#include #endif int target_if_cfr_stop_capture(struct wlan_objmgr_pdev *pdev, diff --git a/cfr/src/target_if_cfr_8074v2.c b/target_if/cfr/src/target_if_cfr_dbr.c similarity index 95% rename from cfr/src/target_if_cfr_8074v2.c rename to target_if/cfr/src/target_if_cfr_dbr.c index edc5abbb24..96db013f65 100644 --- a/cfr/src/target_if_cfr_8074v2.c +++ b/target_if/cfr/src/target_if_cfr_dbr.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #ifdef DIRECT_BUF_RX_ENABLE #include #endif @@ -40,6 +40,7 @@ int dump_lut(struct wlan_objmgr_pdev *pdev) struct pdev_cfr *pdev_cfrobj; struct look_up_table *lut = NULL; int i = 0; + pdev_cfrobj = wlan_objmgr_pdev_get_comp_private_obj(pdev, WLAN_UMAC_COMP_CFR); if (!pdev_cfrobj) { @@ -133,11 +134,12 @@ int correlate_and_relay(struct wlan_objmgr_pdev *pdev, uint32_t cookie, struct look_up_table *lut, uint8_t module_id) { struct pdev_cfr *pdev_cfrobj; + int status = STATUS_ERROR; if (module_id > 1) { cfr_err("Received request with invalid mod id. Investigate!!"); QDF_ASSERT(0); - return STATUS_ERROR; + return status; } pdev_cfrobj = wlan_objmgr_pdev_get_comp_private_obj(pdev, @@ -151,10 +153,10 @@ int correlate_and_relay(struct wlan_objmgr_pdev *pdev, uint32_t cookie, lut->dbr_recv = true; } - if ((lut->dbr_recv == true) && (lut->tx_recv == true)) { + if (lut->dbr_recv && lut->tx_recv) { if (lut->dbr_ppdu_id == lut->tx_ppdu_id) { pdev_cfrobj->release_cnt++; - return STATUS_STREAM_AND_RELEASE; + status = STATUS_STREAM_AND_RELEASE; } else { /* * When there is a ppdu id mismatch, discard the other @@ -167,7 +169,8 @@ int correlate_and_relay(struct wlan_objmgr_pdev *pdev, uint32_t cookie, lut->data = NULL; lut->data_len = 0; lut->dbr_ppdu_id = 0; - qdf_mem_zero(&lut->dbr_address, sizeof(lut->dbr_address)); + qdf_mem_zero(&lut->dbr_address, + sizeof(lut->dbr_address)); } else if (module_id == CORRELATE_DBR_MODULE_ID) { cfr_debug("Received new dbr event for same cookie %u", cookie); @@ -192,18 +195,19 @@ int correlate_and_relay(struct wlan_objmgr_pdev *pdev, uint32_t cookie, dump_lut(pdev); dump_dma_hdr(&lut->dma_hdr, 1); cfr_err("correlation_info1: 0x%08x correlation_info2 0x%08x", - lut->tx_address1, lut->tx_address2); + lut->tx_address1, lut->tx_address2); } - - return STATUS_HOLD; + status = STATUS_HOLD; } } else { - return STATUS_HOLD; + status = STATUS_HOLD; } + + return status; } bool cfr_dbr_event_handler(struct wlan_objmgr_pdev *pdev, - struct direct_buf_rx_data *payload) + struct direct_buf_rx_data *payload) { uint8_t *data = NULL; uint32_t cookie = 0; @@ -214,6 +218,7 @@ bool cfr_dbr_event_handler(struct wlan_objmgr_pdev *pdev, struct look_up_table *lut = NULL; struct csi_cfr_header *header = NULL; struct wlan_lmac_if_rx_ops *rx_ops; + bool ret = true; if ((!pdev) || (!payload)) { cfr_err("pdev or payload is null"); @@ -272,21 +277,23 @@ bool cfr_dbr_event_handler(struct wlan_objmgr_pdev *pdev, return true; } - status = rx_ops->cfr_rx_ops.cfr_info_send(pdev, &lut->header, - sizeof(struct csi_cfr_header), - lut->data, lut->data_len, &end_magic, 4); + status = rx_ops->cfr_rx_ops.cfr_info_send + (pdev, &lut->header, + sizeof(struct csi_cfr_header), + lut->data, lut->data_len, + &end_magic, 4); release_lut_entry(pdev, lut); cfr_debug("Data sent to upper layers, released look up table"); - return true; + ret = true; } else if (status == STATUS_HOLD) { cfr_debug("Tx event not received yet. Buffer is not released"); - return false; + ret = false; } else { cfr_err("Correlation returned invalid status!!"); - return true; + ret = true; } - return true; + return ret; } void dump_cfr_peer_tx_event(wmi_cfr_peer_tx_event_param *event) @@ -316,7 +323,7 @@ void dump_cfr_peer_tx_event(wmi_cfr_peer_tx_event_param *event) cfr_debug("rtt_cfo_measurement: %d\n", event->cfo_measurement); - cfr_debug("rx_start_ts: %u \n", event->rx_start_ts); + cfr_debug("rx_start_ts: %u\n", event->rx_start_ts); cfr_debug("agc_gain0: %u agc_gain1: %u agc_gain2: %u agc_gain3: %u\n" "agc_gain4: %u agc_gain5: %u agc_gain6: %u agc_gain7: %u\n", @@ -327,14 +334,13 @@ void dump_cfr_peer_tx_event(wmi_cfr_peer_tx_event_param *event) } void prepare_cfr_header_txstatus(wmi_cfr_peer_tx_event_param *tx_evt_param, - struct csi_cfr_header *header) + struct csi_cfr_header *header) { target_if_cfr_fill_header(header, false, target_type, false); header->u.meta_v4.status = 0; /* failure */ header->u.meta_v4.length = 0; qdf_mem_copy(&header->u.meta_v4.peer_addr[0], &tx_evt_param->peer_mac_addr.bytes[0], QDF_MAC_ADDR_SIZE); - } static int @@ -382,7 +388,6 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) return -EINVAL; } - retval = wmi_extract_cfr_peer_tx_event_param(wmi_handle, data, &tx_evt_param); @@ -411,7 +416,7 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) } retval = wlan_objmgr_pdev_try_get_ref(pdev, WLAN_CFR_ID); - if (retval != QDF_STATUS_SUCCESS){ + if (retval != QDF_STATUS_SUCCESS) { cfr_err("failed to get pdev reference"); wlan_objmgr_psoc_release_ref(psoc, WLAN_CFR_ID); wlan_objmgr_vdev_release_ref(vdev, WLAN_CFR_ID); @@ -451,7 +456,8 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) } buf_addr_temp = (tx_evt_param.correlation_info_2 & 0x0f); - buf_addr = (tx_evt_param.correlation_info_1 |((uint64_t)buf_addr_temp << 32)); + buf_addr = (tx_evt_param.correlation_info_1 | + ((uint64_t)buf_addr_temp << 32)); if (target_if_dbr_cookie_lookup(pdev, DBR_MODULE_CFR, buf_addr, &cookie, 0)) { @@ -538,7 +544,6 @@ done: wlan_objmgr_vdev_release_ref(vdev, WLAN_CFR_ID); wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID); return status; - } #else static int @@ -661,7 +666,7 @@ target_if_dbr_get_ring_params(struct wlan_objmgr_pdev *pdev) dbr_tx_ops = &tx_ops->dbr_tx_ops; - if(dbr_tx_ops->direct_buf_rx_get_ring_params) + if (dbr_tx_ops->direct_buf_rx_get_ring_params) dbr_tx_ops->direct_buf_rx_get_ring_params(pdev, param, DBR_MODULE_CFR, 0); return param; @@ -687,7 +692,7 @@ target_if_dbr_get_ring_params(struct wlan_objmgr_pdev *pdev) #endif QDF_STATUS cfr_8074v2_init_pdev(struct wlan_objmgr_psoc *psoc, - struct wlan_objmgr_pdev *pdev) + struct wlan_objmgr_pdev *pdev) { QDF_STATUS status; struct pdev_cfr *pdev_cfrobj; @@ -719,14 +724,13 @@ QDF_STATUS cfr_8074v2_init_pdev(struct wlan_objmgr_psoc *psoc, } QDF_STATUS cfr_8074v2_deinit_pdev(struct wlan_objmgr_psoc *psoc, - struct wlan_objmgr_pdev *pdev) + struct wlan_objmgr_pdev *pdev) { QDF_STATUS status; status = target_if_unregister_to_dbr(pdev); - if (QDF_STATUS_SUCCESS != status) { + if (QDF_STATUS_SUCCESS != status) cfr_err("Failed to register with dbr"); - } status = target_if_unregister_tx_completion_event_handler(psoc); return status; diff --git a/cfr/src/target_if_cfr_wifi2_0.c b/target_if/cfr/src/target_if_cfr_wifi2_0.c similarity index 80% rename from cfr/src/target_if_cfr_wifi2_0.c rename to target_if/cfr/src/target_if_cfr_wifi2_0.c index 181f8ffc29..3896745795 100644 --- a/cfr/src/target_if_cfr_wifi2_0.c +++ b/target_if/cfr/src/target_if_cfr_wifi2_0.c @@ -44,7 +44,6 @@ #define NUM_SUBBUF_4S 1100 #define MAX_CFR_CLIENTS_LEGACY 10 - static u_int8_t * target_if_mac_addr_deswizzle(u_int8_t *tgt_mac_addr, u_int8_t *buffer) { @@ -75,7 +74,8 @@ target_if_mac_addr_deswizzle(u_int8_t *tgt_mac_addr, u_int8_t *buffer) } QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, - uint32_t *msg_word, size_t msg_len) + uint32_t *msg_word, + size_t msg_len) { struct wlan_objmgr_pdev *pdev; struct wlan_objmgr_psoc *psoc; @@ -87,7 +87,6 @@ QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, u_int32_t cfr_dump_len, cfr_dump_index; uint32_t status, target_type; void *prindex = NULL; - struct csi_cfr_header cfr_header = {0}; u_int32_t end_magic = 0xBEAFDEAD; @@ -107,7 +106,7 @@ QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, } pa = wlan_objmgr_pdev_get_comp_private_obj(pdev, WLAN_UMAC_COMP_CFR); - if (pa == NULL) { + if (!pa) { cfr_err("pdev_cfr is NULL\n"); wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID); return QDF_STATUS_E_FAILURE; @@ -133,56 +132,55 @@ QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, target_if_cfr_fill_header(&cfr_header, true, target_type, false); switch (cfr_msg_type) { - - u_int8_t *peeraddr; + u_int8_t *peeraddr; case HTT_PEER_CFR_CAPTURE_MSG_TYPE_1: - - cfr_header.u.meta_v1.status = + cfr_header.u.meta_v1.status = HTT_T2H_CFR_DUMP_TYPE1_STATUS_GET(*(msg_word + 2)); - cfr_cap_status = cfr_header.u.meta_v1.status; - cfr_header.u.meta_v1.capture_bw = + cfr_cap_status = cfr_header.u.meta_v1.status; + cfr_header.u.meta_v1.capture_bw = HTT_T2H_CFR_DUMP_TYPE1_CAP_BW_GET(*(msg_word + 2)); - cfr_header.u.meta_v1.capture_mode = + cfr_header.u.meta_v1.capture_mode = HTT_T2H_CFR_DUMP_TYPE1_MODE_GET(*(msg_word + 2)); - cfr_header.u.meta_v1.sts_count = + cfr_header.u.meta_v1.sts_count = HTT_T2H_CFR_DUMP_TYPE1_STS_GET(*(msg_word + 2)); - cfr_header.u.meta_v1.channel_bw = + cfr_header.u.meta_v1.channel_bw = HTT_T2H_CFR_DUMP_TYPE1_CHAN_BW_GET(*(msg_word + 2)); - cfr_header.u.meta_v1.capture_type = + cfr_header.u.meta_v1.capture_type = HTT_T2H_CFR_DUMP_TYPE1_CAP_TYPE_GET(*(msg_word + 2)); - cfr_vdev_id = HTT_T2H_CFR_DUMP_TYPE1_VDEV_ID_GET(*(msg_word + 2)); + cfr_vdev_id = HTT_T2H_CFR_DUMP_TYPE1_VDEV_ID_GET + (*(msg_word + 2)); - vdev = wlan_objmgr_get_vdev_by_id_from_pdev(pdev, cfr_vdev_id, - WLAN_CFR_ID); - if (vdev == NULL) - cfr_header.u.meta_v1.num_rx_chain = 0; - else { - cfr_header.u.meta_v1.num_rx_chain = + vdev = wlan_objmgr_get_vdev_by_id_from_pdev(pdev, cfr_vdev_id, + WLAN_CFR_ID); + if (!vdev) { + cfr_header.u.meta_v1.num_rx_chain = 0; + } else { + cfr_header.u.meta_v1.num_rx_chain = wlan_vdev_mlme_get_rxchainmask(vdev); - wlan_objmgr_vdev_release_ref(vdev, WLAN_CFR_ID); - } + wlan_objmgr_vdev_release_ref(vdev, WLAN_CFR_ID); + } - peeraddr = target_if_mac_addr_deswizzle((u_int8_t *) (msg_word+3), - cfr_header.u.meta_v1.peer_addr); + peeraddr = target_if_mac_addr_deswizzle + ((u_int8_t *)(msg_word + 3), + cfr_header.u.meta_v1.peer_addr); - memcpy(cfr_header.u.meta_v1.peer_addr, peeraddr, 6); + memcpy(cfr_header.u.meta_v1.peer_addr, peeraddr, 6); - cfr_dump_index = *(msg_word + 5); - cfr_header.u.meta_v1.length = *(msg_word + 6); - cfr_dump_len = cfr_header.u.meta_v1.length; - cfr_header.u.meta_v1.timestamp = *(msg_word + 7); - cfr_header.u.meta_v1.prim20_chan = *(msg_word + 9); - cfr_header.u.meta_v1.center_freq1 = *(msg_word + 10); - cfr_header.u.meta_v1.center_freq2 = *(msg_word + 11); - cfr_header.u.meta_v1.phy_mode = *(msg_word + 12); - - break; + cfr_dump_index = *(msg_word + 5); + cfr_header.u.meta_v1.length = *(msg_word + 6); + cfr_dump_len = cfr_header.u.meta_v1.length; + cfr_header.u.meta_v1.timestamp = *(msg_word + 7); + cfr_header.u.meta_v1.prim20_chan = *(msg_word + 9); + cfr_header.u.meta_v1.center_freq1 = *(msg_word + 10); + cfr_header.u.meta_v1.center_freq2 = *(msg_word + 11); + cfr_header.u.meta_v1.phy_mode = *(msg_word + 12); + break; default: - cfr_err("Unsupported CFR capture type:%d\n", cfr_msg_type); - wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID); - return QDF_STATUS_E_NOSUPPORT; + cfr_err("Unsupported CFR capture type:%d\n", cfr_msg_type); + wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID); + return QDF_STATUS_E_NOSUPPORT; } vaddr = pa->cfr_mem_chunk.vaddr; @@ -191,15 +189,15 @@ QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, prindex = (void *)((u_int8_t *)vaddr + cfr_dump_index); target_if_cfr_info_send(pdev, &cfr_header, - sizeof(struct csi_cfr_header), - prindex, cfr_dump_len, &end_magic, 4); + sizeof(struct csi_cfr_header), + prindex, cfr_dump_len, &end_magic, 4); *vaddr = cfr_dump_index + cfr_dump_len; } else if (cfr_cap_status == 0) { target_if_cfr_info_send(pdev, &cfr_header, - sizeof(struct csi_cfr_header), - prindex, cfr_dump_len, &end_magic, 4); + sizeof(struct csi_cfr_header), + prindex, cfr_dump_len, &end_magic, 4); } cfr_debug("CFR: status=%d rindex=0x%pK dump_len=%d\n", @@ -209,6 +207,7 @@ QDF_STATUS ol_txrx_htt_cfr_rx_ind_handler(void *pdev_ptr, return QDF_STATUS_SUCCESS; } + qdf_export_symbol(ol_txrx_htt_cfr_rx_ind_handler); QDF_STATUS @@ -224,24 +223,21 @@ cfr_wifi2_0_init_pdev(struct wlan_objmgr_psoc *psoc, pa = wlan_objmgr_pdev_get_comp_private_obj(pdev, WLAN_UMAC_COMP_CFR); - if (pa == NULL) + if (!pa) return QDF_STATUS_E_FAILURE; target_type = target_if_cfr_get_target_type(psoc); tgt_hdl = wlan_psoc_get_tgt_if_handle(psoc); if (tgt_hdl) - info = (&(tgt_hdl->info)); + info = (&tgt_hdl->info); else return QDF_STATUS_E_FAILURE; if (pa->is_cfr_capable) { - for (idx = 0; idx < info->num_mem_chunks; ++idx) { - if (info->mem_chunks[idx].req_id == CFR_CAPTURE_HOST_MEM_REQ_ID) { - pa->cfr_mem_chunk.req_id = info->mem_chunks[idx].req_id; pa->cfr_mem_chunk.paddr = @@ -254,8 +250,8 @@ cfr_wifi2_0_init_pdev(struct wlan_objmgr_psoc *psoc, (*read_offset) = CFR_CAPTURE_HOST_MEM_DEFAULT_READ_OFFSET; cfr_debug("CFR: reqid=%d len=%d\n", - pa->cfr_mem_chunk.req_id, - pa->cfr_mem_chunk.len); + pa->cfr_mem_chunk.req_id, + pa->cfr_mem_chunk.len); } if (idx >= info->num_mem_chunks) { @@ -263,7 +259,6 @@ cfr_wifi2_0_init_pdev(struct wlan_objmgr_psoc *psoc, cfr_err("CFR Shared memory not allocated\n"); return QDF_STATUS_E_NOMEM; } - } /* TODO: These values need to be fine-tuned for better optimisation, @@ -279,11 +274,13 @@ cfr_wifi2_0_init_pdev(struct wlan_objmgr_psoc *psoc, pa->cfr_max_sta_count = MAX_CFR_CLIENTS_LEGACY; pa->subbuf_size = MAX_SUBBUF_4S; pa->num_subbufs = NUM_SUBBUF_4S; - } else + } else { return QDF_STATUS_E_NOSUPPORT; + } - } else + } else { return QDF_STATUS_E_NOSUPPORT; + } return QDF_STATUS_SUCCESS; } @@ -292,7 +289,6 @@ QDF_STATUS cfr_wifi2_0_deinit_pdev(struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_pdev *pdev) { - /* TODO:No cleanup action need for now */ return QDF_STATUS_SUCCESS; }