summaryrefslogtreecommitdiff
authorsky zhou <sky.zhou@amlogic.com>2019-04-06 11:35:34 (GMT)
committer Jianxin Pan <jianxin.pan@amlogic.com>2019-05-17 10:31:17 (GMT)
commit8508cebaf799c83af2861318aa4cd22cc87842da (patch)
tree9948ea1fb496729b9f8e49d7d0c6d67514364cb6
parent468e8ff4c506d3eb93621d8589b70031d1982670 (diff)
downloadcommon-8508cebaf799c83af2861318aa4cd22cc87842da.zip
common-8508cebaf799c83af2861318aa4cd22cc87842da.tar.gz
common-8508cebaf799c83af2861318aa4cd22cc87842da.tar.bz2
osd: fix release dma buf error when vout1&2 run at same time.
PD #SWPL-6027 Problem: dmabuf panic when vout1,vout2 run at same time. Solution: When do pandisplay, only release the dma buf displayed on current vout pipeline. Verify: Verify on macroni. Change-Id: I8951d55f9f56cbfa509bcbe2906a108c5f50dbfe Signed-off-by: sky zhou <sky.zhou@amlogic.com>
Diffstat
-rw-r--r--drivers/amlogic/media/osd/osd_hw.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/amlogic/media/osd/osd_hw.c b/drivers/amlogic/media/osd/osd_hw.c
index 3eeb190..ca0170b 100644
--- a/drivers/amlogic/media/osd/osd_hw.c
+++ b/drivers/amlogic/media/osd/osd_hw.c
@@ -4753,20 +4753,17 @@ out:
} else
osd_timeline_increase(output_index);
}
- /*clear last displayed buffer.*/
- for (i = 0; i < HW_OSD_COUNT; i++) {
+ /* clear osd layer's order */
+ for (i = start_index; i < osd_count; i++) {
+ layer_map = &fence_map->layer_map[i];
if (displayed_bufs[i]) {
fput(displayed_bufs[i]);
displayed_bufs[i] = NULL;
}
- }
- /* clear osd layer's order */
- for (i = start_index; i < osd_count; i++) {
- layer_map = &fence_map->layer_map[i];
if (layer_map->buf_file)
displayed_bufs[i] = layer_map->buf_file;
if (layer_map->in_fence)
- osd_put_fenceobj(layer_map->in_fence);
+ osd_put_fenceobj(layer_map->in_fence);
osd_hw.order[i] = 0;
}
}