qcacmn: Add workqueue APIs in QDF
Add qdf workqueue APIs for schedule_delayed_work, cancel_work_sync, cancel_delayed_work_sync and flush_delayed_work Change-Id: Idb4de3c30c9c8cfdeb9af5b92f40a6e3dc954a6d CRs-Fixed: 1009560
Esse commit está contido em:
@@ -156,6 +156,45 @@ static inline QDF_STATUS __qdf_sched_work(qdf_handle_t hdl, __qdf_work_t *work)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* __qdf_sched_delayed_work() - Schedule a delayed work
|
||||
* @hdl: OS handle
|
||||
* @work: pointer to delayed work
|
||||
* @delay: delay interval
|
||||
* Return: none
|
||||
*/
|
||||
static inline QDF_STATUS __qdf_sched_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work,
|
||||
uint32_t delay)
|
||||
{
|
||||
schedule_delayed_work(work, delay);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* __qdf_cancel_work() - Cancel a work
|
||||
* @hdl: OS handle
|
||||
* @work: pointer to work
|
||||
* Return: true if work was pending, false otherwise
|
||||
*/
|
||||
static inline bool __qdf_cancel_work(qdf_handle_t hdl,
|
||||
__qdf_work_t *work)
|
||||
{
|
||||
return cancel_work_sync(work);
|
||||
}
|
||||
|
||||
/**
|
||||
* __qdf_cancel_delayed_work() - Cancel a delayed work
|
||||
* @hdl: OS handle
|
||||
* @work: pointer to delayed work
|
||||
* Return: true if work was pending, false otherwise
|
||||
*/
|
||||
static inline bool __qdf_cancel_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work)
|
||||
{
|
||||
return cancel_delayed_work_sync(work);
|
||||
}
|
||||
|
||||
/**
|
||||
* __qdf_flush_work - Flush a deferred task on non-interrupt context
|
||||
* @hdl: OS handle
|
||||
@@ -167,6 +206,20 @@ static inline uint32_t __qdf_flush_work(qdf_handle_t hdl, __qdf_work_t *work)
|
||||
flush_work(work);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* __qdf_flush_delayed_work() - Flush a delayed work
|
||||
* @hdl: OS handle
|
||||
* @work: pointer to delayed work
|
||||
* Return: none
|
||||
*/
|
||||
static inline uint32_t __qdf_flush_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work)
|
||||
{
|
||||
flush_delayed_work(work);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#else
|
||||
static inline QDF_STATUS __qdf_init_work(qdf_handle_t hdl,
|
||||
__qdf_work_t *work,
|
||||
@@ -210,11 +263,38 @@ static inline QDF_STATUS __qdf_sched_work(qdf_handle_t hdl, __qdf_work_t *work)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS __qdf_sched_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work,
|
||||
uint32_t delay)
|
||||
{
|
||||
schedule_delayed_work(&work->dwork, delay);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline bool __qdf_cancel_work(qdf_handle_t hdl,
|
||||
__qdf_work_t *work)
|
||||
{
|
||||
return cancel_work_sync(&work->work);
|
||||
}
|
||||
|
||||
static inline bool __qdf_cancel_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work)
|
||||
{
|
||||
return cancel_delayed_work_sync(&work->dwork);
|
||||
}
|
||||
|
||||
static inline uint32_t __qdf_flush_work(qdf_handle_t hdl, __qdf_work_t *work)
|
||||
{
|
||||
flush_work(&work->work);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
static inline uint32_t __qdf_flush_delayed_work(qdf_handle_t hdl,
|
||||
__qdf_delayed_work_t *work)
|
||||
{
|
||||
flush_delayed_work(&work->dwork);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
Referência em uma nova issue
Block a user