From: Xia Jiang <xia.jiang@mediatek.com>
To: Hans Verkuil <hverkuil-cisco@xs4all.nl>,
Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Rick Chang <rick.chang@mediatek.com>
Cc: <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-mediatek@lists.infradead.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Tomasz Figa <tfiga@chromium.org>, <srv_heupstream@mediatek.com>,
<senozhatsky@chromium.org>, <mojahsu@chromium.org>,
<drinkcat@chromium.org>, <maoguang.meng@mediatek.com>,
Xia Jiang <xia.jiang@mediatek.com>
Subject: [PATCH v10 09/28] media: platform: Cancel the last frame handling flow
Date: Thu, 23 Jul 2020 11:04:32 +0800 [thread overview]
Message-ID: <20200723030451.5616-10-xia.jiang@mediatek.com> (raw)
In-Reply-To: <20200723030451.5616-1-xia.jiang@mediatek.com>
There is no need to queue an empty buffer for signaling a last frame,
because all frames are separate from each other in JPEG.
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Xia Jiang <xia.jiang@mediatek.com>
---
v10: delete mtk_jpeg_qbuf()
---
.../media/platform/mtk-jpeg/mtk_jpeg_core.c | 46 +------------------
1 file changed, 2 insertions(+), 44 deletions(-)
diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
index 9baeeacb4452..ffb486e537b6 100644
--- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
+++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
@@ -55,15 +55,9 @@ static struct mtk_jpeg_fmt mtk_jpeg_formats[] = {
#define MTK_JPEG_NUM_FORMATS ARRAY_SIZE(mtk_jpeg_formats)
-enum {
- MTK_JPEG_BUF_FLAGS_INIT = 0,
- MTK_JPEG_BUF_FLAGS_LAST_FRAME = 1,
-};
-
struct mtk_jpeg_src_buf {
struct vb2_v4l2_buffer b;
struct list_head list;
- int flags;
struct mtk_jpeg_dec_param dec_param;
};
@@ -501,31 +495,6 @@ static int mtk_jpeg_s_selection(struct file *file, void *priv,
return 0;
}
-static int mtk_jpeg_qbuf(struct file *file, void *priv, struct v4l2_buffer *buf)
-{
- struct v4l2_fh *fh = file->private_data;
- struct mtk_jpeg_ctx *ctx = mtk_jpeg_fh_to_ctx(priv);
- struct vb2_queue *vq;
- struct vb2_buffer *vb;
- struct mtk_jpeg_src_buf *jpeg_src_buf;
-
- if (buf->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
- goto end;
-
- vq = v4l2_m2m_get_vq(fh->m2m_ctx, buf->type);
- if (buf->index >= vq->num_buffers) {
- dev_err(ctx->jpeg->dev, "buffer index out of range\n");
- return -EINVAL;
- }
-
- vb = vb2_get_buffer(vq, buf->index);
- jpeg_src_buf = mtk_jpeg_vb2_to_srcbuf(vb);
- jpeg_src_buf->flags = (buf->m.planes[0].bytesused == 0) ?
- MTK_JPEG_BUF_FLAGS_LAST_FRAME : MTK_JPEG_BUF_FLAGS_INIT;
-end:
- return v4l2_m2m_qbuf(file, fh->m2m_ctx, buf);
-}
-
static const struct v4l2_ioctl_ops mtk_jpeg_ioctl_ops = {
.vidioc_querycap = mtk_jpeg_querycap,
.vidioc_enum_fmt_vid_cap = mtk_jpeg_enum_fmt_vid_cap,
@@ -536,7 +505,7 @@ static const struct v4l2_ioctl_ops mtk_jpeg_ioctl_ops = {
.vidioc_g_fmt_vid_out_mplane = mtk_jpeg_g_fmt_vid_mplane,
.vidioc_s_fmt_vid_cap_mplane = mtk_jpeg_s_fmt_vid_cap_mplane,
.vidioc_s_fmt_vid_out_mplane = mtk_jpeg_s_fmt_vid_out_mplane,
- .vidioc_qbuf = mtk_jpeg_qbuf,
+ .vidioc_qbuf = v4l2_m2m_ioctl_qbuf,
.vidioc_subscribe_event = mtk_jpeg_subscribe_event,
.vidioc_g_selection = mtk_jpeg_g_selection,
.vidioc_s_selection = mtk_jpeg_s_selection,
@@ -676,10 +645,6 @@ static void mtk_jpeg_buf_queue(struct vb2_buffer *vb)
param = &jpeg_src_buf->dec_param;
memset(param, 0, sizeof(*param));
- if (jpeg_src_buf->flags & MTK_JPEG_BUF_FLAGS_LAST_FRAME) {
- v4l2_dbg(1, debug, &jpeg->v4l2_dev, "Got eos\n");
- goto end;
- }
header_valid = mtk_jpeg_parse(param, (u8 *)vb2_plane_vaddr(vb, 0),
vb2_get_plane_payload(vb, 0));
if (!header_valid) {
@@ -792,19 +757,12 @@ static void mtk_jpeg_device_run(void *priv)
struct mtk_jpeg_src_buf *jpeg_src_buf;
struct mtk_jpeg_bs bs;
struct mtk_jpeg_fb fb;
- int i, ret;
+ int ret;
src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx);
dst_buf = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx);
jpeg_src_buf = mtk_jpeg_vb2_to_srcbuf(&src_buf->vb2_buf);
- if (jpeg_src_buf->flags & MTK_JPEG_BUF_FLAGS_LAST_FRAME) {
- for (i = 0; i < dst_buf->vb2_buf.num_planes; i++)
- vb2_set_plane_payload(&dst_buf->vb2_buf, i, 0);
- buf_state = VB2_BUF_STATE_DONE;
- goto dec_end;
- }
-
if (mtk_jpeg_check_resolution_change(ctx, &jpeg_src_buf->dec_param)) {
mtk_jpeg_queue_src_chg_event(ctx);
ctx->state = MTK_JPEG_SOURCE_CHANGE;
--
2.18.0
next prev parent reply other threads:[~2020-07-23 3:06 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-23 3:04 [PATCH v10 00/28] Add support for mt2701 JPEG ENC support Xia Jiang
2020-07-23 3:04 ` [PATCH v10 01/28] media: platform: Improve subscribe event flow for bug fixing Xia Jiang
2020-07-23 3:04 ` [PATCH v10 02/28] media: platform: Improve queue set up " Xia Jiang
2020-07-23 3:04 ` [PATCH v10 03/28] media: platform: Improve getting and requesting irq " Xia Jiang
2020-07-23 3:04 ` [PATCH v10 04/28] media: platform: Change the fixed device node number to unfixed value Xia Jiang
2020-07-23 3:04 ` [PATCH v10 05/28] media: platform: Improve power on and power off flow Xia Jiang
2020-07-23 3:04 ` [PATCH v10 06/28] media: platform: Delete the resetting hardware flow in the system PM ops Xia Jiang
2020-07-23 3:04 ` [PATCH v10 07/28] media: platform: Improve the implementation of " Xia Jiang
2020-07-23 3:04 ` [PATCH v10 08/28] media: platform: Add mechanism to handle jpeg hardware's locking up Xia Jiang
2020-07-23 3:04 ` Xia Jiang [this message]
2020-07-23 3:04 ` [PATCH v10 10/28] media: platform: Delete zeroing the reserved fields Xia Jiang
2020-07-23 3:04 ` [PATCH v10 11/28] media: platform: Stylistic changes for improving code quality Xia Jiang
2020-07-23 3:04 ` [PATCH v10 12/28] media: platform: Use generic rounding helpers Xia Jiang
2020-07-23 3:04 ` [PATCH v10 13/28] media: platform: Change MTK_JPEG_COMP_MAX macro definition location Xia Jiang
2020-07-23 3:04 ` [PATCH v10 14/28] media: platform: Delete redundant code and add annotation for an enum Xia Jiang
2020-07-23 3:04 ` [PATCH v10 15/28] media: platform: Delete vidioc_s_selection ioctl of jpeg dec Xia Jiang
2020-07-23 3:04 ` [PATCH v10 16/28] media: platform: Change the maximum width and height supported by JPEG dec Xia Jiang
2020-07-23 3:04 ` [PATCH v10 17/28] media: platform: Refactor mtk_jpeg_try_fmt_mplane() Xia Jiang
2020-07-23 3:04 ` [PATCH v10 18/28] media: platform: Refactor mtk_jpeg_find_format() Xia Jiang
2020-07-23 3:04 ` [PATCH v10 19/28] media: platform: Redefinition of mtk_jpeg_q_data structure Xia Jiang
2020-07-23 3:04 ` [PATCH v10 20/28] media: platform: Change the colorspace of jpeg to the fixed value Xia Jiang
2020-07-23 3:04 ` [PATCH v10 21/28] media: platform: Refactor mtk_jpeg_set_default_params() Xia Jiang
2020-07-23 3:04 ` [PATCH v10 22/28] media: platform: Change the call functions of getting/enable/disable the jpeg's clock Xia Jiang
2020-07-30 16:34 ` Tomasz Figa
2020-07-31 3:20 ` Xia Jiang
2020-07-31 12:49 ` Tomasz Figa
2020-07-23 3:04 ` [PATCH v10 23/28] media: dt-bindings: Add jpeg enc device tree node document Xia Jiang
2020-07-23 3:04 ` [PATCH v10 24/28] arm: dts: mt2701: Add jpeg enc device tree node Xia Jiang
2020-07-23 3:04 ` [PATCH v10 25/28] media: platform: Rename jpeg dec file name Xia Jiang
2020-07-23 3:04 ` [PATCH v10 26/28] media: platform: Rename existing functions/defines/variables Xia Jiang
2020-07-23 3:04 ` [PATCH v10 27/28] media: platform: Using the variant structure to contain the varability between dec and enc Xia Jiang
2020-07-23 3:04 ` [PATCH v10 28/28] media: platform: Add jpeg enc feature Xia Jiang
2020-07-30 16:40 ` [PATCH v10 00/28] Add support for mt2701 JPEG ENC support Tomasz Figa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200723030451.5616-10-xia.jiang@mediatek.com \
--to=xia.jiang@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=drinkcat@chromium.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=m.szyprowski@samsung.com \
--cc=maoguang.meng@mediatek.com \
--cc=matthias.bgg@gmail.com \
--cc=mchehab+samsung@kernel.org \
--cc=mojahsu@chromium.org \
--cc=rick.chang@mediatek.com \
--cc=robh+dt@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=srv_heupstream@mediatek.com \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).