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:
Yuanyuan Liu
2016-06-06 14:59:23 -07:00
commit de Nandini Suresh
commit 26476b51eb
2 arquivos alterados com 149 adições e 1 exclusões

Ver arquivo

@@ -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
/**