diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 84178e080f..4592d78224 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -2159,6 +2159,7 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst, int rc = 0; struct msm_vidc_mappings *mappings; struct msm_vidc_map *map; + struct msm_vidc_buffer *rel_buf; bool found = false; if (!inst || !buf) { @@ -2204,6 +2205,16 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst, } } list_add_tail(&map->list, &mappings->list); + } else { + /* increment map ref_count, if buf already present in release list */ + list_for_each_entry(rel_buf, &inst->buffers.release.list, list) { + if (rel_buf->device_addr == buf->device_addr) { + rc = msm_vidc_memory_map(inst->core, map); + if (rc) + return rc; + break; + } + } } rc = msm_vidc_memory_map(inst->core, map); if (rc) diff --git a/driver/vidc/src/venus_hfi_response.c b/driver/vidc/src/venus_hfi_response.c index 551968dae2..035bfc722e 100644 --- a/driver/vidc/src/venus_hfi_response.c +++ b/driver/vidc/src/venus_hfi_response.c @@ -1356,7 +1356,7 @@ static int handle_session_property(struct msm_vidc_inst *inst, } else { i_vpr_e(inst, "%s: invalid property %#x for %s port %d dpb cap value %d\n", - __func__, is_decode_session(inst) ? "decode" : "encode", + __func__, pkt->type, is_decode_session(inst) ? "decode" : "encode", port, inst->capabilities->cap[DPB_LIST].value); } break;