author | pengcheng chen <pengcheng.chen@amlogic.com> | 2018-03-14 06:30:30 (GMT) |
---|---|---|
committer | jie.yuan <jie.yuan@amlogic.com> | 2018-03-19 10:30:31 (GMT) |
commit | c76f512c04bac726017f33c78ee021ad7b48c38d (patch) | |
tree | 46d8b069922d86c49a31a2c75ea2c34b6e1bfc05 | |
parent | 4aa7c08a2f4888cc7f912b751cd59fd633177ea2 (diff) | |
download | common-c76f512c04bac726017f33c78ee021ad7b48c38d.zip common-c76f512c04bac726017f33c78ee021ad7b48c38d.tar.gz common-c76f512c04bac726017f33c78ee021ad7b48c38d.tar.bz2 |
osd: adjust mutex lock, decrease lock time[1/1]
PD#161984: osd: adjust mutex lock, decrease lock time
Change-Id: Id024de2ff070882c28ac991b98cd8c7d5ac627eb
Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
-rw-r--r-- | drivers/amlogic/media/osd/osd_hw.c | 5 |
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); |