summaryrefslogtreecommitdiff
authorXindong Xu <xindong.xu@amlogic.com>2018-03-22 07:08:47 (GMT)
committer Gerrit Code Review <gituser@droid04>2018-03-22 07:08:47 (GMT)
commit9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966 (patch)
treea4a6839ca84dfdbb556bbe6f52dc2f455c77b522
parent4217bd8bb30e3c0d9c7391e831ba78bb96a92a6b (diff)
parentc76f512c04bac726017f33c78ee021ad7b48c38d (diff)
downloadcommon-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.zip
common-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.tar.gz
common-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.tar.bz2
Merge "osd: adjust mutex lock, decrease lock time[1/1]" into ampere-20180311
Diffstat
-rw-r--r--drivers/amlogic/media/osd/osd_hw.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/amlogic/media/osd/osd_hw.c b/drivers/amlogic/media/osd/osd_hw.c
index 0e76e33..de9e326 100644
--- a/drivers/amlogic/media/osd/osd_hw.c
+++ b/drivers/amlogic/media/osd/osd_hw.c
@@ -419,7 +419,6 @@ int osd_sync_request(u32 index, u32 yres, u32 xoffset, u32 yoffset,
osd_log_err("could not allocate osd_fence_map\n");
return -ENOMEM;
}
- mutex_lock(&post_fence_list_lock);
fence_map->op = 0xffffffff;
fence_map->fb_index = index;
fence_map->buf_num = buf_num;
@@ -431,6 +430,7 @@ int osd_sync_request(u32 index, u32 yres, u32 xoffset, u32 yoffset,
fence_map->in_fence = osd_get_fenceobj(in_fence_fd);
fence_map->out_fd =
out_fence_create(&out_fence_fd, &val, buf_num);
+ mutex_lock(&post_fence_list_lock);
list_add_tail(&fence_map->list, &post_fence_list);
mutex_unlock(&post_fence_list_lock);
kthread_queue_work(&buffer_toggle_worker, &buffer_toggle_work);
@@ -458,7 +458,6 @@ int osd_sync_request_render(u32 index, u32 yres,
osd_log_err("could not allocate osd_fence_map\n");
return -ENOMEM;
}
- mutex_lock(&post_fence_list_lock);
fence_map->op = 0xffffffff;
fence_map->fb_index = index;
fence_map->buf_num = buf_num;
@@ -485,6 +484,8 @@ int osd_sync_request_render(u32 index, u32 yres,
fence_map->in_fence = osd_get_fenceobj(in_fence_fd);
fence_map->out_fd =
out_fence_create(&out_fence_fd, &val, buf_num);
+ /* Todo: */
+ mutex_lock(&post_fence_list_lock);
list_add_tail(&fence_map->list, &post_fence_list);
mutex_unlock(&post_fence_list_lock);
kthread_queue_work(&buffer_toggle_worker, &buffer_toggle_work);