qcacmn: Return QDF_STATUS from qdf_timer_init()
In preparation for QDF timer tracking, return QDF_STATUS from qdf_timer_init(). This allows callers to handle the eventual possibility of a QDF timer init failure. Change-Id: I9da4643610099d32b002bda9218af26247a4edc6 CRs-Fixed: 2327724
This commit is contained in:
@@ -43,13 +43,13 @@ typedef __qdf_timer_t qdf_timer_t;
|
|||||||
* Timer type QDF_TIMER_TYPE_WAKE_APPS means its a non-deferrable timer which
|
* Timer type QDF_TIMER_TYPE_WAKE_APPS means its a non-deferrable timer which
|
||||||
* will cause CPU wake up on expiry
|
* will cause CPU wake up on expiry
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
static inline void qdf_timer_init(qdf_handle_t hdl, qdf_timer_t *timer,
|
static inline QDF_STATUS
|
||||||
qdf_timer_func_t func, void *arg,
|
qdf_timer_init(qdf_handle_t hdl, qdf_timer_t *timer, qdf_timer_func_t func,
|
||||||
QDF_TIMER_TYPE type)
|
void *arg, QDF_TIMER_TYPE type)
|
||||||
{
|
{
|
||||||
__qdf_timer_init(hdl, timer, func, arg, type);
|
return __qdf_timer_init(timer, func, arg, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -45,7 +45,6 @@ typedef void (*__qdf_dummy_timer_func_t)(unsigned long arg);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_timer_init() - initialize a softirq timer
|
* __qdf_timer_init() - initialize a softirq timer
|
||||||
* @hdl: OS handle
|
|
||||||
* @timer: Pointer to timer object
|
* @timer: Pointer to timer object
|
||||||
* @func: Function pointer
|
* @func: Function pointer
|
||||||
* @arg: Argument
|
* @arg: Argument
|
||||||
@@ -58,28 +57,24 @@ typedef void (*__qdf_dummy_timer_func_t)(unsigned long arg);
|
|||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
static inline QDF_STATUS __qdf_timer_init(qdf_handle_t hdl,
|
static inline QDF_STATUS __qdf_timer_init(struct timer_list *timer,
|
||||||
struct timer_list *timer,
|
|
||||||
qdf_timer_func_t func, void *arg,
|
qdf_timer_func_t func, void *arg,
|
||||||
QDF_TIMER_TYPE type)
|
QDF_TIMER_TYPE type)
|
||||||
{
|
{
|
||||||
|
bool is_on_stack = object_is_on_stack(timer);
|
||||||
|
__qdf_dummy_timer_func_t callback = (__qdf_dummy_timer_func_t)func;
|
||||||
|
unsigned long ctx = (unsigned long)arg;
|
||||||
|
|
||||||
if (type == QDF_TIMER_TYPE_SW) {
|
if (type == QDF_TIMER_TYPE_SW) {
|
||||||
if (object_is_on_stack(timer))
|
if (is_on_stack)
|
||||||
setup_deferrable_timer_on_stack(
|
setup_deferrable_timer_on_stack(timer, callback, ctx);
|
||||||
timer, (__qdf_dummy_timer_func_t)func,
|
|
||||||
(unsigned long)arg);
|
|
||||||
else
|
else
|
||||||
setup_deferrable_timer(timer,
|
setup_deferrable_timer(timer, callback, ctx);
|
||||||
(__qdf_dummy_timer_func_t)func,
|
|
||||||
(unsigned long)arg);
|
|
||||||
} else {
|
} else {
|
||||||
if (object_is_on_stack(timer))
|
if (is_on_stack)
|
||||||
setup_timer_on_stack(timer,
|
setup_timer_on_stack(timer, callback, ctx);
|
||||||
(__qdf_dummy_timer_func_t)func,
|
|
||||||
(unsigned long)arg);
|
|
||||||
else
|
else
|
||||||
setup_timer(timer, (__qdf_dummy_timer_func_t)func,
|
setup_timer(timer, callback, ctx);
|
||||||
(unsigned long)arg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -88,32 +83,26 @@ static inline QDF_STATUS __qdf_timer_init(qdf_handle_t hdl,
|
|||||||
/**
|
/**
|
||||||
* __qdf_timer_start() - start a qdf softirq timer
|
* __qdf_timer_start() - start a qdf softirq timer
|
||||||
* @timer: Pointer to timer object
|
* @timer: Pointer to timer object
|
||||||
* @delay: Delay in milli seconds
|
* @delay: Delay in milliseconds
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static inline QDF_STATUS __qdf_timer_start(struct timer_list *timer,
|
static inline void __qdf_timer_start(struct timer_list *timer, uint32_t delay)
|
||||||
uint32_t delay)
|
|
||||||
{
|
{
|
||||||
timer->expires = jiffies + msecs_to_jiffies(delay);
|
timer->expires = jiffies + msecs_to_jiffies(delay);
|
||||||
add_timer(timer);
|
add_timer(timer);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_timer_mod() - modify a timer
|
* __qdf_timer_mod() - modify a timer
|
||||||
* @timer: Pointer to timer object
|
* @timer: Pointer to timer object
|
||||||
* @delay: Delay in milli seconds
|
* @delay: Delay in milliseconds
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static inline QDF_STATUS __qdf_timer_mod(struct timer_list *timer,
|
static inline void __qdf_timer_mod(struct timer_list *timer, uint32_t delay)
|
||||||
uint32_t delay)
|
|
||||||
{
|
{
|
||||||
mod_timer(timer, jiffies + msecs_to_jiffies(delay));
|
mod_timer(timer, jiffies + msecs_to_jiffies(delay));
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user