qcacmn: Set the pdev mask based on channel id
Set pdev mask in HTT extension stats msg based on channel id information. Change-Id: I7c971494049e16ae8e0eb694984857346c3a38b7 CRs-Fixed: 2185219
This commit is contained in:

committed by
nshrivas

parent
ef2cbc6c93
commit
ac863c4b4d
@@ -1022,33 +1022,6 @@ static inline void cdp_flush_cache_rx_queue(ol_txrx_soc_handle soc)
|
||||
soc->ops->cmn_drv_ops->flush_cache_rx_queue();
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_txrx_stats(): function to map to host and firmware statistics
|
||||
* Deprecated, use cdp_txrx_stats_request() instead.
|
||||
* @soc: soc handle
|
||||
* @vdev: virtual device
|
||||
* @stats: statistics option
|
||||
*
|
||||
* return: status
|
||||
*/
|
||||
static inline
|
||||
int cdp_txrx_stats(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
||||
enum cdp_stats stats)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: Invalid Instance:", __func__);
|
||||
QDF_BUG(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!soc->ops->cmn_drv_ops ||
|
||||
!soc->ops->cmn_drv_ops->txrx_stats)
|
||||
return 0;
|
||||
|
||||
return soc->ops->cmn_drv_ops->txrx_stats(vdev, stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_txrx_stats_request(): function to map to host and firmware statistics
|
||||
* @soc: soc handle
|
||||
|
@@ -1118,6 +1118,7 @@ struct cdp_config_params {
|
||||
* @param1: opaque argument 1 to be passed to htt
|
||||
* @param2: opaque argument 2 to be passed to htt
|
||||
* @param3: opaque argument 3 to be passed to htt
|
||||
* @channel_param: Channel Information
|
||||
*/
|
||||
struct cdp_txrx_stats_req {
|
||||
enum cdp_stats stats;
|
||||
@@ -1126,6 +1127,7 @@ struct cdp_txrx_stats_req {
|
||||
uint32_t param2;
|
||||
uint32_t param3;
|
||||
uint32_t cookie_val;
|
||||
uint8_t channel;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -275,8 +275,6 @@ struct cdp_cmn_ops {
|
||||
void (*set_pdev_dscp_tid_map)(struct cdp_pdev *pdev, uint8_t map_id,
|
||||
uint8_t tos, uint8_t tid);
|
||||
|
||||
int (*txrx_stats)(struct cdp_vdev *vdev, enum cdp_stats stats);
|
||||
|
||||
int (*txrx_stats_request)(struct cdp_vdev *vdev,
|
||||
struct cdp_txrx_stats_req *req);
|
||||
|
||||
|
@@ -2869,6 +2869,31 @@ htt_soc_detach(void *htt_soc)
|
||||
qdf_mem_free(soc);
|
||||
}
|
||||
|
||||
/*
|
||||
* dp_get_pdev_mask_for_channel_id() - Retrieve pdev_id mask based on channel
|
||||
* information
|
||||
* @pdev - DP PDEV Handle
|
||||
* @channel - frequency
|
||||
*
|
||||
* Return - Pdev_id mask
|
||||
*/
|
||||
static inline
|
||||
uint8_t dp_get_pdev_mask_for_channel_id(struct dp_pdev *pdev, uint8_t channel)
|
||||
{
|
||||
uint8_t pdev_mask = 0;
|
||||
|
||||
if (!channel)
|
||||
return 1 << (pdev->pdev_id + 1);
|
||||
|
||||
else if (channel && WLAN_CHAN_IS_5GHZ(channel))
|
||||
pdev_mask = 0;
|
||||
|
||||
else if (channel && WLAN_CHAN_IS_2GHZ(channel))
|
||||
pdev_mask = 1;
|
||||
|
||||
return 1 << (pdev_mask + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_h2t_ext_stats_msg_send(): function to contruct HTT message to pass to FW
|
||||
* @pdev: DP PDEV handle
|
||||
@@ -2883,13 +2908,14 @@ htt_soc_detach(void *htt_soc)
|
||||
QDF_STATUS dp_h2t_ext_stats_msg_send(struct dp_pdev *pdev,
|
||||
uint32_t stats_type_upload_mask, uint32_t config_param_0,
|
||||
uint32_t config_param_1, uint32_t config_param_2,
|
||||
uint32_t config_param_3, int cookie_val, int cookie_msb)
|
||||
uint32_t config_param_3, int cookie_val, int cookie_msb,
|
||||
uint8_t channel)
|
||||
{
|
||||
struct htt_soc *soc = pdev->soc->htt_handle;
|
||||
struct dp_htt_htc_pkt *pkt;
|
||||
qdf_nbuf_t msg;
|
||||
uint32_t *msg_word;
|
||||
uint8_t pdev_mask;
|
||||
uint8_t pdev_mask = 0;
|
||||
|
||||
msg = qdf_nbuf_alloc(
|
||||
soc->osdev,
|
||||
@@ -2905,7 +2931,7 @@ QDF_STATUS dp_h2t_ext_stats_msg_send(struct dp_pdev *pdev,
|
||||
* Bit 2: Pdev stats for pdev id 1
|
||||
* Bit 3: Pdev stats for pdev id 2
|
||||
*/
|
||||
pdev_mask = 1 << (pdev->pdev_id + 1);
|
||||
pdev_mask = dp_get_pdev_mask_for_channel_id(pdev, channel);
|
||||
|
||||
/*
|
||||
* Set the length of the message.
|
||||
|
@@ -383,7 +383,8 @@ void dp_tx_me_free_descriptor(struct cdp_pdev *pdev);
|
||||
QDF_STATUS dp_h2t_ext_stats_msg_send(struct dp_pdev *pdev,
|
||||
uint32_t stats_type_upload_mask, uint32_t config_param_0,
|
||||
uint32_t config_param_1, uint32_t config_param_2,
|
||||
uint32_t config_param_3, int cookie, int cookie_msb);
|
||||
uint32_t config_param_3, int cookie, int cookie_msb,
|
||||
uint8_t channel);
|
||||
void dp_htt_stats_print_tag(uint8_t tag_type, uint32_t *tag_buf);
|
||||
void dp_htt_stats_copy_tag(struct dp_pdev *pdev, uint8_t tag_type, uint32_t *tag_buf);
|
||||
void dp_peer_rxtid_stats(struct dp_peer *peer, void (*callback_fn),
|
||||
|
@@ -5708,7 +5708,7 @@ dp_get_fw_peer_stats(struct cdp_pdev *pdev_handle, uint8_t *mac_addr,
|
||||
|
||||
dp_h2t_ext_stats_msg_send(pdev, HTT_DBG_EXT_STATS_PEER_INFO,
|
||||
config_param0, config_param1, config_param2,
|
||||
config_param3, 0, 0);
|
||||
config_param3, 0, 0, 0);
|
||||
|
||||
}
|
||||
|
||||
@@ -5741,7 +5741,7 @@ dp_get_htt_stats(struct cdp_pdev *pdev_handle, void *data, uint32_t data_len)
|
||||
dp_h2t_ext_stats_msg_send(pdev, req->stats_id,
|
||||
req->config_param0, req->config_param1,
|
||||
req->config_param2, req->config_param3,
|
||||
req->cookie, 0);
|
||||
req->cookie, 0, 0);
|
||||
}
|
||||
/*
|
||||
* dp_set_pdev_param: function to set parameters in pdev
|
||||
@@ -5863,13 +5863,17 @@ dp_txrx_stats_publish(struct cdp_pdev *pdev_handle, void *buf)
|
||||
req.stats = HTT_DBG_EXT_STATS_PDEV_TX;
|
||||
req.cookie_val = 1;
|
||||
dp_h2t_ext_stats_msg_send(pdev, req.stats, req.param0,
|
||||
req.param1, req.param2, req.param3, 0, req.cookie_val);
|
||||
req.param1, req.param2, req.param3, 0,
|
||||
req.cookie_val, 0);
|
||||
|
||||
msleep(DP_MAX_SLEEP_TIME);
|
||||
|
||||
req.stats = HTT_DBG_EXT_STATS_PDEV_RX;
|
||||
req.cookie_val = 1;
|
||||
dp_h2t_ext_stats_msg_send(pdev, req.stats, req.param0,
|
||||
req.param1, req.param2, req.param3, 0, req.cookie_val);
|
||||
req.param1, req.param2, req.param3, 0,
|
||||
req.cookie_val, 0);
|
||||
|
||||
msleep(DP_MAX_SLEEP_TIME);
|
||||
qdf_mem_copy(buffer, &pdev->stats, sizeof(pdev->stats));
|
||||
|
||||
@@ -5911,6 +5915,7 @@ static int dp_fw_stats_process(struct cdp_vdev *vdev_handle,
|
||||
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||
struct dp_pdev *pdev = NULL;
|
||||
uint32_t stats = req->stats;
|
||||
uint8_t channel = req->channel;
|
||||
|
||||
if (!vdev) {
|
||||
DP_TRACE(NONE, "VDEV not found");
|
||||
@@ -5936,7 +5941,8 @@ static int dp_fw_stats_process(struct cdp_vdev *vdev_handle,
|
||||
}
|
||||
|
||||
return dp_h2t_ext_stats_msg_send(pdev, stats, req->param0,
|
||||
req->param1, req->param2, req->param3, 0, 0);
|
||||
req->param1, req->param2, req->param3,
|
||||
0, 0, channel);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5958,6 +5964,7 @@ static int dp_txrx_stats_request(struct cdp_vdev *vdev,
|
||||
"Invalid vdev/req instance");
|
||||
return 0;
|
||||
}
|
||||
|
||||
stats = req->stats;
|
||||
if (stats >= CDP_TXRX_MAX_STATS)
|
||||
return 0;
|
||||
@@ -5991,22 +5998,6 @@ static int dp_txrx_stats_request(struct cdp_vdev *vdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_txrx_stats() - function to map to firmware and host stats
|
||||
* @vdev: virtual handle
|
||||
* @stats: type of statistics requested
|
||||
*
|
||||
* Return: integer
|
||||
*/
|
||||
static int dp_txrx_stats(struct cdp_vdev *vdev, enum cdp_stats stats)
|
||||
{
|
||||
struct cdp_txrx_stats_req req = {0,};
|
||||
|
||||
req.stats = stats;
|
||||
|
||||
return dp_txrx_stats_request(vdev, &req);
|
||||
}
|
||||
|
||||
/*
|
||||
* dp_print_napi_stats(): NAPI stats
|
||||
* @soc - soc handle
|
||||
@@ -6563,7 +6554,6 @@ static struct cdp_cmn_ops dp_ops_cmn = {
|
||||
/* TODO: get API's for dscp-tid need to be added*/
|
||||
.set_vdev_dscp_tid_map = dp_set_vdev_dscp_tid_map_wifi3,
|
||||
.set_pdev_dscp_tid_map = dp_set_pdev_dscp_tid_map_wifi3,
|
||||
.txrx_stats = dp_txrx_stats,
|
||||
.txrx_stats_request = dp_txrx_stats_request,
|
||||
.txrx_set_monitor_mode = dp_vdev_set_monitor_mode,
|
||||
.txrx_get_pdev_id_frm_pdev = dp_get_pdev_id_frm_pdev,
|
||||
|
Reference in New Issue
Block a user