qcacmn: Add new QDF API's to handle napi requirements

Add new QDF API's to handle napi, softirq related handling
in rx thread and rx refill thread.

Change-Id: I0f371c89e65d8b20f059c56097bac07ec1e19cc9
CRs-Fixed: 3341804
This commit is contained in:
Roopavathi Lingampalli
2022-10-25 11:42:46 +05:30
committed by Madan Koyyalamudi
parent b17c45a9d8
commit edc0d60122
12 changed files with 347 additions and 82 deletions

View File

@@ -28,7 +28,7 @@
#include <qdf_types.h>
#include <i_qdf_defer.h>
/**
/*
* TODO This implements work queues (worker threads, kernel threads etc.).
* Note that there is no cancel on a scheduled work. You cannot free a work
* item if its queued. You cannot know if a work item is queued or not unless
@@ -62,7 +62,7 @@ void
qdf_create_bh(qdf_bh_t *bh, qdf_defer_fn_t func, void *arg);
/**
* qdf_sched - schedule a bottom half (DPC)
* qdf_sched_bh - schedule a bottom half (DPC)
* @bh: pointer to bottom
* Return: none
*/
@@ -198,6 +198,23 @@ void qdf_flush_workqueue(qdf_handle_t hdl, qdf_workqueue_t *wqueue);
* Return: none
*/
void qdf_destroy_work(qdf_handle_t hdl, qdf_work_t *work);
/**
* qdf_local_bh_disable - Disables softirq and tasklet processing
* on the local processor
*
* Return: none
*/
void qdf_local_bh_disable(void);
/**
* qdf_local_bh_enable - Disables softirq and tasklet processing
* on the local processor
*
* Return: none
*/
void qdf_local_bh_enable(void);
#else
/**
* qdf_create_bh - creates the bottom half deferred handler
@@ -213,7 +230,7 @@ qdf_create_bh(qdf_bh_t *bh, qdf_defer_fn_t func, void *arg)
}
/**
* qdf_sched - schedule a bottom half (DPC)
* qdf_sched_bh - schedule a bottom half (DPC)
* @bh: pointer to bottom
* Return: none
*/
@@ -232,6 +249,28 @@ static inline void qdf_destroy_bh(qdf_bh_t *bh)
__qdf_disable_bh(bh);
}
/**
* qdf_local_bh_disable - Disables softirq and tasklet processing
* on the local processor
*
* Return: none
*/
static inline void qdf_local_bh_disable(void)
{
__qdf_local_bh_disable();
}
/**
* qdf_local_bh_enable - Enables softirq and tasklet processing
* on the local processor
*
* Return: none
*/
static inline void qdf_local_bh_enable(void)
{
__qdf_local_bh_enable();
}
/*********************Non-Interrupt Context deferred Execution***************/
/**