qcacmn: Enable timer based low threshold interrupt

Enable timer based low threshold interrupt for waikiki monitor
tx/rx source rings

CRs-Fixed: 3010853
Change-Id: Ia33b110337e610ab9b5d7a9cecb61f6952cd3379
Tento commit je obsažen v:
Naga
2021-10-05 00:23:12 +05:30
odevzdal Madan Koyyalamudi
rodič fa9b23b61f
revize 92ac36e016
8 změnil soubory, kde provedl 222 přidání a 19 odebrání

Zobrazit soubor

@@ -517,6 +517,8 @@ struct dp_mon_ops {
struct htt_rx_ring_tlv_filter *tlv_filter);
void (*rx_enable_mpdu_logging)(uint32_t *msg_word,
struct htt_rx_ring_tlv_filter *tlv_filter);
QDF_STATUS (*rx_mon_refill_buf_ring)(struct dp_intr *int_ctx);
QDF_STATUS (*tx_mon_refill_buf_ring)(struct dp_intr *int_ctx);
};
struct dp_mon_soc {
@@ -1735,7 +1737,7 @@ void dp_monitor_service_mon_rings(struct dp_soc *soc, uint32_t quota)
#endif
/*
* dp_monitor_process() - Process monitor
* dp_rx_monitor_process() - Process monitor
* @soc: point to soc
* @int_ctx: interrupt ctx
* @mac_id: lma
@@ -1746,7 +1748,7 @@ void dp_monitor_service_mon_rings(struct dp_soc *soc, uint32_t quota)
#ifndef DISABLE_MON_CONFIG
static inline
uint32_t dp_monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota)
uint32_t mac_id, uint32_t quota)
{
struct dp_mon_ops *monitor_ops;
struct dp_mon_soc *mon_soc = soc->monitor_soc;
@@ -1765,16 +1767,72 @@ uint32_t dp_monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx,
return monitor_ops->mon_rx_process(soc, int_ctx, mac_id, quota);
}
static inline uint32_t
dp_tx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota)
static inline
uint32_t dp_tx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota)
{
return 0;
struct dp_mon_ops *monitor_ops;
struct dp_mon_soc *mon_soc = soc->monitor_soc;
if (!mon_soc) {
dp_mon_debug("monitor soc is NULL");
return 0;
}
monitor_ops = mon_soc->mon_ops;
if (!monitor_ops || !monitor_ops->mon_tx_process) {
dp_mon_debug("callback not registered");
return 0;
}
return monitor_ops->mon_tx_process(soc, int_ctx, mac_id, quota);
}
static inline
uint32_t dp_tx_mon_buf_refill(struct dp_intr *int_ctx)
{
struct dp_soc *soc = int_ctx->soc;
struct dp_mon_ops *monitor_ops;
struct dp_mon_soc *mon_soc = soc->monitor_soc;
if (!mon_soc) {
dp_mon_debug("monitor soc is NULL");
return 0;
}
monitor_ops = mon_soc->mon_ops;
if (!monitor_ops || !monitor_ops->tx_mon_refill_buf_ring) {
dp_mon_debug("callback not registered");
return 0;
}
return monitor_ops->tx_mon_refill_buf_ring(int_ctx);
}
static inline
uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
{
struct dp_soc *soc = int_ctx->soc;
struct dp_mon_ops *monitor_ops;
struct dp_mon_soc *mon_soc = soc->monitor_soc;
if (!mon_soc) {
dp_mon_debug("monitor soc is NULL");
return 0;
}
monitor_ops = mon_soc->mon_ops;
if (!monitor_ops || !monitor_ops->rx_mon_refill_buf_ring) {
dp_mon_debug("callback not registered");
return 0;
}
return monitor_ops->rx_mon_refill_buf_ring(int_ctx);
}
#else
static inline
uint32_t dp_monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota)
uint32_t mac_id, uint32_t quota)
{
return 0;
}
@@ -1785,6 +1843,16 @@ dp_tx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
{
return 0;
}
static inline
uint32_t dp_tx_mon_buf_refill(struct dp_intr *int_ctx)
{
}
static inline
uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
{
}
#endif
/*