diff --git a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c index 6fb8f6c80e13..af19912ddcef 100644 --- a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c +++ b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c @@ -1969,6 +1969,7 @@ u32 ddl_set_default_decoder_buffer_req(struct ddl_decoder_data *decoder, struct vcd_buffer_requirement *input_buf_req; struct vcd_buffer_requirement *output_buf_req; u32 min_dpb, y_cb_cr_size; + u32 frame_height_actual = 0; if (!decoder->codec.codec) return false; @@ -1992,6 +1993,7 @@ u32 ddl_set_default_decoder_buffer_req(struct ddl_decoder_data *decoder, if ((decoder->buf_format.buffer_format == VCD_BUFFER_FORMAT_TILE_4x2) && (frame_size->height < MDP_MIN_TILE_HEIGHT)) { + frame_height_actual = frame_size->height; frame_size->height = MDP_MIN_TILE_HEIGHT; ddl_calculate_stride(frame_size, !decoder->progressive_only); @@ -2030,6 +2032,10 @@ u32 ddl_set_default_decoder_buffer_req(struct ddl_decoder_data *decoder, input_buf_req->sz = (1024 * 1024 * 2); input_buf_req->align = DDL_LINEAR_BUFFER_ALIGN_BYTES; decoder->min_input_buf_req = *input_buf_req; + if (frame_height_actual) { + frame_size->height = frame_height_actual; + ddl_calculate_stride(frame_size, !decoder->progressive_only); + } return true; }