* 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
* 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
@ 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
@ 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
@ 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
@ 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
@ 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
@ 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-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
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).