Task of g2d should be scheduled on process context
due to power management, so every task are executed
on workqueue. However, task on state that all
fences are signaled on ioctl could be scheduled
directly without queueing and it make remove the delay
for workqueue.
Change-Id: I72475096165237eccba8172e0c8a7d9e6e3c34c9
Signed-off-by: hyesoo.yu <hyesoo.yu@samsung.com>
BUG_ON(failed);
}
+static void g2d_task_direct_schedule(struct kref *kref)
+{
+ struct g2d_task *task = container_of(kref, struct g2d_task, starter);
+
+ g2d_schedule_task(task);
+}
+
void g2d_start_task(struct g2d_task *task)
{
reinit_completion(&task->completion);
task->ktime_begin = ktime_get();
- kref_put(&task->starter, g2d_queuework_task);
+ kref_put(&task->starter, g2d_task_direct_schedule);
}
void g2d_fence_callback(struct dma_fence *fence, struct dma_fence_cb *cb)