diff --git a/dp/inc/cdp_txrx_ops.h b/dp/inc/cdp_txrx_ops.h index 5a88ad7610..62f8751d0d 100644 --- a/dp/inc/cdp_txrx_ops.h +++ b/dp/inc/cdp_txrx_ops.h @@ -1912,6 +1912,16 @@ struct cdp_sawf_ops { QDF_STATUS (*sawf_def_queues_get_map_report)(struct cdp_soc_t *soc, uint8_t *mac_addr); +#ifdef CONFIG_SAWF + QDF_STATUS + (*txrx_get_peer_sawf_delay_stats)(struct cdp_soc_t *soc, + uint32_t svc_id, uint8_t *mac, + void *data); + QDF_STATUS + (*txrx_get_peer_sawf_tx_stats)(struct cdp_soc_t *soc, + uint32_t svc_id, uint8_t *mac, + void *data); +#endif }; #endif diff --git a/dp/inc/cdp_txrx_sawf.h b/dp/inc/cdp_txrx_sawf.h index 89073a3455..467440779c 100644 --- a/dp/inc/cdp_txrx_sawf.h +++ b/dp/inc/cdp_txrx_sawf.h @@ -72,4 +72,74 @@ cdp_sawf_peer_get_map_conf(ol_txrx_soc_handle soc, return soc->ops->sawf_ops->sawf_def_queues_get_map_report(soc, mac); } + +#ifdef CONFIG_SAWF +/** + * cdp_get_peer_sawf_delay_stats() - Call to get SAWF delay stats + * @soc: soc handle + * @svc_class_id: service class ID + * @mac: peer mac addrees + * @data: opaque pointer + * + * return: status Success/Failure + */ +static inline QDF_STATUS +cdp_get_peer_sawf_delay_stats(ol_txrx_soc_handle soc, uint32_t svc_id, + uint8_t *mac, void *data) +{ + if (!soc || !soc->ops) { + dp_cdp_debug("Invalid Instance"); + QDF_BUG(0); + return QDF_STATUS_E_FAILURE; + } + + if (!soc->ops->sawf_ops || + !soc->ops->sawf_ops->txrx_get_peer_sawf_delay_stats) + return QDF_STATUS_E_FAILURE; + + return soc->ops->sawf_ops->txrx_get_peer_sawf_delay_stats(soc, svc_id, + mac, data); +} + +/** + * cdp_get_peer_sawf_tx_stats() - Call to get SAWF Tx stats + * @soc: soc handle + * @svc_class_id: service class ID + * @mac: peer mac addrees + * @data: opaque pointer + * + * return: status Success/Failure + */ +static inline QDF_STATUS +cdp_get_peer_sawf_tx_stats(ol_txrx_soc_handle soc, uint32_t svc_id, + uint8_t *mac, void *data) +{ + if (!soc || !soc->ops) { + dp_cdp_debug("Invalid Instance"); + QDF_BUG(0); + return QDF_STATUS_E_FAILURE; + } + + if (!soc->ops->sawf_ops || + !soc->ops->sawf_ops->txrx_get_peer_sawf_tx_stats) + return QDF_STATUS_E_FAILURE; + + return soc->ops->sawf_ops->txrx_get_peer_sawf_tx_stats(soc, svc_id, + mac, data); +} +#else +static inline QDF_STATUS +cdp_get_peer_sawf_delay_stats(ol_txrx_soc_handle soc, uint32_t svc_id, + uint8_t *mac, void *data) +{ + return QDF_STATUS_E_FAILURE; +} + +static inline QDF_STATUS +cdp_get_peer_sawf_tx_stats(ol_txrx_soc_handle soc, uint32_t svc_id, + uint8_t *mac, void *data) +{ + return QDF_STATUS_E_FAILURE; +} +#endif #endif /* _CDP_TXRX_SAWF_H_ */ diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index fa82771ac8..34188d110c 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -12363,6 +12363,10 @@ static struct cdp_sawf_ops dp_ops_sawf = { .sawf_def_queues_unmap_req = dp_sawf_def_queues_unmap_req, .sawf_def_queues_get_map_report = dp_sawf_def_queues_get_map_report, +#ifdef CONFIG_SAWF + .txrx_get_peer_sawf_delay_stats = dp_sawf_get_peer_delay_stats, + .txrx_get_peer_sawf_tx_stats = dp_sawf_get_peer_tx_stats, +#endif }; #endif