qcacmn: Add API to configure scheduler watchdog timeout

The scheduler watchdog timeout is currently fixed at 10secs.
There are few customer use cases, where the CPU is busy for
sometime and the scheduler message processing is taking longer than
the coinfigured watchdog timeout value.

Add a new API to be able to configure this value different than the
default as per the requirement.

CRs-Fixed: 2834194
Change-Id: I976f1f0ad17f09cf3960f99ad80226d775b8b2f2
This commit is contained in:
Vivek
2020-12-09 11:02:19 +05:30
committato da snandini
parent 80cf078dab
commit 97f44cd39e
4 ha cambiato i file con 25 aggiunte e 1 eliminazioni

Vedi File

@@ -169,6 +169,7 @@ QDF_STATUS scheduler_init(void)
qdf_spinlock_create(&sched_ctx->sch_thread_lock);
qdf_init_waitqueue_head(&sched_ctx->sch_wait_queue);
sched_ctx->sch_event_flag = 0;
sched_ctx->timeout = SCHEDULER_WATCHDOG_TIMEOUT;
qdf_timer_init(NULL,
&sched_ctx->watchdog_timer,
&scheduler_watchdog_timeout,
@@ -520,6 +521,17 @@ QDF_STATUS scheduler_scan_mq_handler(struct scheduler_msg *msg)
return QDF_STATUS_SUCCESS;
}
void scheduler_set_watchdog_timeout(uint32_t timeout)
{
struct scheduler_ctx *sched_ctx = scheduler_get_context();
QDF_BUG(sched_ctx);
if (!sched_ctx)
return;
sched_ctx->timeout = timeout;
}
QDF_STATUS scheduler_register_wma_legacy_handler(scheduler_msg_process_fn_t
wma_callback)
{

Vedi File

@@ -392,7 +392,7 @@ static void scheduler_thread_process_queues(struct scheduler_ctx *sch_ctx,
sched_history_start(msg);
qdf_timer_start(&sch_ctx->watchdog_timer,
SCHEDULER_WATCHDOG_TIMEOUT);
sch_ctx->timeout);
status = sch_ctx->queue_ctx.
scheduler_msg_process_fn[i](msg);
qdf_timer_stop(&sch_ctx->watchdog_timer);