diff options
author | Krunal Soni <ksoni@codeaurora.org> | 2017-02-01 09:47:28 -0800 |
---|---|---|
committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-07 15:02:27 -0800 |
commit | dce49ecf59c14c92bd781c4b572279dfb68173a3 (patch) | |
tree | bed5aa42ae67ed8f80a7fc21c4eb21a21d182325 /scheduler | |
parent | ba5d80ca81e9b55acfc315f7881aef9a5511d788 (diff) | |
download | qca-wfi-host-cmn-dce49ecf59c14c92bd781c4b572279dfb68173a3.tar.gz |
qcacmn: Deregister legacy & target queue callbacks upon scheduler down
Driver is missing couple of deregister handler while bringing down the
scheduler.
Change-Id: I99fe6e9a5d3cac800154945e41e707ebb7ee6396
CRs-Fixed: 2001133
Diffstat (limited to 'scheduler')
-rw-r--r-- | scheduler/inc/scheduler_api.h | 14 | ||||
-rw-r--r-- | scheduler/src/scheduler_api.c | 30 |
2 files changed, 43 insertions, 1 deletions
diff --git a/scheduler/inc/scheduler_api.h b/scheduler/inc/scheduler_api.h index 07c782a51..feb7d6337 100644 --- a/scheduler/inc/scheduler_api.h +++ b/scheduler/inc/scheduler_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -236,6 +236,18 @@ QDF_STATUS scheduler_register_wma_legacy_handler(scheduler_msg_process_fn_t QDF_STATUS scheduler_register_sys_legacy_handler(scheduler_msg_process_fn_t callback); /** + * scheduler_deregister_sys_legacy_handler() - deregister legacy sys handler + * + * Return: QDF status + */ +QDF_STATUS scheduler_deregister_sys_legacy_handler(void); +/** + * scheduler_deregister_wma_legacy_handler() - deregister legacy wma handler + * + * Return: QDF status + */ +QDF_STATUS scheduler_deregister_wma_legacy_handler(void); +/** * scheduler_mc_timer_callback() - timer callback, gets called at time out * @data: unsigned long, holds the timer object. * diff --git a/scheduler/src/scheduler_api.c b/scheduler/src/scheduler_api.c index 14138d0e6..7d5dcda9d 100644 --- a/scheduler/src/scheduler_api.c +++ b/scheduler/src/scheduler_api.c @@ -480,6 +480,36 @@ QDF_STATUS scheduler_register_sys_legacy_handler(scheduler_msg_process_fn_t return QDF_STATUS_SUCCESS; } +QDF_STATUS scheduler_deregister_wma_legacy_handler(void) +{ + struct scheduler_ctx *sched_ctx = scheduler_get_context(); + + if (NULL == sched_ctx) { + QDF_TRACE(QDF_MODULE_ID_SCHEDULER, + QDF_TRACE_LEVEL_ERROR, FL("scheduler context is null")); + return QDF_STATUS_E_FAILURE; + } + + sched_ctx->legacy_wma_handler = NULL; + + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS scheduler_deregister_sys_legacy_handler(void) +{ + struct scheduler_ctx *sched_ctx = scheduler_get_context(); + + if (NULL == sched_ctx) { + QDF_TRACE(QDF_MODULE_ID_SCHEDULER, + QDF_TRACE_LEVEL_ERROR, FL("scheduler context is null")); + return QDF_STATUS_E_FAILURE; + } + + sched_ctx->legacy_sys_handler = NULL; + + return QDF_STATUS_SUCCESS; +} + void scheduler_mc_timer_callback(unsigned long data) { qdf_mc_timer_t *timer = (qdf_mc_timer_t *)data; |