diff --git a/dp/inc/cdp_txrx_misc.h b/dp/inc/cdp_txrx_misc.h index c7f906d324ce..a77c644040ac 100644 --- a/dp/inc/cdp_txrx_misc.h +++ b/dp/inc/cdp_txrx_misc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -341,6 +341,28 @@ cdp_get_vdev_id(ol_txrx_soc_handle soc, struct cdp_vdev *vdev) return 0; } +/** + * cdp_get_tx_ack_stats() - get tx ack count for vdev + * @soc - data path soc handle + * @vdev_id - vdev id + * + * return tx ack count + * 0 invalid count + */ +static inline uint32_t +cdp_get_tx_ack_stats(ol_txrx_soc_handle soc, uint8_t vdev_id) +{ + if (!soc || !soc->ops || !soc->ops->misc_ops) { + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, + "%s invalid instance", __func__); + return 0; + } + + if (soc->ops->misc_ops->get_tx_ack_stats) + return soc->ops->misc_ops->get_tx_ack_stats(vdev_id); + return 0; +} + /** * cdp_bad_peer_txctl_set_setting() - TBD * @soc - data path soc handle diff --git a/dp/inc/cdp_txrx_ops.h b/dp/inc/cdp_txrx_ops.h index 7d0d48c5ba3b..ff0c77c70356 100644 --- a/dp/inc/cdp_txrx_ops.h +++ b/dp/inc/cdp_txrx_ops.h @@ -778,6 +778,7 @@ struct cdp_misc_ops { qdf_nbuf_t (*tx_non_std)(struct cdp_vdev *vdev, enum ol_tx_spec tx_spec, qdf_nbuf_t msdu_list); uint16_t (*get_vdev_id)(struct cdp_vdev *vdev); + uint32_t (*get_tx_ack_stats)(uint8_t vdev_id); QDF_STATUS (*set_wisa_mode)(struct cdp_vdev *vdev, bool enable); QDF_STATUS (*txrx_data_stall_cb_register)(data_stall_detect_cb cb); QDF_STATUS (*txrx_data_stall_cb_deregister)(data_stall_detect_cb cb);