* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2019-04-01 8:18 Yunfei Dong 2019-04-01 8:18 ` [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields Yunfei Dong 0 siblings, 1 reply; 22+ messages in thread From: Yunfei Dong @ 2019-04-01 8:18 UTC (permalink / raw) To: linux-firmware; +Cc: tiffany.lin, linux-mediatek, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 7bc246451318b3536d9bfd3c4e46d541a9831b33: Merge branch 'for-upstream' of git://git.chelsio.net/pub/git/linux-firmware (2019-03-14 08:22:39 -0400) are available in the git repository at: https://github.com/yunfei-dong/linux_fw_vpu_v1.1.2.git v1.1.2 for you to fetch changes up to c1b685587a6ffd651e900eff4e945619487f91bc: mediatek: update MT8173 VPU firmware to v1.1.2 (2019-04-01 16:02:08 +0800) ---------------------------------------------------------------- Yunfei Dong (1): mediatek: update MT8173 VPU firmware to v1.1.2. vpu_d.bin | Bin 2977008 -> 2977008 bytes vpu_p.bin | Bin 131168 -> 131180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields 2019-04-01 8:18 pull request: linux-firmware: Update Mediatek MT8173 VPU firmware Yunfei Dong @ 2019-04-01 8:18 ` Yunfei Dong 2019-04-01 9:06 ` Hans Verkuil 0 siblings, 1 reply; 22+ messages in thread From: Yunfei Dong @ 2019-04-01 8:18 UTC (permalink / raw) To: linux-firmware Cc: Yunfei Dong, tiffany.lin, linux-mediatek, linux-arm-kernel, linux-media Enlarge the plane number to support more complex case and add the support for fmt change case. Change-Id: If61f994b8853f370967fb81b92b407e2c2ae94b8 Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> --- drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 62 +++++++++++++------- drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 16 ++--- .../media/platform/mtk-vcodec/vdec/vdec_h264_if.c | 4 +- .../media/platform/mtk-vcodec/vdec/vdec_vp8_if.c | 4 +- .../media/platform/mtk-vcodec/vdec/vdec_vp9_if.c | 11 ++-- 5 files changed, 57 insertions(+), 40 deletions(-) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c index d022c65..43587c0 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c @@ -129,9 +129,9 @@ static struct vb2_buffer *get_display_buffer(struct mtk_vcodec_ctx *ctx) mutex_lock(&ctx->lock); if (dstbuf->used) { vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 0, - ctx->picinfo.y_bs_sz); + ctx->picinfo.fb_sz[0]); vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 1, - ctx->picinfo.c_bs_sz); + ctx->picinfo.fb_sz[1]); dstbuf->ready_to_display = true; @@ -278,6 +278,27 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx) clean_free_buffer(ctx); } +static void mtk_vdec_update_fmt(struct mtk_vcodec_ctx *ctx, + unsigned int pixelformat) +{ + struct mtk_video_fmt *fmt; + struct mtk_q_data *dst_q_data; + unsigned int k; + + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; + for (k = 0; k < NUM_FORMATS; k++) { + fmt = &mtk_video_formats[k]; + if (fmt->fourcc == pixelformat) { + mtk_v4l2_debug(1, "Update cap fourcc(%d -> %d)", + dst_q_data->fmt.fourcc, pixelformat); + dst_q_data->fmt = fmt; + return; + } + } + + mtk_v4l2_err("Cannot get fourcc(%d), using init value", pixelformat); +} + static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) { unsigned int dpbsize = 0; @@ -299,6 +320,10 @@ static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) return -EINVAL; } + if (ctx->last_decoded_picinfo.cap_fourcc != ctx->picinfo.cap_fourcc && + ctx->picinfo.cap_fourcc != 0) + mtk_vdec_update_fmt(ctx, ctx->picinfo.cap_fourcc); + if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) || (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h)) return 0; @@ -352,11 +377,11 @@ static void mtk_vdec_worker(struct work_struct *work) pfb = &dst_buf_info->frame_buffer; pfb->base_y.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 0); pfb->base_y.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); - pfb->base_y.size = ctx->picinfo.y_bs_sz + ctx->picinfo.y_len_sz; + pfb->base_y.size = ctx->picinfo.fb_sz[0]; pfb->base_c.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 1); pfb->base_c.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 1); - pfb->base_c.size = ctx->picinfo.c_bs_sz + ctx->picinfo.c_len_sz; + pfb->base_c.size = ctx->picinfo.fb_sz[1]; pfb->status = 0; mtk_v4l2_debug(3, "===>[%d] vdec_if_decode() ===>", ctx->id); @@ -976,14 +1001,13 @@ static int vidioc_vdec_g_fmt(struct file *file, void *priv, * So we just return picinfo yet, and update picinfo in * stop_streaming hook function */ - q_data->sizeimage[0] = ctx->picinfo.y_bs_sz + - ctx->picinfo.y_len_sz; - q_data->sizeimage[1] = ctx->picinfo.c_bs_sz + - ctx->picinfo.c_len_sz; + q_data->sizeimage[0] = ctx->picinfo.fb_sz[0]; + q_data->sizeimage[1] = ctx->picinfo.fb_sz[1]; q_data->bytesperline[0] = ctx->last_decoded_picinfo.buf_w; q_data->bytesperline[1] = ctx->last_decoded_picinfo.buf_w; q_data->coded_width = ctx->picinfo.buf_w; q_data->coded_height = ctx->picinfo.buf_h; + ctx->last_decoded_picinfo.cap_fourcc = q_data->fmt->fourcc; /* * Width and height are set to the dimensions @@ -1103,10 +1127,11 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) struct mtk_vcodec_mem src_mem; bool res_chg = false; int ret = 0; - unsigned int dpbsize = 1; + unsigned int dpbsize = 1, i = 0; struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); struct vb2_v4l2_buffer *vb2_v4l2 = NULL; struct mtk_video_dec_buf *buf = NULL; + struct mtk_q_data *dst_q_data; mtk_v4l2_debug(3, "[%d] (%d) id=%d, vb=%p", ctx->id, vb->vb2_queue->type, @@ -1194,21 +1219,18 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) } ctx->last_decoded_picinfo = ctx->picinfo; - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0] = - ctx->picinfo.y_bs_sz + - ctx->picinfo.y_len_sz; - ctx->q_data[MTK_Q_DATA_DST].bytesperline[0] = - ctx->picinfo.buf_w; - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1] = - ctx->picinfo.c_bs_sz + - ctx->picinfo.c_len_sz; - ctx->q_data[MTK_Q_DATA_DST].bytesperline[1] = ctx->picinfo.buf_w; + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; + for (i = 0; i < dst_q_data->fmt->num_planes; i++) { + dst_q_data->sizeimage[i] = ctx->picinfo.fb_sz[i]; + dst_q_data->bytesperline[i] = ctx->picinfo.buf_w; + } + mtk_v4l2_debug(2, "[%d] vdec_if_init() OK wxh=%dx%d pic wxh=%dx%d sz[0]=0x%x sz[1]=0x%x", ctx->id, ctx->picinfo.buf_w, ctx->picinfo.buf_h, ctx->picinfo.pic_w, ctx->picinfo.pic_h, - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0], - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1]); + dst_q_data->sizeimage[0], + dst_q_data->sizeimage[1]); ret = vdec_if_get_param(ctx, GET_PARAM_DPB_SIZE, &dpbsize); if (dpbsize == 0) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h index e7e2a10..662a84b 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h @@ -211,24 +211,20 @@ struct mtk_vcodec_pm { * @pic_h: picture height * @buf_w: picture buffer width (64 aligned up from pic_w) * @buf_h: picture buffer heiht (64 aligned up from pic_h) - * @y_bs_sz: Y bitstream size - * @c_bs_sz: CbCr bitstream size - * @y_len_sz: additional size required to store decompress information for y - * plane - * @c_len_sz: additional size required to store decompress information for cbcr - * plane + * @fb_sz: bitstream size of each plane * E.g. suppose picture size is 176x144, * buffer size will be aligned to 176x160. + * @cap_fourcc: fourcc number(may changed when resolution change) + * @reserved: align struct to 64-bit in order to adjust 32-bit and 64-bit os. */ struct vdec_pic_info { unsigned int pic_w; unsigned int pic_h; unsigned int buf_w; unsigned int buf_h; - unsigned int y_bs_sz; - unsigned int c_bs_sz; - unsigned int y_len_sz; - unsigned int c_len_sz; + unsigned int fb_sz[VIDEO_MAX_PLANES]; + unsigned int cap_fourcc; + unsigned int reserved; }; /** diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c index 02c960c..cdbcd69 100644 --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c @@ -253,8 +253,8 @@ static void get_pic_info(struct vdec_h264_inst *inst, *pic = inst->vsi->pic; mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", + pic->fb_sz[0], pic->fb_sz[1]); } static void get_crop_info(struct vdec_h264_inst *inst, struct v4l2_rect *cr) diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c index bac3723..ba79136 100644 --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c @@ -294,8 +294,8 @@ static void get_pic_info(struct vdec_vp8_inst *inst, struct vdec_pic_info *pic) mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", + pic->fb_sz[0], pic->fb_sz[1]); } static void vp8_dec_finish(struct vdec_vp8_inst *inst) diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c index bc8349b..6fe8320 100644 --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c @@ -702,10 +702,8 @@ static void init_all_fb_lists(struct vdec_vp9_inst *inst) static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) { - pic->y_bs_sz = inst->vsi->buf_sz_y_bs; - pic->c_bs_sz = inst->vsi->buf_sz_c_bs; - pic->y_len_sz = inst->vsi->buf_len_sz_y; - pic->c_len_sz = inst->vsi->buf_len_sz_c; + pic->fb_sz[0] = inst->vsi->buf_sz_y_bs + inst->vsi->buf_len_sz_y; + pic->fb_sz[1] = inst->vsi->buf_sz_c_bs + inst->vsi->buf_len_sz_c; pic->pic_w = inst->vsi->pic_w; pic->pic_h = inst->vsi->pic_h; @@ -714,8 +712,9 @@ static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", + pic->fb_sz[0], + pic->fb_sz[1]); } static void get_disp_fb(struct vdec_vp9_inst *inst, struct vdec_fb **out_fb) -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields 2019-04-01 8:18 ` [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields Yunfei Dong @ 2019-04-01 9:06 ` Hans Verkuil 2019-04-01 9:28 ` yunfei.dong 0 siblings, 1 reply; 22+ messages in thread From: Hans Verkuil @ 2019-04-01 9:06 UTC (permalink / raw) To: Yunfei Dong, linux-firmware Cc: tiffany.lin, linux-mediatek, linux-arm-kernel, linux-media On 4/1/19 10:18 AM, Yunfei Dong wrote: > Enlarge the plane number to support more complex case > and add the support for fmt change case. Is this v4 of this patch? What are the changes since v3? Regards, Hans > > Change-Id: If61f994b8853f370967fb81b92b407e2c2ae94b8 > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> > --- > drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 62 +++++++++++++------- > drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 16 ++--- > .../media/platform/mtk-vcodec/vdec/vdec_h264_if.c | 4 +- > .../media/platform/mtk-vcodec/vdec/vdec_vp8_if.c | 4 +- > .../media/platform/mtk-vcodec/vdec/vdec_vp9_if.c | 11 ++-- > 5 files changed, 57 insertions(+), 40 deletions(-) > > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > index d022c65..43587c0 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > @@ -129,9 +129,9 @@ static struct vb2_buffer *get_display_buffer(struct mtk_vcodec_ctx *ctx) > mutex_lock(&ctx->lock); > if (dstbuf->used) { > vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 0, > - ctx->picinfo.y_bs_sz); > + ctx->picinfo.fb_sz[0]); > vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 1, > - ctx->picinfo.c_bs_sz); > + ctx->picinfo.fb_sz[1]); > > dstbuf->ready_to_display = true; > > @@ -278,6 +278,27 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx) > clean_free_buffer(ctx); > } > > +static void mtk_vdec_update_fmt(struct mtk_vcodec_ctx *ctx, > + unsigned int pixelformat) > +{ > + struct mtk_video_fmt *fmt; > + struct mtk_q_data *dst_q_data; > + unsigned int k; > + > + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > + for (k = 0; k < NUM_FORMATS; k++) { > + fmt = &mtk_video_formats[k]; > + if (fmt->fourcc == pixelformat) { > + mtk_v4l2_debug(1, "Update cap fourcc(%d -> %d)", > + dst_q_data->fmt.fourcc, pixelformat); > + dst_q_data->fmt = fmt; > + return; > + } > + } > + > + mtk_v4l2_err("Cannot get fourcc(%d), using init value", pixelformat); > +} > + > static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > { > unsigned int dpbsize = 0; > @@ -299,6 +320,10 @@ static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > return -EINVAL; > } > > + if (ctx->last_decoded_picinfo.cap_fourcc != ctx->picinfo.cap_fourcc && > + ctx->picinfo.cap_fourcc != 0) > + mtk_vdec_update_fmt(ctx, ctx->picinfo.cap_fourcc); > + > if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) || > (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h)) > return 0; > @@ -352,11 +377,11 @@ static void mtk_vdec_worker(struct work_struct *work) > pfb = &dst_buf_info->frame_buffer; > pfb->base_y.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 0); > pfb->base_y.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); > - pfb->base_y.size = ctx->picinfo.y_bs_sz + ctx->picinfo.y_len_sz; > + pfb->base_y.size = ctx->picinfo.fb_sz[0]; > > pfb->base_c.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 1); > pfb->base_c.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 1); > - pfb->base_c.size = ctx->picinfo.c_bs_sz + ctx->picinfo.c_len_sz; > + pfb->base_c.size = ctx->picinfo.fb_sz[1]; > pfb->status = 0; > mtk_v4l2_debug(3, "===>[%d] vdec_if_decode() ===>", ctx->id); > > @@ -976,14 +1001,13 @@ static int vidioc_vdec_g_fmt(struct file *file, void *priv, > * So we just return picinfo yet, and update picinfo in > * stop_streaming hook function > */ > - q_data->sizeimage[0] = ctx->picinfo.y_bs_sz + > - ctx->picinfo.y_len_sz; > - q_data->sizeimage[1] = ctx->picinfo.c_bs_sz + > - ctx->picinfo.c_len_sz; > + q_data->sizeimage[0] = ctx->picinfo.fb_sz[0]; > + q_data->sizeimage[1] = ctx->picinfo.fb_sz[1]; > q_data->bytesperline[0] = ctx->last_decoded_picinfo.buf_w; > q_data->bytesperline[1] = ctx->last_decoded_picinfo.buf_w; > q_data->coded_width = ctx->picinfo.buf_w; > q_data->coded_height = ctx->picinfo.buf_h; > + ctx->last_decoded_picinfo.cap_fourcc = q_data->fmt->fourcc; > > /* > * Width and height are set to the dimensions > @@ -1103,10 +1127,11 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > struct mtk_vcodec_mem src_mem; > bool res_chg = false; > int ret = 0; > - unsigned int dpbsize = 1; > + unsigned int dpbsize = 1, i = 0; > struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); > struct vb2_v4l2_buffer *vb2_v4l2 = NULL; > struct mtk_video_dec_buf *buf = NULL; > + struct mtk_q_data *dst_q_data; > > mtk_v4l2_debug(3, "[%d] (%d) id=%d, vb=%p", > ctx->id, vb->vb2_queue->type, > @@ -1194,21 +1219,18 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > } > > ctx->last_decoded_picinfo = ctx->picinfo; > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0] = > - ctx->picinfo.y_bs_sz + > - ctx->picinfo.y_len_sz; > - ctx->q_data[MTK_Q_DATA_DST].bytesperline[0] = > - ctx->picinfo.buf_w; > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1] = > - ctx->picinfo.c_bs_sz + > - ctx->picinfo.c_len_sz; > - ctx->q_data[MTK_Q_DATA_DST].bytesperline[1] = ctx->picinfo.buf_w; > + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > + for (i = 0; i < dst_q_data->fmt->num_planes; i++) { > + dst_q_data->sizeimage[i] = ctx->picinfo.fb_sz[i]; > + dst_q_data->bytesperline[i] = ctx->picinfo.buf_w; > + } > + > mtk_v4l2_debug(2, "[%d] vdec_if_init() OK wxh=%dx%d pic wxh=%dx%d sz[0]=0x%x sz[1]=0x%x", > ctx->id, > ctx->picinfo.buf_w, ctx->picinfo.buf_h, > ctx->picinfo.pic_w, ctx->picinfo.pic_h, > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0], > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1]); > + dst_q_data->sizeimage[0], > + dst_q_data->sizeimage[1]); > > ret = vdec_if_get_param(ctx, GET_PARAM_DPB_SIZE, &dpbsize); > if (dpbsize == 0) > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > index e7e2a10..662a84b 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > @@ -211,24 +211,20 @@ struct mtk_vcodec_pm { > * @pic_h: picture height > * @buf_w: picture buffer width (64 aligned up from pic_w) > * @buf_h: picture buffer heiht (64 aligned up from pic_h) > - * @y_bs_sz: Y bitstream size > - * @c_bs_sz: CbCr bitstream size > - * @y_len_sz: additional size required to store decompress information for y > - * plane > - * @c_len_sz: additional size required to store decompress information for cbcr > - * plane > + * @fb_sz: bitstream size of each plane > * E.g. suppose picture size is 176x144, > * buffer size will be aligned to 176x160. > + * @cap_fourcc: fourcc number(may changed when resolution change) > + * @reserved: align struct to 64-bit in order to adjust 32-bit and 64-bit os. > */ > struct vdec_pic_info { > unsigned int pic_w; > unsigned int pic_h; > unsigned int buf_w; > unsigned int buf_h; > - unsigned int y_bs_sz; > - unsigned int c_bs_sz; > - unsigned int y_len_sz; > - unsigned int c_len_sz; > + unsigned int fb_sz[VIDEO_MAX_PLANES]; > + unsigned int cap_fourcc; > + unsigned int reserved; > }; > > /** > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > index 02c960c..cdbcd69 100644 > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > @@ -253,8 +253,8 @@ static void get_pic_info(struct vdec_h264_inst *inst, > *pic = inst->vsi->pic; > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > + pic->fb_sz[0], pic->fb_sz[1]); > } > > static void get_crop_info(struct vdec_h264_inst *inst, struct v4l2_rect *cr) > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > index bac3723..ba79136 100644 > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > @@ -294,8 +294,8 @@ static void get_pic_info(struct vdec_vp8_inst *inst, struct vdec_pic_info *pic) > > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > + pic->fb_sz[0], pic->fb_sz[1]); > } > > static void vp8_dec_finish(struct vdec_vp8_inst *inst) > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > index bc8349b..6fe8320 100644 > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > @@ -702,10 +702,8 @@ static void init_all_fb_lists(struct vdec_vp9_inst *inst) > > static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > { > - pic->y_bs_sz = inst->vsi->buf_sz_y_bs; > - pic->c_bs_sz = inst->vsi->buf_sz_c_bs; > - pic->y_len_sz = inst->vsi->buf_len_sz_y; > - pic->c_len_sz = inst->vsi->buf_len_sz_c; > + pic->fb_sz[0] = inst->vsi->buf_sz_y_bs + inst->vsi->buf_len_sz_y; > + pic->fb_sz[1] = inst->vsi->buf_sz_c_bs + inst->vsi->buf_len_sz_c; > > pic->pic_w = inst->vsi->pic_w; > pic->pic_h = inst->vsi->pic_h; > @@ -714,8 +712,9 @@ static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > + pic->fb_sz[0], > + pic->fb_sz[1]); > } > > static void get_disp_fb(struct vdec_vp9_inst *inst, struct vdec_fb **out_fb) > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields 2019-04-01 9:06 ` Hans Verkuil @ 2019-04-01 9:28 ` yunfei.dong 2019-04-01 9:32 ` Hans Verkuil 0 siblings, 1 reply; 22+ messages in thread From: yunfei.dong @ 2019-04-01 9:28 UTC (permalink / raw) To: Hans Verkuil Cc: tiffany.lin, linux-mediatek, linux-arm-kernel, linux-firmware, linux-media Dear Hans, I am very sorry. This is not v4. And I just want to send vpu firmware patch(vpu_d.bin) in github, it looks that I sent a error patch. Sorry to bother you. Best Regards, Yunfei Dong On Mon, 2019-04-01 at 11:06 +0200, Hans Verkuil wrote: > On 4/1/19 10:18 AM, Yunfei Dong wrote: > > Enlarge the plane number to support more complex case > > and add the support for fmt change case. > > Is this v4 of this patch? What are the changes since v3? > > Regards, > > Hans > > > > > Change-Id: If61f994b8853f370967fb81b92b407e2c2ae94b8 > > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> > > --- > > drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 62 +++++++++++++------- > > drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 16 ++--- > > .../media/platform/mtk-vcodec/vdec/vdec_h264_if.c | 4 +- > > .../media/platform/mtk-vcodec/vdec/vdec_vp8_if.c | 4 +- > > .../media/platform/mtk-vcodec/vdec/vdec_vp9_if.c | 11 ++-- > > 5 files changed, 57 insertions(+), 40 deletions(-) > > > > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > > index d022c65..43587c0 100644 > > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > > @@ -129,9 +129,9 @@ static struct vb2_buffer *get_display_buffer(struct mtk_vcodec_ctx *ctx) > > mutex_lock(&ctx->lock); > > if (dstbuf->used) { > > vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 0, > > - ctx->picinfo.y_bs_sz); > > + ctx->picinfo.fb_sz[0]); > > vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 1, > > - ctx->picinfo.c_bs_sz); > > + ctx->picinfo.fb_sz[1]); > > > > dstbuf->ready_to_display = true; > > > > @@ -278,6 +278,27 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx) > > clean_free_buffer(ctx); > > } > > > > +static void mtk_vdec_update_fmt(struct mtk_vcodec_ctx *ctx, > > + unsigned int pixelformat) > > +{ > > + struct mtk_video_fmt *fmt; > > + struct mtk_q_data *dst_q_data; > > + unsigned int k; > > + > > + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > > + for (k = 0; k < NUM_FORMATS; k++) { > > + fmt = &mtk_video_formats[k]; > > + if (fmt->fourcc == pixelformat) { > > + mtk_v4l2_debug(1, "Update cap fourcc(%d -> %d)", > > + dst_q_data->fmt.fourcc, pixelformat); > > + dst_q_data->fmt = fmt; > > + return; > > + } > > + } > > + > > + mtk_v4l2_err("Cannot get fourcc(%d), using init value", pixelformat); > > +} > > + > > static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > > { > > unsigned int dpbsize = 0; > > @@ -299,6 +320,10 @@ static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > > return -EINVAL; > > } > > > > + if (ctx->last_decoded_picinfo.cap_fourcc != ctx->picinfo.cap_fourcc && > > + ctx->picinfo.cap_fourcc != 0) > > + mtk_vdec_update_fmt(ctx, ctx->picinfo.cap_fourcc); > > + > > if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) || > > (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h)) > > return 0; > > @@ -352,11 +377,11 @@ static void mtk_vdec_worker(struct work_struct *work) > > pfb = &dst_buf_info->frame_buffer; > > pfb->base_y.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 0); > > pfb->base_y.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); > > - pfb->base_y.size = ctx->picinfo.y_bs_sz + ctx->picinfo.y_len_sz; > > + pfb->base_y.size = ctx->picinfo.fb_sz[0]; > > > > pfb->base_c.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 1); > > pfb->base_c.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 1); > > - pfb->base_c.size = ctx->picinfo.c_bs_sz + ctx->picinfo.c_len_sz; > > + pfb->base_c.size = ctx->picinfo.fb_sz[1]; > > pfb->status = 0; > > mtk_v4l2_debug(3, "===>[%d] vdec_if_decode() ===>", ctx->id); > > > > @@ -976,14 +1001,13 @@ static int vidioc_vdec_g_fmt(struct file *file, void *priv, > > * So we just return picinfo yet, and update picinfo in > > * stop_streaming hook function > > */ > > - q_data->sizeimage[0] = ctx->picinfo.y_bs_sz + > > - ctx->picinfo.y_len_sz; > > - q_data->sizeimage[1] = ctx->picinfo.c_bs_sz + > > - ctx->picinfo.c_len_sz; > > + q_data->sizeimage[0] = ctx->picinfo.fb_sz[0]; > > + q_data->sizeimage[1] = ctx->picinfo.fb_sz[1]; > > q_data->bytesperline[0] = ctx->last_decoded_picinfo.buf_w; > > q_data->bytesperline[1] = ctx->last_decoded_picinfo.buf_w; > > q_data->coded_width = ctx->picinfo.buf_w; > > q_data->coded_height = ctx->picinfo.buf_h; > > + ctx->last_decoded_picinfo.cap_fourcc = q_data->fmt->fourcc; > > > > /* > > * Width and height are set to the dimensions > > @@ -1103,10 +1127,11 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > > struct mtk_vcodec_mem src_mem; > > bool res_chg = false; > > int ret = 0; > > - unsigned int dpbsize = 1; > > + unsigned int dpbsize = 1, i = 0; > > struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); > > struct vb2_v4l2_buffer *vb2_v4l2 = NULL; > > struct mtk_video_dec_buf *buf = NULL; > > + struct mtk_q_data *dst_q_data; > > > > mtk_v4l2_debug(3, "[%d] (%d) id=%d, vb=%p", > > ctx->id, vb->vb2_queue->type, > > @@ -1194,21 +1219,18 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > > } > > > > ctx->last_decoded_picinfo = ctx->picinfo; > > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0] = > > - ctx->picinfo.y_bs_sz + > > - ctx->picinfo.y_len_sz; > > - ctx->q_data[MTK_Q_DATA_DST].bytesperline[0] = > > - ctx->picinfo.buf_w; > > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1] = > > - ctx->picinfo.c_bs_sz + > > - ctx->picinfo.c_len_sz; > > - ctx->q_data[MTK_Q_DATA_DST].bytesperline[1] = ctx->picinfo.buf_w; > > + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > > + for (i = 0; i < dst_q_data->fmt->num_planes; i++) { > > + dst_q_data->sizeimage[i] = ctx->picinfo.fb_sz[i]; > > + dst_q_data->bytesperline[i] = ctx->picinfo.buf_w; > > + } > > + > > mtk_v4l2_debug(2, "[%d] vdec_if_init() OK wxh=%dx%d pic wxh=%dx%d sz[0]=0x%x sz[1]=0x%x", > > ctx->id, > > ctx->picinfo.buf_w, ctx->picinfo.buf_h, > > ctx->picinfo.pic_w, ctx->picinfo.pic_h, > > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0], > > - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1]); > > + dst_q_data->sizeimage[0], > > + dst_q_data->sizeimage[1]); > > > > ret = vdec_if_get_param(ctx, GET_PARAM_DPB_SIZE, &dpbsize); > > if (dpbsize == 0) > > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > > index e7e2a10..662a84b 100644 > > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > > @@ -211,24 +211,20 @@ struct mtk_vcodec_pm { > > * @pic_h: picture height > > * @buf_w: picture buffer width (64 aligned up from pic_w) > > * @buf_h: picture buffer heiht (64 aligned up from pic_h) > > - * @y_bs_sz: Y bitstream size > > - * @c_bs_sz: CbCr bitstream size > > - * @y_len_sz: additional size required to store decompress information for y > > - * plane > > - * @c_len_sz: additional size required to store decompress information for cbcr > > - * plane > > + * @fb_sz: bitstream size of each plane > > * E.g. suppose picture size is 176x144, > > * buffer size will be aligned to 176x160. > > + * @cap_fourcc: fourcc number(may changed when resolution change) > > + * @reserved: align struct to 64-bit in order to adjust 32-bit and 64-bit os. > > */ > > struct vdec_pic_info { > > unsigned int pic_w; > > unsigned int pic_h; > > unsigned int buf_w; > > unsigned int buf_h; > > - unsigned int y_bs_sz; > > - unsigned int c_bs_sz; > > - unsigned int y_len_sz; > > - unsigned int c_len_sz; > > + unsigned int fb_sz[VIDEO_MAX_PLANES]; > > + unsigned int cap_fourcc; > > + unsigned int reserved; > > }; > > > > /** > > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > > index 02c960c..cdbcd69 100644 > > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > > @@ -253,8 +253,8 @@ static void get_pic_info(struct vdec_h264_inst *inst, > > *pic = inst->vsi->pic; > > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > > + pic->fb_sz[0], pic->fb_sz[1]); > > } > > > > static void get_crop_info(struct vdec_h264_inst *inst, struct v4l2_rect *cr) > > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > > index bac3723..ba79136 100644 > > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > > @@ -294,8 +294,8 @@ static void get_pic_info(struct vdec_vp8_inst *inst, struct vdec_pic_info *pic) > > > > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > > + pic->fb_sz[0], pic->fb_sz[1]); > > } > > > > static void vp8_dec_finish(struct vdec_vp8_inst *inst) > > diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > > index bc8349b..6fe8320 100644 > > --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > > +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > > @@ -702,10 +702,8 @@ static void init_all_fb_lists(struct vdec_vp9_inst *inst) > > > > static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > > { > > - pic->y_bs_sz = inst->vsi->buf_sz_y_bs; > > - pic->c_bs_sz = inst->vsi->buf_sz_c_bs; > > - pic->y_len_sz = inst->vsi->buf_len_sz_y; > > - pic->c_len_sz = inst->vsi->buf_len_sz_c; > > + pic->fb_sz[0] = inst->vsi->buf_sz_y_bs + inst->vsi->buf_len_sz_y; > > + pic->fb_sz[1] = inst->vsi->buf_sz_c_bs + inst->vsi->buf_len_sz_c; > > > > pic->pic_w = inst->vsi->pic_w; > > pic->pic_h = inst->vsi->pic_h; > > @@ -714,8 +712,9 @@ static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > > > > mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > > pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > > - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > > - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > > + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > > + pic->fb_sz[0], > > + pic->fb_sz[1]); > > } > > > > static void get_disp_fb(struct vdec_vp9_inst *inst, struct vdec_fb **out_fb) > > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields 2019-04-01 9:28 ` yunfei.dong @ 2019-04-01 9:32 ` Hans Verkuil 2019-04-01 9:39 ` yunfei.dong 0 siblings, 1 reply; 22+ messages in thread From: Hans Verkuil @ 2019-04-01 9:32 UTC (permalink / raw) To: yunfei.dong Cc: tiffany.lin, linux-mediatek, linux-arm-kernel, linux-firmware, linux-media On 4/1/19 11:28 AM, yunfei.dong wrote: > Dear Hans, > > I am very sorry. > > This is not v4. > And I just want to send vpu firmware patch(vpu_d.bin) in github, it > looks that I sent a error patch. > > Sorry to bother you. Just to be clear: I can ignore this patch? Regards, Hans > > Best Regards, > Yunfei Dong > > > On Mon, 2019-04-01 at 11:06 +0200, Hans Verkuil wrote: >> On 4/1/19 10:18 AM, Yunfei Dong wrote: >>> Enlarge the plane number to support more complex case >>> and add the support for fmt change case. >> >> Is this v4 of this patch? What are the changes since v3? >> >> Regards, >> >> Hans >> >>> >>> Change-Id: If61f994b8853f370967fb81b92b407e2c2ae94b8 >>> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> >>> --- >>> drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 62 +++++++++++++------- >>> drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 16 ++--- >>> .../media/platform/mtk-vcodec/vdec/vdec_h264_if.c | 4 +- >>> .../media/platform/mtk-vcodec/vdec/vdec_vp8_if.c | 4 +- >>> .../media/platform/mtk-vcodec/vdec/vdec_vp9_if.c | 11 ++-- >>> 5 files changed, 57 insertions(+), 40 deletions(-) >>> >>> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c >>> index d022c65..43587c0 100644 >>> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c >>> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c >>> @@ -129,9 +129,9 @@ static struct vb2_buffer *get_display_buffer(struct mtk_vcodec_ctx *ctx) >>> mutex_lock(&ctx->lock); >>> if (dstbuf->used) { >>> vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 0, >>> - ctx->picinfo.y_bs_sz); >>> + ctx->picinfo.fb_sz[0]); >>> vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 1, >>> - ctx->picinfo.c_bs_sz); >>> + ctx->picinfo.fb_sz[1]); >>> >>> dstbuf->ready_to_display = true; >>> >>> @@ -278,6 +278,27 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx) >>> clean_free_buffer(ctx); >>> } >>> >>> +static void mtk_vdec_update_fmt(struct mtk_vcodec_ctx *ctx, >>> + unsigned int pixelformat) >>> +{ >>> + struct mtk_video_fmt *fmt; >>> + struct mtk_q_data *dst_q_data; >>> + unsigned int k; >>> + >>> + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; >>> + for (k = 0; k < NUM_FORMATS; k++) { >>> + fmt = &mtk_video_formats[k]; >>> + if (fmt->fourcc == pixelformat) { >>> + mtk_v4l2_debug(1, "Update cap fourcc(%d -> %d)", >>> + dst_q_data->fmt.fourcc, pixelformat); >>> + dst_q_data->fmt = fmt; >>> + return; >>> + } >>> + } >>> + >>> + mtk_v4l2_err("Cannot get fourcc(%d), using init value", pixelformat); >>> +} >>> + >>> static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) >>> { >>> unsigned int dpbsize = 0; >>> @@ -299,6 +320,10 @@ static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) >>> return -EINVAL; >>> } >>> >>> + if (ctx->last_decoded_picinfo.cap_fourcc != ctx->picinfo.cap_fourcc && >>> + ctx->picinfo.cap_fourcc != 0) >>> + mtk_vdec_update_fmt(ctx, ctx->picinfo.cap_fourcc); >>> + >>> if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) || >>> (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h)) >>> return 0; >>> @@ -352,11 +377,11 @@ static void mtk_vdec_worker(struct work_struct *work) >>> pfb = &dst_buf_info->frame_buffer; >>> pfb->base_y.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 0); >>> pfb->base_y.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); >>> - pfb->base_y.size = ctx->picinfo.y_bs_sz + ctx->picinfo.y_len_sz; >>> + pfb->base_y.size = ctx->picinfo.fb_sz[0]; >>> >>> pfb->base_c.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 1); >>> pfb->base_c.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 1); >>> - pfb->base_c.size = ctx->picinfo.c_bs_sz + ctx->picinfo.c_len_sz; >>> + pfb->base_c.size = ctx->picinfo.fb_sz[1]; >>> pfb->status = 0; >>> mtk_v4l2_debug(3, "===>[%d] vdec_if_decode() ===>", ctx->id); >>> >>> @@ -976,14 +1001,13 @@ static int vidioc_vdec_g_fmt(struct file *file, void *priv, >>> * So we just return picinfo yet, and update picinfo in >>> * stop_streaming hook function >>> */ >>> - q_data->sizeimage[0] = ctx->picinfo.y_bs_sz + >>> - ctx->picinfo.y_len_sz; >>> - q_data->sizeimage[1] = ctx->picinfo.c_bs_sz + >>> - ctx->picinfo.c_len_sz; >>> + q_data->sizeimage[0] = ctx->picinfo.fb_sz[0]; >>> + q_data->sizeimage[1] = ctx->picinfo.fb_sz[1]; >>> q_data->bytesperline[0] = ctx->last_decoded_picinfo.buf_w; >>> q_data->bytesperline[1] = ctx->last_decoded_picinfo.buf_w; >>> q_data->coded_width = ctx->picinfo.buf_w; >>> q_data->coded_height = ctx->picinfo.buf_h; >>> + ctx->last_decoded_picinfo.cap_fourcc = q_data->fmt->fourcc; >>> >>> /* >>> * Width and height are set to the dimensions >>> @@ -1103,10 +1127,11 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) >>> struct mtk_vcodec_mem src_mem; >>> bool res_chg = false; >>> int ret = 0; >>> - unsigned int dpbsize = 1; >>> + unsigned int dpbsize = 1, i = 0; >>> struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); >>> struct vb2_v4l2_buffer *vb2_v4l2 = NULL; >>> struct mtk_video_dec_buf *buf = NULL; >>> + struct mtk_q_data *dst_q_data; >>> >>> mtk_v4l2_debug(3, "[%d] (%d) id=%d, vb=%p", >>> ctx->id, vb->vb2_queue->type, >>> @@ -1194,21 +1219,18 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) >>> } >>> >>> ctx->last_decoded_picinfo = ctx->picinfo; >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0] = >>> - ctx->picinfo.y_bs_sz + >>> - ctx->picinfo.y_len_sz; >>> - ctx->q_data[MTK_Q_DATA_DST].bytesperline[0] = >>> - ctx->picinfo.buf_w; >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1] = >>> - ctx->picinfo.c_bs_sz + >>> - ctx->picinfo.c_len_sz; >>> - ctx->q_data[MTK_Q_DATA_DST].bytesperline[1] = ctx->picinfo.buf_w; >>> + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; >>> + for (i = 0; i < dst_q_data->fmt->num_planes; i++) { >>> + dst_q_data->sizeimage[i] = ctx->picinfo.fb_sz[i]; >>> + dst_q_data->bytesperline[i] = ctx->picinfo.buf_w; >>> + } >>> + >>> mtk_v4l2_debug(2, "[%d] vdec_if_init() OK wxh=%dx%d pic wxh=%dx%d sz[0]=0x%x sz[1]=0x%x", >>> ctx->id, >>> ctx->picinfo.buf_w, ctx->picinfo.buf_h, >>> ctx->picinfo.pic_w, ctx->picinfo.pic_h, >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0], >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1]); >>> + dst_q_data->sizeimage[0], >>> + dst_q_data->sizeimage[1]); >>> >>> ret = vdec_if_get_param(ctx, GET_PARAM_DPB_SIZE, &dpbsize); >>> if (dpbsize == 0) >>> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h >>> index e7e2a10..662a84b 100644 >>> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h >>> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h >>> @@ -211,24 +211,20 @@ struct mtk_vcodec_pm { >>> * @pic_h: picture height >>> * @buf_w: picture buffer width (64 aligned up from pic_w) >>> * @buf_h: picture buffer heiht (64 aligned up from pic_h) >>> - * @y_bs_sz: Y bitstream size >>> - * @c_bs_sz: CbCr bitstream size >>> - * @y_len_sz: additional size required to store decompress information for y >>> - * plane >>> - * @c_len_sz: additional size required to store decompress information for cbcr >>> - * plane >>> + * @fb_sz: bitstream size of each plane >>> * E.g. suppose picture size is 176x144, >>> * buffer size will be aligned to 176x160. >>> + * @cap_fourcc: fourcc number(may changed when resolution change) >>> + * @reserved: align struct to 64-bit in order to adjust 32-bit and 64-bit os. >>> */ >>> struct vdec_pic_info { >>> unsigned int pic_w; >>> unsigned int pic_h; >>> unsigned int buf_w; >>> unsigned int buf_h; >>> - unsigned int y_bs_sz; >>> - unsigned int c_bs_sz; >>> - unsigned int y_len_sz; >>> - unsigned int c_len_sz; >>> + unsigned int fb_sz[VIDEO_MAX_PLANES]; >>> + unsigned int cap_fourcc; >>> + unsigned int reserved; >>> }; >>> >>> /** >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c >>> index 02c960c..cdbcd69 100644 >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c >>> @@ -253,8 +253,8 @@ static void get_pic_info(struct vdec_h264_inst *inst, >>> *pic = inst->vsi->pic; >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", >>> + pic->fb_sz[0], pic->fb_sz[1]); >>> } >>> >>> static void get_crop_info(struct vdec_h264_inst *inst, struct v4l2_rect *cr) >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c >>> index bac3723..ba79136 100644 >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c >>> @@ -294,8 +294,8 @@ static void get_pic_info(struct vdec_vp8_inst *inst, struct vdec_pic_info *pic) >>> >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", >>> + pic->fb_sz[0], pic->fb_sz[1]); >>> } >>> >>> static void vp8_dec_finish(struct vdec_vp8_inst *inst) >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c >>> index bc8349b..6fe8320 100644 >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c >>> @@ -702,10 +702,8 @@ static void init_all_fb_lists(struct vdec_vp9_inst *inst) >>> >>> static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) >>> { >>> - pic->y_bs_sz = inst->vsi->buf_sz_y_bs; >>> - pic->c_bs_sz = inst->vsi->buf_sz_c_bs; >>> - pic->y_len_sz = inst->vsi->buf_len_sz_y; >>> - pic->c_len_sz = inst->vsi->buf_len_sz_c; >>> + pic->fb_sz[0] = inst->vsi->buf_sz_y_bs + inst->vsi->buf_len_sz_y; >>> + pic->fb_sz[1] = inst->vsi->buf_sz_c_bs + inst->vsi->buf_len_sz_c; >>> >>> pic->pic_w = inst->vsi->pic_w; >>> pic->pic_h = inst->vsi->pic_h; >>> @@ -714,8 +712,9 @@ static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) >>> >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", >>> + pic->fb_sz[0], >>> + pic->fb_sz[1]); >>> } >>> >>> static void get_disp_fb(struct vdec_vp9_inst *inst, struct vdec_fb **out_fb) >>> >> > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields 2019-04-01 9:32 ` Hans Verkuil @ 2019-04-01 9:39 ` yunfei.dong 0 siblings, 0 replies; 22+ messages in thread From: yunfei.dong @ 2019-04-01 9:39 UTC (permalink / raw) To: Hans Verkuil Cc: tiffany.lin, linux-mediatek, linux-arm-kernel, linux-firmware, linux-media Dear Hans, Thanks for your help. Just ignore this patch, and v3 is ok. Best Regards, Yunfei Dong On Mon, 2019-04-01 at 11:32 +0200, Hans Verkuil wrote: > On 4/1/19 11:28 AM, yunfei.dong wrote: > > Dear Hans, > > > > I am very sorry. > > > > This is not v4. > > And I just want to send vpu firmware patch(vpu_d.bin) in github, it > > looks that I sent a error patch. > > > > Sorry to bother you. > > Just to be clear: I can ignore this patch? > > Regards, > > Hans > > > > > Best Regards, > > Yunfei Dong > > > > > > On Mon, 2019-04-01 at 11:06 +0200, Hans Verkuil wrote: > >> On 4/1/19 10:18 AM, Yunfei Dong wrote: > >>> Enlarge the plane number to support more complex case > >>> and add the support for fmt change case. > >> > >> Is this v4 of this patch? What are the changes since v3? > >> > >> Regards, > >> > >> Hans > >> > >>> > >>> Change-Id: If61f994b8853f370967fb81b92b407e2c2ae94b8 > >>> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> > >>> --- > >>> drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 62 +++++++++++++------- > >>> drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 16 ++--- > >>> .../media/platform/mtk-vcodec/vdec/vdec_h264_if.c | 4 +- > >>> .../media/platform/mtk-vcodec/vdec/vdec_vp8_if.c | 4 +- > >>> .../media/platform/mtk-vcodec/vdec/vdec_vp9_if.c | 11 ++-- > >>> 5 files changed, 57 insertions(+), 40 deletions(-) > >>> > >>> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > >>> index d022c65..43587c0 100644 > >>> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > >>> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c > >>> @@ -129,9 +129,9 @@ static struct vb2_buffer *get_display_buffer(struct mtk_vcodec_ctx *ctx) > >>> mutex_lock(&ctx->lock); > >>> if (dstbuf->used) { > >>> vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 0, > >>> - ctx->picinfo.y_bs_sz); > >>> + ctx->picinfo.fb_sz[0]); > >>> vb2_set_plane_payload(&dstbuf->vb.vb2_buf, 1, > >>> - ctx->picinfo.c_bs_sz); > >>> + ctx->picinfo.fb_sz[1]); > >>> > >>> dstbuf->ready_to_display = true; > >>> > >>> @@ -278,6 +278,27 @@ static void mtk_vdec_flush_decoder(struct mtk_vcodec_ctx *ctx) > >>> clean_free_buffer(ctx); > >>> } > >>> > >>> +static void mtk_vdec_update_fmt(struct mtk_vcodec_ctx *ctx, > >>> + unsigned int pixelformat) > >>> +{ > >>> + struct mtk_video_fmt *fmt; > >>> + struct mtk_q_data *dst_q_data; > >>> + unsigned int k; > >>> + > >>> + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > >>> + for (k = 0; k < NUM_FORMATS; k++) { > >>> + fmt = &mtk_video_formats[k]; > >>> + if (fmt->fourcc == pixelformat) { > >>> + mtk_v4l2_debug(1, "Update cap fourcc(%d -> %d)", > >>> + dst_q_data->fmt.fourcc, pixelformat); > >>> + dst_q_data->fmt = fmt; > >>> + return; > >>> + } > >>> + } > >>> + > >>> + mtk_v4l2_err("Cannot get fourcc(%d), using init value", pixelformat); > >>> +} > >>> + > >>> static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > >>> { > >>> unsigned int dpbsize = 0; > >>> @@ -299,6 +320,10 @@ static int mtk_vdec_pic_info_update(struct mtk_vcodec_ctx *ctx) > >>> return -EINVAL; > >>> } > >>> > >>> + if (ctx->last_decoded_picinfo.cap_fourcc != ctx->picinfo.cap_fourcc && > >>> + ctx->picinfo.cap_fourcc != 0) > >>> + mtk_vdec_update_fmt(ctx, ctx->picinfo.cap_fourcc); > >>> + > >>> if ((ctx->last_decoded_picinfo.pic_w == ctx->picinfo.pic_w) || > >>> (ctx->last_decoded_picinfo.pic_h == ctx->picinfo.pic_h)) > >>> return 0; > >>> @@ -352,11 +377,11 @@ static void mtk_vdec_worker(struct work_struct *work) > >>> pfb = &dst_buf_info->frame_buffer; > >>> pfb->base_y.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 0); > >>> pfb->base_y.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0); > >>> - pfb->base_y.size = ctx->picinfo.y_bs_sz + ctx->picinfo.y_len_sz; > >>> + pfb->base_y.size = ctx->picinfo.fb_sz[0]; > >>> > >>> pfb->base_c.va = vb2_plane_vaddr(&dst_buf->vb2_buf, 1); > >>> pfb->base_c.dma_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 1); > >>> - pfb->base_c.size = ctx->picinfo.c_bs_sz + ctx->picinfo.c_len_sz; > >>> + pfb->base_c.size = ctx->picinfo.fb_sz[1]; > >>> pfb->status = 0; > >>> mtk_v4l2_debug(3, "===>[%d] vdec_if_decode() ===>", ctx->id); > >>> > >>> @@ -976,14 +1001,13 @@ static int vidioc_vdec_g_fmt(struct file *file, void *priv, > >>> * So we just return picinfo yet, and update picinfo in > >>> * stop_streaming hook function > >>> */ > >>> - q_data->sizeimage[0] = ctx->picinfo.y_bs_sz + > >>> - ctx->picinfo.y_len_sz; > >>> - q_data->sizeimage[1] = ctx->picinfo.c_bs_sz + > >>> - ctx->picinfo.c_len_sz; > >>> + q_data->sizeimage[0] = ctx->picinfo.fb_sz[0]; > >>> + q_data->sizeimage[1] = ctx->picinfo.fb_sz[1]; > >>> q_data->bytesperline[0] = ctx->last_decoded_picinfo.buf_w; > >>> q_data->bytesperline[1] = ctx->last_decoded_picinfo.buf_w; > >>> q_data->coded_width = ctx->picinfo.buf_w; > >>> q_data->coded_height = ctx->picinfo.buf_h; > >>> + ctx->last_decoded_picinfo.cap_fourcc = q_data->fmt->fourcc; > >>> > >>> /* > >>> * Width and height are set to the dimensions > >>> @@ -1103,10 +1127,11 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > >>> struct mtk_vcodec_mem src_mem; > >>> bool res_chg = false; > >>> int ret = 0; > >>> - unsigned int dpbsize = 1; > >>> + unsigned int dpbsize = 1, i = 0; > >>> struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); > >>> struct vb2_v4l2_buffer *vb2_v4l2 = NULL; > >>> struct mtk_video_dec_buf *buf = NULL; > >>> + struct mtk_q_data *dst_q_data; > >>> > >>> mtk_v4l2_debug(3, "[%d] (%d) id=%d, vb=%p", > >>> ctx->id, vb->vb2_queue->type, > >>> @@ -1194,21 +1219,18 @@ static void vb2ops_vdec_buf_queue(struct vb2_buffer *vb) > >>> } > >>> > >>> ctx->last_decoded_picinfo = ctx->picinfo; > >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0] = > >>> - ctx->picinfo.y_bs_sz + > >>> - ctx->picinfo.y_len_sz; > >>> - ctx->q_data[MTK_Q_DATA_DST].bytesperline[0] = > >>> - ctx->picinfo.buf_w; > >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1] = > >>> - ctx->picinfo.c_bs_sz + > >>> - ctx->picinfo.c_len_sz; > >>> - ctx->q_data[MTK_Q_DATA_DST].bytesperline[1] = ctx->picinfo.buf_w; > >>> + dst_q_data = &ctx->q_data[MTK_Q_DATA_DST]; > >>> + for (i = 0; i < dst_q_data->fmt->num_planes; i++) { > >>> + dst_q_data->sizeimage[i] = ctx->picinfo.fb_sz[i]; > >>> + dst_q_data->bytesperline[i] = ctx->picinfo.buf_w; > >>> + } > >>> + > >>> mtk_v4l2_debug(2, "[%d] vdec_if_init() OK wxh=%dx%d pic wxh=%dx%d sz[0]=0x%x sz[1]=0x%x", > >>> ctx->id, > >>> ctx->picinfo.buf_w, ctx->picinfo.buf_h, > >>> ctx->picinfo.pic_w, ctx->picinfo.pic_h, > >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[0], > >>> - ctx->q_data[MTK_Q_DATA_DST].sizeimage[1]); > >>> + dst_q_data->sizeimage[0], > >>> + dst_q_data->sizeimage[1]); > >>> > >>> ret = vdec_if_get_param(ctx, GET_PARAM_DPB_SIZE, &dpbsize); > >>> if (dpbsize == 0) > >>> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > >>> index e7e2a10..662a84b 100644 > >>> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > >>> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > >>> @@ -211,24 +211,20 @@ struct mtk_vcodec_pm { > >>> * @pic_h: picture height > >>> * @buf_w: picture buffer width (64 aligned up from pic_w) > >>> * @buf_h: picture buffer heiht (64 aligned up from pic_h) > >>> - * @y_bs_sz: Y bitstream size > >>> - * @c_bs_sz: CbCr bitstream size > >>> - * @y_len_sz: additional size required to store decompress information for y > >>> - * plane > >>> - * @c_len_sz: additional size required to store decompress information for cbcr > >>> - * plane > >>> + * @fb_sz: bitstream size of each plane > >>> * E.g. suppose picture size is 176x144, > >>> * buffer size will be aligned to 176x160. > >>> + * @cap_fourcc: fourcc number(may changed when resolution change) > >>> + * @reserved: align struct to 64-bit in order to adjust 32-bit and 64-bit os. > >>> */ > >>> struct vdec_pic_info { > >>> unsigned int pic_w; > >>> unsigned int pic_h; > >>> unsigned int buf_w; > >>> unsigned int buf_h; > >>> - unsigned int y_bs_sz; > >>> - unsigned int c_bs_sz; > >>> - unsigned int y_len_sz; > >>> - unsigned int c_len_sz; > >>> + unsigned int fb_sz[VIDEO_MAX_PLANES]; > >>> + unsigned int cap_fourcc; > >>> + unsigned int reserved; > >>> }; > >>> > >>> /** > >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > >>> index 02c960c..cdbcd69 100644 > >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_h264_if.c > >>> @@ -253,8 +253,8 @@ static void get_pic_info(struct vdec_h264_inst *inst, > >>> *pic = inst->vsi->pic; > >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > >>> + pic->fb_sz[0], pic->fb_sz[1]); > >>> } > >>> > >>> static void get_crop_info(struct vdec_h264_inst *inst, struct v4l2_rect *cr) > >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > >>> index bac3723..ba79136 100644 > >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp8_if.c > >>> @@ -294,8 +294,8 @@ static void get_pic_info(struct vdec_vp8_inst *inst, struct vdec_pic_info *pic) > >>> > >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > >>> + pic->fb_sz[0], pic->fb_sz[1]); > >>> } > >>> > >>> static void vp8_dec_finish(struct vdec_vp8_inst *inst) > >>> diff --git a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > >>> index bc8349b..6fe8320 100644 > >>> --- a/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > >>> +++ b/drivers/media/platform/mtk-vcodec/vdec/vdec_vp9_if.c > >>> @@ -702,10 +702,8 @@ static void init_all_fb_lists(struct vdec_vp9_inst *inst) > >>> > >>> static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > >>> { > >>> - pic->y_bs_sz = inst->vsi->buf_sz_y_bs; > >>> - pic->c_bs_sz = inst->vsi->buf_sz_c_bs; > >>> - pic->y_len_sz = inst->vsi->buf_len_sz_y; > >>> - pic->c_len_sz = inst->vsi->buf_len_sz_c; > >>> + pic->fb_sz[0] = inst->vsi->buf_sz_y_bs + inst->vsi->buf_len_sz_y; > >>> + pic->fb_sz[1] = inst->vsi->buf_sz_c_bs + inst->vsi->buf_len_sz_c; > >>> > >>> pic->pic_w = inst->vsi->pic_w; > >>> pic->pic_h = inst->vsi->pic_h; > >>> @@ -714,8 +712,9 @@ static void get_pic_info(struct vdec_vp9_inst *inst, struct vdec_pic_info *pic) > >>> > >>> mtk_vcodec_debug(inst, "pic(%d, %d), buf(%d, %d)", > >>> pic->pic_w, pic->pic_h, pic->buf_w, pic->buf_h); > >>> - mtk_vcodec_debug(inst, "Y(%d, %d), C(%d, %d)", pic->y_bs_sz, > >>> - pic->y_len_sz, pic->c_bs_sz, pic->c_len_sz); > >>> + mtk_vcodec_debug(inst, "fb size: Y(%d), C(%d)", > >>> + pic->fb_sz[0], > >>> + pic->fb_sz[1]); > >>> } > >>> > >>> static void get_disp_fb(struct vdec_vp9_inst *inst, struct vdec_fb **out_fb) > >>> > >> > > > > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2020-12-10 2:07 Irui Wang 2020-12-18 19:04 ` Josh Boyer 0 siblings, 1 reply; 22+ messages in thread From: Irui Wang @ 2020-12-10 2:07 UTC (permalink / raw) To: linux-firmware Cc: Andrew-CT.Chen, Maoguang.Meng, srv_heupstream, irui.wang, Yunfei.Dong, erin.lo, Longfei.Wang, linux-mediatek, PoChun.Lin, tiffany.lin, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 7455a36066741a6e52fba65e04f6451b4cdfd9c4: Merge branch 'guc_v49' of git://anongit.freedesktop.org/drm/drm-firmware into main (2020-11-30 09:26:11 -0500) are available in the Git repository at: https://github.com/irui-wang/linux_fw_vpu_v1.1.6.git v1.1.6 for you to fetch changes up to 0fe0fe022b7f88f581254487b1d1768df1b218bb: mediatek: update MT8173 VPU firmware to v1.1.6 (2020-12-10 09:38:07 +0800) ---------------------------------------------------------------- Irui Wang (1): mediatek: update MT8173 VPU firmware to v1.1.6 mediatek/mt8173/vpu_d.bin | Bin 2977184 -> 2977184 bytes mediatek/mt8173/vpu_p.bin | Bin 131180 -> 131180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2020-12-10 2:07 pull request: linux-firmware: Update Mediatek MT8173 VPU firmware Irui Wang @ 2020-12-18 19:04 ` Josh Boyer 0 siblings, 0 replies; 22+ messages in thread From: Josh Boyer @ 2020-12-18 19:04 UTC (permalink / raw) To: Irui Wang Cc: Andrew-CT.Chen, Maoguang Meng, srv_heupstream, Yunfei Dong, Erin Lo, Longfei Wang, Linux Firmware, linux-mediatek, PoChun.Lin, Tiffany Lin, linux-arm-kernel, Linux Media Mailing List Pulled and pushed out. josh On Wed, Dec 9, 2020 at 9:07 PM Irui Wang <irui.wang@mediatek.com> wrote: > > Hi linux-firmware maintainers, > > The following changes since commit 7455a36066741a6e52fba65e04f6451b4cdfd9c4: > > Merge branch 'guc_v49' of git://anongit.freedesktop.org/drm/drm-firmware into main (2020-11-30 09:26:11 -0500) > > are available in the Git repository at: > > https://github.com/irui-wang/linux_fw_vpu_v1.1.6.git v1.1.6 > > for you to fetch changes up to 0fe0fe022b7f88f581254487b1d1768df1b218bb: > > mediatek: update MT8173 VPU firmware to v1.1.6 (2020-12-10 09:38:07 +0800) > > ---------------------------------------------------------------- > Irui Wang (1): > mediatek: update MT8173 VPU firmware to v1.1.6 > > mediatek/mt8173/vpu_d.bin | Bin 2977184 -> 2977184 bytes > mediatek/mt8173/vpu_p.bin | Bin 131180 -> 131180 bytes > 2 files changed, 0 insertions(+), 0 deletions(-) > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2020-02-18 10:03 gtk_ruiwang 2020-02-19 12:32 ` Josh Boyer 0 siblings, 1 reply; 22+ messages in thread From: gtk_ruiwang @ 2020-02-18 10:03 UTC (permalink / raw) To: linux-firmware Cc: gtk_ruiwang, Maoguang Meng, Alexandre Courbot, srv_heupstream, Yunfei Dong, Longfei Wang, linux-kernel, Tomasz Figa, linux-mediatek, PoChun.Lin, Tiffany Lin, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 6f89735800fe3af761104defdb81b50b6d6402f0: rtl_nic: update firmware for RTL8153A (2020-02-07 08:30:37 -0500) are available in the Git repository at: https://github.com/ruiwang-mtk/linux_fw_vpu_v1.1.4.git for you to fetch changes up to 0bd965d5e4b0d24e2fc054a933fea3a8c22af92b: mediatek: update MT8173 VPU firmware to v1.1.4 (2020-02-18 17:27:30 +0800) ---------------------------------------------------------------- gtk_ruiwang (1): mediatek: update MT8173 VPU firmware to v1.1.4 vpu_d.bin | Bin 2977136 -> 2977184 bytes vpu_p.bin | Bin 131180 -> 131180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2020-02-18 10:03 gtk_ruiwang @ 2020-02-19 12:32 ` Josh Boyer 0 siblings, 0 replies; 22+ messages in thread From: Josh Boyer @ 2020-02-19 12:32 UTC (permalink / raw) To: gtk_ruiwang Cc: Maoguang Meng, Alexandre Courbot, srv_heupstream, Yunfei Dong, Longfei Wang, Linux-Kernel@Vger. Kernel. Org, Linux Firmware, Tomasz Figa, linux-mediatek, PoChun.Lin, Tiffany Lin, linux-arm-kernel, Linux Media Mailing List On Tue, Feb 18, 2020 at 5:04 AM <gtk_ruiwang@mediatek.com> wrote: > > Hi linux-firmware maintainers, > > The following changes since commit 6f89735800fe3af761104defdb81b50b6d6402f0: > > rtl_nic: update firmware for RTL8153A (2020-02-07 08:30:37 -0500) > > are available in the Git repository at: > > https://github.com/ruiwang-mtk/linux_fw_vpu_v1.1.4.git > > for you to fetch changes up to 0bd965d5e4b0d24e2fc054a933fea3a8c22af92b: > > mediatek: update MT8173 VPU firmware to v1.1.4 (2020-02-18 17:27:30 +0800) > > ---------------------------------------------------------------- > gtk_ruiwang (1): > mediatek: update MT8173 VPU firmware to v1.1.4 > > vpu_d.bin | Bin 2977136 -> 2977184 bytes > vpu_p.bin | Bin 131180 -> 131180 bytes > 2 files changed, 0 insertions(+), 0 deletions(-) Pulled and pushed out. josh _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2020-01-14 9:18 gtk_ruiwang 2020-01-14 13:34 ` Josh Boyer 0 siblings, 1 reply; 22+ messages in thread From: gtk_ruiwang @ 2020-01-14 9:18 UTC (permalink / raw) To: linux-firmware Cc: gtk_ruiwang, Maoguang Meng, Alexandre Courbot, srv_heupstream, Yunfei Dong, Longfei Wang, linux-kernel, Tomasz Figa, linux-mediatek, PoChun.Lin, Tiffany Lin, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 67d4ff59bf3334895626cf165e508e9eb1846e24: Mellanox: Add new mlxsw_spectrum firmware xx.2000.2714 (2020-01-07 09:08:25 -0500) are available in the Git repository at: https://github.com/ruiwang-mtk/linux_fw_vpu_v1.1.3.git for you to fetch changes up to 7f3177d224ee7afdd6e36ed01a13f499d671e167: mediatek: update MT8173 VPU firmware to v1.1.3 (2020-01-14 15:33:19 +0800) ---------------------------------------------------------------- gtk_ruiwang (1): mediatek: update MT8173 VPU firmware to v1.1.3 vpu_d.bin | Bin 2977008 -> 2977136 bytes vpu_p.bin | Bin 131180 -> 131180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2020-01-14 9:18 gtk_ruiwang @ 2020-01-14 13:34 ` Josh Boyer 0 siblings, 0 replies; 22+ messages in thread From: Josh Boyer @ 2020-01-14 13:34 UTC (permalink / raw) To: gtk_ruiwang Cc: Maoguang Meng, Alexandre Courbot, srv_heupstream, Yunfei Dong, Longfei Wang, Linux-Kernel@Vger. Kernel. Org, Linux Firmware, Tomasz Figa, linux-mediatek, PoChun.Lin, Tiffany Lin, linux-arm-kernel, Linux Media Mailing List On Tue, Jan 14, 2020 at 4:18 AM <gtk_ruiwang@mediatek.com> wrote: > > Hi linux-firmware maintainers, > > The following changes since commit 67d4ff59bf3334895626cf165e508e9eb1846e24: > > Mellanox: Add new mlxsw_spectrum firmware xx.2000.2714 (2020-01-07 09:08:25 -0500) > > are available in the Git repository at: > > https://github.com/ruiwang-mtk/linux_fw_vpu_v1.1.3.git > > for you to fetch changes up to 7f3177d224ee7afdd6e36ed01a13f499d671e167: > > mediatek: update MT8173 VPU firmware to v1.1.3 (2020-01-14 15:33:19 +0800) > > ---------------------------------------------------------------- > gtk_ruiwang (1): > mediatek: update MT8173 VPU firmware to v1.1.3 > > vpu_d.bin | Bin 2977008 -> 2977136 bytes > vpu_p.bin | Bin 131180 -> 131180 bytes > 2 files changed, 0 insertions(+), 0 deletions(-) Pulled the v1.1.3 branch and pushed out. I'm assuming the pull request is sufficient since it looks like the patch you sent separately is the only thing in the pull request. Let me know if there is something else needed with the patch. josh _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2019-04-02 2:05 Yunfei Dong 2019-04-02 11:58 ` Josh Boyer 0 siblings, 1 reply; 22+ messages in thread From: Yunfei Dong @ 2019-04-02 2:05 UTC (permalink / raw) To: linux-firmware Cc: srv_heupstream, yunfei.dong, linux-mediatek, tiffany.lin, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 7bc246451318b3536d9bfd3c4e46d541a9831b33: Merge branch 'for-upstream' of git://git.chelsio.net/pub/git/linux-firmware (2019-03-14 08:22:39 -0400) are available in the git repository at: https://github.com/yunfei-dong/linux_fw_vpu_v1.1.2.git v1.1.2 for you to fetch changes up to c1b685587a6ffd651e900eff4e945619487f91bc: mediatek: update MT8173 VPU firmware to v1.1.2 (2019-04-01 16:02:08 +0800) ---------------------------------------------------------------- Yunfei Dong (1): mediatek: update MT8173 VPU firmware to v1.1.2 vpu_d.bin | Bin 2977008 -> 2977008 bytes vpu_p.bin | Bin 131168 -> 131180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2019-04-02 2:05 Yunfei Dong @ 2019-04-02 11:58 ` Josh Boyer 0 siblings, 0 replies; 22+ messages in thread From: Josh Boyer @ 2019-04-02 11:58 UTC (permalink / raw) To: Yunfei Dong Cc: srv_heupstream, Linux Firmware, linux-mediatek, Tiffany Lin, linux-arm-kernel, Linux Media Mailing List On Mon, Apr 1, 2019 at 10:05 PM Yunfei Dong <yunfei.dong@mediatek.com> wrote: > > Hi linux-firmware maintainers, > > The following changes since commit 7bc246451318b3536d9bfd3c4e46d541a9831b33: > > Merge branch 'for-upstream' of git://git.chelsio.net/pub/git/linux-firmware (2019-03-14 08:22:39 -0400) > > are available in the git repository at: > > https://github.com/yunfei-dong/linux_fw_vpu_v1.1.2.git v1.1.2 > > for you to fetch changes up to c1b685587a6ffd651e900eff4e945619487f91bc: > > mediatek: update MT8173 VPU firmware to v1.1.2 (2019-04-01 16:02:08 +0800) > > ---------------------------------------------------------------- > Yunfei Dong (1): > mediatek: update MT8173 VPU firmware to v1.1.2 > > vpu_d.bin | Bin 2977008 -> 2977008 bytes vpu_p.bin | Bin 131168 -> 131180 bytes > 2 files changed, 0 insertions(+), 0 deletions(-) Pulled and pushed out. Thanks. josh ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2018-01-17 13:35 pochun.lin 2018-01-19 12:11 ` Josh Boyer 0 siblings, 1 reply; 22+ messages in thread From: pochun.lin @ 2018-01-17 13:35 UTC (permalink / raw) To: linux-firmware Cc: linux-mediatek, linux-arm-kernel, linux-media, tiffany.lin, eddie.huang, wuchengli, srv_heupstream The following changes since commit 65b1c68c63f974d72610db38dfae49861117cae2: wl18xx: update firmware file 8.9.0.0.76 (2018-01-04 10:06:01 -0500) are available in the git repository at: https://github.com/pochun-lin/linux_fw_vpu_v1.0.8.git v1.0.8 for you to fetch changes up to e72c23c9ff2ceeb3509cb6441cc81f0227edf06d: mediatek: update MT8173 VPU firmware to 1.0.8 (2018-01-17 20:19:56 +0800) ---------------------------------------------------------------- pochun.lin (1): mediatek: update MT8173 VPU firmware to 1.0.8 vpu_d.bin | Bin 4082928 -> 2977008 bytes vpu_p.bin | Bin 131160 -> 131168 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2018-01-17 13:35 pochun.lin @ 2018-01-19 12:11 ` Josh Boyer 0 siblings, 0 replies; 22+ messages in thread From: Josh Boyer @ 2018-01-19 12:11 UTC (permalink / raw) To: pochun.lin Cc: Linux Firmware, linux-mediatek, linux-arm-kernel, Linux Media Mailing List, tiffany.lin, eddie.huang, wuchengli, srv_heupstream On Wed, Jan 17, 2018 at 8:35 AM, <pochun.lin@mediatek.com> wrote: > The following changes since commit 65b1c68c63f974d72610db38dfae49861117cae2: > > wl18xx: update firmware file 8.9.0.0.76 (2018-01-04 10:06:01 -0500) > > are available in the git repository at: > > https://github.com/pochun-lin/linux_fw_vpu_v1.0.8.git v1.0.8 > > for you to fetch changes up to e72c23c9ff2ceeb3509cb6441cc81f0227edf06d: > > mediatek: update MT8173 VPU firmware to 1.0.8 (2018-01-17 20:19:56 +0800) > > ---------------------------------------------------------------- > pochun.lin (1): > mediatek: update MT8173 VPU firmware to 1.0.8 Pulled and pushed out. If the firmware is versioned, perhaps that version should be listed in the WHENCE file? You might want to add that in a future patch. josh ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2017-07-20 7:59 Andrew-CT Chen 2017-07-28 7:11 ` andrew-ct chen 0 siblings, 1 reply; 22+ messages in thread From: Andrew-CT Chen @ 2017-07-20 7:59 UTC (permalink / raw) To: linux-firmware Cc: linux-mediatek, linux-arm-kernel, linux-media, tiffany.lin, eddie.huang, wuchengli, Longfei.Wang, erin.lo, srv_heupstream Hi linux-firmware maintainers, The following changes since commit 7d2c913dcd1be083350d97a8cb1eba24cfacbc8a: ath10k: update year in license (2017-06-22 12:06:02 -0700) are available in the git repository at: https://github.com/andrewct-chen/linux_fw_vpu_v1.0.5.git v1.0.5 for you to fetch changes up to 0d4ab52ba9be6f619024d7a57b1af05a03daa099: mediatek: update MT8173 VPU firmware to 1.0.5 (2017-07-20 15:27:05 +0800) ---------------------------------------------------------------- Andrew-CT Chen (1): mediatek: update MT8173 VPU firmware to 1.0.5 vpu_d.bin | Bin 4082928 -> 2977008 bytes vpu_p.bin | Bin 131160 -> 131324 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2017-07-20 7:59 Andrew-CT Chen @ 2017-07-28 7:11 ` andrew-ct chen 0 siblings, 0 replies; 22+ messages in thread From: andrew-ct chen @ 2017-07-28 7:11 UTC (permalink / raw) To: linux-firmware Cc: eddie.huang, srv_heupstream, wuchengli, Longfei.Wang, linux-mediatek, tiffany.lin, erin.lo, linux-arm-kernel, linux-media Hi linux-firmware maintainers, Sorry, problems with this release firmware. We will release v1.0.6 in a few days. Thanks a lot. Andrew On Thu, 2017-07-20 at 15:59 +0800, Andrew-CT Chen wrote: > Hi linux-firmware maintainers, > > The following changes since commit 7d2c913dcd1be083350d97a8cb1eba24cfacbc8a: > > ath10k: update year in license (2017-06-22 12:06:02 -0700) > > are available in the git repository at: > > https://github.com/andrewct-chen/linux_fw_vpu_v1.0.5.git v1.0.5 > > for you to fetch changes up to 0d4ab52ba9be6f619024d7a57b1af05a03daa099: > > mediatek: update MT8173 VPU firmware to 1.0.5 (2017-07-20 15:27:05 +0800) > > ---------------------------------------------------------------- > Andrew-CT Chen (1): > mediatek: update MT8173 VPU firmware to 1.0.5 > > vpu_d.bin | Bin 4082928 -> 2977008 bytes > vpu_p.bin | Bin 131160 -> 131324 bytes > 2 files changed, 0 insertions(+), 0 deletions(-) > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2017-03-28 7:37 Andrew-CT Chen 2017-04-04 22:48 ` Kyle McMartin 0 siblings, 1 reply; 22+ messages in thread From: Andrew-CT Chen @ 2017-03-28 7:37 UTC (permalink / raw) To: linux-firmware Cc: eddie.huang, srv_heupstream, wuchengli, linux-mediatek, tiffany.lin, linux-arm-kernel, linux-media Hi linux-firmware maintainers, The following changes since commit 44d8e8d4fdcdff56e9e21208d4b4aa7cd6962656: Merge branch 'master' of https://github.com/Netronome/linux-firmware (2017-03-24 09:43:35 -0700) are available in the git repository at: https://github.com/andrewct-chen/linux_fw_vpu_v1.0.4.git vp9_profile for you to fetch changes up to 936f3e98847e89f119b24e0fa50f7028d667c744: mediatek: update MT8173 VPU firmware for unsupported VP9 profiles (2017-03-28 15:21:24 +0800) ---------------------------------------------------------------- Andrew-CT Chen (1): mediatek: update MT8173 VPU firmware for unsupported VP9 profiles vpu_d.bin | Bin 4082928 -> 4082928 bytes vpu_p.bin | Bin 131160 -> 131160 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2017-03-28 7:37 Andrew-CT Chen @ 2017-04-04 22:48 ` Kyle McMartin 0 siblings, 0 replies; 22+ messages in thread From: Kyle McMartin @ 2017-04-04 22:48 UTC (permalink / raw) To: Andrew-CT Chen Cc: eddie.huang, srv_heupstream, wuchengli, linux-firmware, linux-mediatek, tiffany.lin, linux-arm-kernel, linux-media On Tue, Mar 28, 2017 at 03:37:29PM +0800, Andrew-CT Chen wrote: > Hi linux-firmware maintainers, > > The following changes since commit 44d8e8d4fdcdff56e9e21208d4b4aa7cd6962656: > > Merge branch 'master' of https://github.com/Netronome/linux-firmware (2017-03-24 09:43:35 -0700) > > are available in the git repository at: > > > https://github.com/andrewct-chen/linux_fw_vpu_v1.0.4.git vp9_profile > > for you to fetch changes up to 936f3e98847e89f119b24e0fa50f7028d667c744: > > mediatek: update MT8173 VPU firmware for unsupported VP9 profiles (2017-03-28 15:21:24 +0800) > Pulled, thanks Andrew-CT. regards, Kyle ^ permalink raw reply [flat|nested] 22+ messages in thread
* pull request: linux-firmware: Update Mediatek MT8173 VPU firmware @ 2016-11-11 12:09 Andrew-CT Chen 2016-11-21 17:27 ` Kyle McMartin 0 siblings, 1 reply; 22+ messages in thread From: Andrew-CT Chen @ 2016-11-11 12:09 UTC (permalink / raw) To: linux-firmware Cc: linux-mediatek, linux-arm-kernel, linux-media, tiffany.lin, eddie.huang, wuchengli, srv_heupstream Hi linux-firmware maintainers, The following changes since commit a179db97914da5e650c21ba8f9b0bae04a0f8a41: amdgpu: update SMC firmware for VI parts (2016-10-05 10:30:11 -0700) are available in the git repository at: https://github.com/andrewct-chen/linux_fw_vpu_v1.0.3.git v1.0.3 for you to fetch changes up to f52fd5b4f156bd1eef672d29abbdc57cf310ac1b: mediatek: update MT8173 VPU firmware for idle state (2016-11-11 19:34:56 +0800) ---------------------------------------------------------------- Andrew-CT Chen (1): mediatek: update MT8173 VPU firmware for idle state vpu_d.bin | Bin 4082928 -> 4082928 bytes vpu_p.bin | Bin 131160 -> 131160 bytes 2 files changed, 0 insertions(+), 0 deletions(-) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: pull request: linux-firmware: Update Mediatek MT8173 VPU firmware 2016-11-11 12:09 Andrew-CT Chen @ 2016-11-21 17:27 ` Kyle McMartin 0 siblings, 0 replies; 22+ messages in thread From: Kyle McMartin @ 2016-11-21 17:27 UTC (permalink / raw) To: Andrew-CT Chen Cc: linux-mediatek, linux-arm-kernel, linux-media, tiffany.lin, eddie.huang, wuchengli, srv_heupstream, linux-firmware On Fri, Nov 11, 2016 at 08:09:08PM +0800, Andrew-CT Chen wrote: > Hi linux-firmware maintainers, > > The following changes since commit a179db97914da5e650c21ba8f9b0bae04a0f8a41: > > amdgpu: update SMC firmware for VI parts (2016-10-05 10:30:11 -0700) > > are available in the git repository at: > > https://github.com/andrewct-chen/linux_fw_vpu_v1.0.3.git v1.0.3 > pulled, thanks. --kyle ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2020-12-18 19:05 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-04-01 8:18 pull request: linux-firmware: Update Mediatek MT8173 VPU firmware Yunfei Dong 2019-04-01 8:18 ` [PATCH] media: mtk-vcodec: enlarge struct vdec_pic_info fields Yunfei Dong 2019-04-01 9:06 ` Hans Verkuil 2019-04-01 9:28 ` yunfei.dong 2019-04-01 9:32 ` Hans Verkuil 2019-04-01 9:39 ` yunfei.dong -- strict thread matches above, loose matches on Subject: below -- 2020-12-10 2:07 pull request: linux-firmware: Update Mediatek MT8173 VPU firmware Irui Wang 2020-12-18 19:04 ` Josh Boyer 2020-02-18 10:03 gtk_ruiwang 2020-02-19 12:32 ` Josh Boyer 2020-01-14 9:18 gtk_ruiwang 2020-01-14 13:34 ` Josh Boyer 2019-04-02 2:05 Yunfei Dong 2019-04-02 11:58 ` Josh Boyer 2018-01-17 13:35 pochun.lin 2018-01-19 12:11 ` Josh Boyer 2017-07-20 7:59 Andrew-CT Chen 2017-07-28 7:11 ` andrew-ct chen 2017-03-28 7:37 Andrew-CT Chen 2017-04-04 22:48 ` Kyle McMartin 2016-11-11 12:09 Andrew-CT Chen 2016-11-21 17:27 ` Kyle McMartin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).