author | Xindong 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) |
commit | 9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966 (patch) | |
tree | a4a6839ca84dfdbb556bbe6f52dc2f455c77b522 | |
parent | 4217bd8bb30e3c0d9c7391e831ba78bb96a92a6b (diff) | |
parent | c76f512c04bac726017f33c78ee021ad7b48c38d (diff) | |
download | common-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.zip common-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.tar.gz common-9bc0bd1ef74d5e3ed96c2e845f1edd5a23808966.tar.bz2 |
Merge "osd: adjust mutex lock, decrease lock time[1/1]" into ampere-20180311
-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); |