From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752758AbdF2MDb (ORCPT ); Thu, 29 Jun 2017 08:03:31 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:28366 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752143AbdF2MDZ (ORCPT ); Thu, 29 Jun 2017 08:03:25 -0400 X-AuditID: cbfec7f5-f792f6d0000063e9-42-5954ec89b080 Subject: Re: [PATCH v3 1/8] [media] s5p-jpeg: Call jpeg_bound_align_image after qbuf To: Thierry Escande , Jacek Anaszewski , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org From: Andrzej Pietrasiewicz Message-id: Date: Thu, 29 Jun 2017 14:03:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-version: 1.0 In-reply-to: <1498579734-1594-2-git-send-email-thierry.escande@collabora.com> Content-type: text/plain; charset=utf-8; format=flowed Content-language: en-US Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDKsWRmVeSWpSXmKPExsWy7djP87qdb0IiDf40WVjc3rqBxeLyrjls Fj0btrJaLNv0h8mi/+olNgdWjx13lzB67Jx1l91j06pONo/Pm+QCWKK4bFJSczLLUov07RK4 Mm5PmsVScF244t3sl+wNjGf4uxg5OSQETCSe3JrPCmGLSVy4t56ti5GLQ0hgKaPE/VN7mSCc z4wSL5a0sMF0/D11iRkisYxRouXAd1YI5wWjxIa1D1lAqoQFwiTOt7wHaxcRmMAocWDbTnaQ BLOArUTHoU6wIjYBY4m9BzsYQWxeATuJCwv6mEBsFgFViZnzJ4PFRQUiJBZNmsgOUSMo8WPy PbBeTgFfiYV/mpggZlpJPPvXygphi0s0t95kgbDlJTaveQt2qoTAPHaJrmO3gBIcQI6sxKYD zBDvuEg8nNXNCGELS7w6voUdwpaR6Ow4yATROxnos5sfWCCc7YwSa4+dgAaZtcTh4xehNvNJ TNo2nRliAa9ER5sQRImHxMMdEAdJCDhKrLvWCrZASOAxMFBPCE5gVJiF5LdZSP6ZheSfWUj+ WcDIsopRJLW0ODc9tdhUrzgxt7g0L10vOT93EyMwzZz+d/zrDsalx6wOMQpwMCrx8DKsDY4U Yk0sK67MPcQowcGsJMLL/CIkUog3JbGyKrUoP76oNCe1+BCjNAeLkjgv16lrEUIC6Yklqdmp qQWpRTBZJg5OqQZGl4o+xZ4L1lNYH/CHypv8TW066/mtxvX6QY/4NatmRLCorA8QMV8iGvAx tlnl9d6lVaz/Pl0I6j215K3eyWM3xfreT09pfWoaVf9l7XbJ77O3dc7OP9CUnh3Fs1yjctWL MC9GZsuGRdUuByYq6i6eZPDEki+2SdtBefdcr0sGU5bK9ixVefhXiaU4I9FQi7moOBEAWgqy Pi8DAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrFIsWRmVeSWpSXmKPExsVy+t/xq7qdb0IiDU4flbW4vXUDi8XlXXPY LHo2bGW1WLbpD5NF/9VLbA6sHjvuLmH02DnrLrvHplWdbB6fN8kFsES52WSkJqakFimk5iXn p2TmpdsqhYa46VooKeQl5qbaKkXo+oYEKSmUJeaUAnlGBmjAwTnAPVhJ3y7BLeP2pFksBdeF K97NfsnewHiGv4uRk0NCwETi76lLzBC2mMSFe+vZuhi5OIQEljBKvHx5EiwhJPCCUWLK60wQ W1ggTGLhhqOMIEUiApMYJVZu/csEkmAWsJXoONTJAtHwmFHi5yRWEJtNwFhi78EORhCbV8BO 4sKCPrB6FgFViZnzJ4PFRQUiJHZdP8AKUSMo8WPyPbA5nAK+Egv/NEHNN5P48vIwK4QtLtHc epMFwpaX2LzmLfMERsFZSNpnIWmZhaRlFpKWBYwsqxhFUkuLc9Nziw31ihNzi0vz0vWS83M3 MQLjbduxn5t3MF7aGHyIUYCDUYmHd8Wq4Egh1sSy4srcQ4wSHMxKIrzML0IihXhTEiurUovy 44tKc1KLDzGaAj03kVlKNDkfmArySuINTQzNLQ2NjC0szI2MlMR5Sz5cCRcSSE8sSc1OTS1I LYLpY+LglGpg5JY+vlGOIZHp9GSjiw6/puvuWTSx0O90a9Etz4Zf0/v2xEx5uiaCRVxszi3z uaYVDIz3elzl76lEfmMSaBXhS1L4xhAu8nh3zlWLyV5coomz1kSdPSQ869POJUYNnoFmApdd JDknnWn8Z3Vr6wEru1R/U5l5do8+lex//uOcMbvf28jL2x7EK7EUZyQaajEXFScCAKEdnxDN AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170629120321eucas1p191e039f55989741a6156dd6a7bb67e2e X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBQaWV0cmFzaWV3aWN6G1NSUE9MLUtlcm5lbCAo?= =?UTF-8?B?VFApG+yCvOyEseyghOyekBtTZW5pb3IgU29mdHdhcmUgRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBUb21hc3ogUGlldHJhc2lld2ljehtTUlBPTC1L?= =?UTF-8?B?ZXJuZWwgKFRQKRtTYW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2Fy?= =?UTF-8?B?ZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170627160913epcas5p2ea9942cca0a47a97006d39c02fe1aa58 X-RootMTR: 20170627160913epcas5p2ea9942cca0a47a97006d39c02fe1aa58 References: <1498579734-1594-1-git-send-email-thierry.escande@collabora.com> <1498579734-1594-2-git-send-email-thierry.escande@collabora.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org W dniu 27.06.2017 o 18:08, Thierry Escande pisze: > From: Tony K Nadackal > > When queuing an OUTPUT buffer for decoder, s5p_jpeg_parse_hdr() > function parses the input jpeg file and takes the width and height > parameters from its header. These new width/height values will be used > for the calculation of stride. HX_JPEG Hardware needs the width and > height values aligned on a 16 bits boundary. This width/height alignment > is handled in the s5p_jpeg_s_fmt_vid_cap() function during the S_FMT > ioctl call. > > But if user space calls the QBUF of OUTPUT buffer after the S_FMT of > CAPTURE buffer, these aligned values will be replaced by the values in > jpeg header. If the width/height values of jpeg are not aligned, the > decoder output will be corrupted. So in this patch we call > jpeg_bound_align_image() to align the width/height values of Capture > buffer in s5p_jpeg_buf_queue(). > > Signed-off-by: Tony K Nadackal > Signed-off-by: Thierry Escande Acked-by: Andrzej Pietrasiewicz > --- > drivers/media/platform/s5p-jpeg/jpeg-core.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c > index 52dc794..623508d 100644 > --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c > +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c > @@ -2523,6 +2523,25 @@ static void s5p_jpeg_buf_queue(struct vb2_buffer *vb) > q_data = &ctx->cap_q; > q_data->w = tmp.w; > q_data->h = tmp.h; > + > + /* > + * This call to jpeg_bound_align_image() takes care of width and > + * height values alignment when user space calls the QBUF of > + * OUTPUT buffer after the S_FMT of CAPTURE buffer. > + * Please note that on Exynos4x12 SoCs, resigning from executing > + * S_FMT on capture buffer for each JPEG image can result in a > + * hardware hangup if subsampling is lower than the one of input > + * JPEG. > + */ > + jpeg_bound_align_image(ctx, > + &q_data->w, > + S5P_JPEG_MIN_WIDTH, S5P_JPEG_MAX_WIDTH, > + q_data->fmt->h_align, > + &q_data->h, > + S5P_JPEG_MIN_HEIGHT, S5P_JPEG_MAX_HEIGHT, > + q_data->fmt->v_align); > + > + q_data->size = q_data->w * q_data->h * q_data->fmt->depth >> 3; > } > > v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vbuf); >