video: driver: utilize mod_delayed_work functionality

mod_delayed_work() is a replacement for cancel_delayed_work()
+ queue_delayed_work(). It will update only timer value,
instead of completely cancelling and queueing a new delayed
work.

Change-Id: Id07d54e025c5a2e82f29160ae6d249d44f00bb15
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
This commit is contained in:
Govindaraj Rajagopal
2021-06-04 23:15:52 +05:30
parent 281ce51f5f
commit 0c062d5a2a
2 changed files with 3 additions and 6 deletions

View File

@@ -1437,8 +1437,7 @@ static int schedule_batch_work(struct msm_vidc_inst *inst)
return -EINVAL; return -EINVAL;
} }
core = inst->core; core = inst->core;
cancel_delayed_work(&inst->decode_batch.work); mod_delayed_work(core->batch_workq, &inst->decode_batch.work,
queue_delayed_work(core->batch_workq, &inst->decode_batch.work,
msecs_to_jiffies(core->capabilities[DECODE_BATCH_TIMEOUT].value)); msecs_to_jiffies(core->capabilities[DECODE_BATCH_TIMEOUT].value));
return 0; return 0;

View File

@@ -346,10 +346,8 @@ static void __schedule_power_collapse_work(struct msm_vidc_core *core)
return; return;
} }
cancel_delayed_work(&core->pm_work); if (!mod_delayed_work(core->pm_workq, &core->pm_work,
if (!queue_delayed_work(core->pm_workq, msecs_to_jiffies(core->capabilities[SW_PC_DELAY].value))) {
&core->pm_work, msecs_to_jiffies(
core->capabilities[SW_PC_DELAY].value))) {
d_vpr_e("power collapse already scheduled\n"); d_vpr_e("power collapse already scheduled\n");
} else { } else {
d_vpr_l("power collapse scheduled for %d ms\n", d_vpr_l("power collapse scheduled for %d ms\n",