summaryrefslogtreecommitdiff
authorShuide Chen <shuide.chen@amlogic.com>2018-08-14 07:27:51 (GMT)
committer Gerrit Code Review <gituser@droid04>2018-08-14 07:27:51 (GMT)
commitf192c116e6d97cc6f5720df6af351ef93efeb2f8 (patch)
treed16ac23fd497a22b6e7f0e862b371d0822c31ca9
parentcab48e32fdf5c8c1f8cdba56414ba2e559b73461 (diff)
parenta200722d700d23e01c85582dbeee7b75295c9c75 (diff)
downloadcommon-f192c116e6d97cc6f5720df6af351ef93efeb2f8.zip
common-f192c116e6d97cc6f5720df6af351ef93efeb2f8.tar.gz
common-f192c116e6d97cc6f5720df6af351ef93efeb2f8.tar.bz2
Merge "osd: adjust render kthreads priority [1/1]" into p-amlogic
Diffstat
-rw-r--r--drivers/amlogic/media/osd/osd_hw.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/drivers/amlogic/media/osd/osd_hw.c b/drivers/amlogic/media/osd/osd_hw.c
index 602a18c..d88b7f0 100644
--- a/drivers/amlogic/media/osd/osd_hw.c
+++ b/drivers/amlogic/media/osd/osd_hw.c
@@ -814,20 +814,6 @@ static int out_fence_create(int *release_fence_fd)
{
int out_fence_fd = -1;
-
- if (!timeline_created) {
- /* timeline has not been created */
- if (osd_timeline_create()) {
- kthread_init_worker(&buffer_toggle_worker);
- buffer_toggle_thread = kthread_run(
- kthread_worker_fn,
- &buffer_toggle_worker,
- "aml_buf_toggle");
- kthread_init_work(
- &buffer_toggle_work, osd_toggle_buffer);
- timeline_created = 1;
- }
- }
/* hwc_enable disable create fence every time */
if (!osd_hw.hwc_enable) {
out_fence_fd = osd_timeline_create_fence();
@@ -7195,6 +7181,7 @@ void osd_init_hw(u32 logo_loaded, u32 osd_probe,
{
u32 idx, data32;
int err_num = 0;
+ struct sched_param param = {.sched_priority = 2};
osd_hw.fb_drvier_probe = osd_probe;
@@ -7505,6 +7492,27 @@ void osd_init_hw(u32 logo_loaded, u32 osd_probe,
}
if (osd_hw.hw_rdma_en)
osd_rdma_enable(1);
+
+ if (!timeline_created) {
+ /* timeline has not been created */
+ if (osd_timeline_create()) {
+ kthread_init_worker(&buffer_toggle_worker);
+ buffer_toggle_thread = kthread_run(
+ kthread_worker_fn,
+ &buffer_toggle_worker,
+ "aml_buf_toggle");
+ if (IS_ERR(buffer_toggle_thread)) {
+ osd_log_err("create osd toggle kthread failed");
+ return;
+ }
+ sched_setscheduler(buffer_toggle_thread,
+ SCHED_FIFO, &param);
+ kthread_init_work(
+ &buffer_toggle_work, osd_toggle_buffer);
+ timeline_created = 1;
+ }
+ }
+
}
void osd_init_viu2(void)