From e7d986e1683f8a65081f214a9aee73a88a7fd065 Mon Sep 17 00:00:00 2001 From: Padma Raghunathan Date: Fri, 6 Mar 2020 19:56:03 +0800 Subject: [PATCH] qcacmn: Avoid to use WIN only APIs Avoid to use WIN only APIs. This is part of moving CFR to hostcmn. Change-Id: Ib6be520657b5e6d42eaed4d9c3a3940c691e9d84 CRs-Fixed: 2637130 --- target_if/cfr/src/target_if_cfr_6018.c | 20 ++++++---- umac/cfr/core/src/cfr_common.c | 40 ++++++++++++++++---- umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h | 18 +++++++++ umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c | 8 ++-- 4 files changed, 67 insertions(+), 19 deletions(-) diff --git a/target_if/cfr/src/target_if_cfr_6018.c b/target_if/cfr/src/target_if_cfr_6018.c index 1128eb40b825..36d7d773db45 100644 --- a/target_if/cfr/src/target_if_cfr_6018.c +++ b/target_if/cfr/src/target_if_cfr_6018.c @@ -310,11 +310,11 @@ static void dump_metadata(struct csi_cfr_header *header, uint32_t cookie) usermac = meta->peer_addr.mu_peer_addr[user_id]; cfr_debug("peermac[%d]: %s\n", user_id, - ether_sprintf(usermac)); + mac2str(usermac)); } } else { cfr_debug("peermac: %s\n", - ether_sprintf(meta->peer_addr.su_peer_addr)); + mac2str(meta->peer_addr.su_peer_addr)); } for (chain_id = 0; chain_id < HOST_MAX_CHAINS; chain_id++) { @@ -984,7 +984,7 @@ static void dump_cfr_peer_tx_event_enh(wmi_cfr_peer_tx_event_param *event, cfr_debug("<%u>CFR capture method: %d vdev_id: %d mac: %s\n", cookie, event->capture_method, event->vdev_id, - ether_sprintf(&event->peer_mac_addr.bytes[0])); + mac2str(&event->peer_mac_addr.bytes[0])); cfr_debug("<%u>Chan: %d bw: %d phymode: %d cfreq1: %d cfrq2: %d " "nss: %d\n", @@ -1044,7 +1044,6 @@ static int target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) { QDF_STATUS retval = 0; - ol_ath_soc_softc_t *scn = (ol_ath_soc_softc_t *)sc; struct wmi_unified *wmi_handle; struct wlan_objmgr_psoc *psoc; struct wlan_objmgr_pdev *pdev; @@ -1060,7 +1059,12 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) struct wlan_channel *bss_chan; struct wlan_lmac_if_cfr_rx_ops *cfr_rx_ops = NULL; - psoc = scn->psoc_obj; + if (!sc || !data) { + cfr_err("sc or data is null"); + return -EINVAL; + } + + psoc = target_if_get_psoc_from_scn_hdl(sc); if (!psoc) { cfr_err("psoc is null"); return -EINVAL; @@ -1126,7 +1130,7 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) if ((tx_evt_param.status & PEER_CFR_CAPTURE_EVT_PS_STATUS_MASK) == 1) { cfr_err("CFR capture failed as peer is in powersave : %s", - ether_sprintf(&tx_evt_param.peer_mac_addr.bytes[0])); + mac2str(&tx_evt_param.peer_mac_addr.bytes[0])); enh_prepare_cfr_header_txstatus(&tx_evt_param, &header_error); if (cfr_rx_ops->cfr_info_send) @@ -1142,7 +1146,7 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) if ((tx_evt_param.status & PEER_CFR_CAPTURE_EVT_STATUS_MASK) == 0) { cfr_debug("CFR capture failed for peer : %s", - ether_sprintf(&tx_evt_param.peer_mac_addr.bytes[0])); + mac2str(&tx_evt_param.peer_mac_addr.bytes[0])); retval = -EINVAL; goto end; } @@ -1150,7 +1154,7 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen) if (tx_evt_param.status & CFR_TX_EVT_STATUS_MASK) { cfr_debug("TX packet returned status %d for peer: %s", tx_evt_param.status & CFR_TX_EVT_STATUS_MASK, - ether_sprintf(&tx_evt_param.peer_mac_addr.bytes[0])); + mac2str(&tx_evt_param.peer_mac_addr.bytes[0])); retval = -EINVAL; goto end; } diff --git a/umac/cfr/core/src/cfr_common.c b/umac/cfr/core/src/cfr_common.c index e082e6b063b6..ff6a7a960f45 100644 --- a/umac/cfr/core/src/cfr_common.c +++ b/umac/cfr/core/src/cfr_common.c @@ -18,14 +18,16 @@ #include #include -#include -#include #include #include #include #include #include #include +#ifndef CFR_USE_FIXED_FOLDER +#include +#endif + QDF_STATUS wlan_cfr_psoc_obj_create_handler(struct wlan_objmgr_psoc *psoc, void *arg) @@ -169,28 +171,52 @@ wlan_cfr_peer_obj_destroy_handler(struct wlan_objmgr_peer *peer, void *arg) return QDF_STATUS_SUCCESS; } -QDF_STATUS cfr_streamfs_init(struct wlan_objmgr_pdev *pdev) +#ifdef CFR_USE_FIXED_FOLDER +static const char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) +{ + const char *default_name = "wlan"; + + return default_name; +} +#else +static const char *cfr_get_dev_name(struct wlan_objmgr_pdev *pdev) { struct pdev_cfr *pa = NULL; char folder[32]; struct net_device *pdev_netdev; struct ol_ath_softc_net80211 *scn; struct target_pdev_info *tgt_hdl; + const char *default_name = "wlan"; - if (pdev == NULL) { + if (!pdev) { cfr_err("PDEV is NULL\n"); - return QDF_STATUS_E_FAILURE; + return default_name; } tgt_hdl = wlan_pdev_get_tgt_if_handle(pdev); if (!tgt_hdl) { cfr_err("target_pdev_info is NULL\n"); - return QDF_STATUS_E_FAILURE; + return default_name; } scn = target_pdev_get_feature_ptr(tgt_hdl); pdev_netdev = scn->netdev; + + return pdev_netdev->name; +} +#endif + +QDF_STATUS cfr_streamfs_init(struct wlan_objmgr_pdev *pdev) +{ + struct pdev_cfr *pa = NULL; + char folder[32]; + + if (!pdev) { + cfr_err("PDEV is NULL\n"); + return QDF_STATUS_E_FAILURE; + } + pa = wlan_objmgr_pdev_get_comp_private_obj(pdev, WLAN_UMAC_COMP_CFR); if (pa == NULL) { @@ -203,7 +229,7 @@ QDF_STATUS cfr_streamfs_init(struct wlan_objmgr_pdev *pdev) return QDF_STATUS_E_FAILURE; } - snprintf(folder, sizeof(folder), "cfr%s", pdev_netdev->name); + snprintf(folder, sizeof(folder), "cfr%s", cfr_get_dev_name(pdev)); pa->dir_ptr = qdf_streamfs_create_dir((const char *)folder, NULL); diff --git a/umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h b/umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h index 2d3a7e6a75ce..23da2e879fe7 100644 --- a/umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h +++ b/umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h @@ -580,4 +580,22 @@ uint8_t count_set_bits(uint32_t value); */ void wlan_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf); #endif + +/** + * mac2str() - convert mac address array to string + * + * @mac: pointer to mac array + * + * Return: string + */ +static inline const char * +mac2str(const uint8_t mac[6]) +{ + static char str[32]; + + qdf_snprintf(str, sizeof(str), QDF_MAC_ADDR_STR, + QDF_MAC_ADDR_ARRAY(mac)); + + return str; +} #endif diff --git a/umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c b/umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c index 13f5442c29c4..71ebba6d7a80 100644 --- a/umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c +++ b/umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c @@ -701,13 +701,13 @@ QDF_STATUS ucfg_cfr_get_cfg(struct wlan_objmgr_vdev *vdev) cfr_err("Data subtype : 0x%x\n", glbl_cfg->data_subtype_filter); cfr_err("TX Addr : %s\n", - ether_sprintf(glbl_cfg->tx_addr)); + mac2str(glbl_cfg->tx_addr)); cfr_err("TX Addr Mask : %s\n", - ether_sprintf(glbl_cfg->tx_addr_mask)); + mac2str(glbl_cfg->tx_addr_mask)); cfr_err("RX Addr : %s\n", - ether_sprintf(glbl_cfg->rx_addr)); + mac2str(glbl_cfg->rx_addr)); cfr_err("RX Addr Mask: %s\n", - ether_sprintf(glbl_cfg->rx_addr_mask)); + mac2str(glbl_cfg->rx_addr_mask)); } wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID);