From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751805AbdBUKQN (ORCPT ); Tue, 21 Feb 2017 05:16:13 -0500 Received: from mailout3.w1.samsung.com ([210.118.77.13]:54640 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751740AbdBUKQC (ORCPT ); Tue, 21 Feb 2017 05:16:02 -0500 X-AuditID: cbfec7f5-f79d06d000004445-92-58ac135d4ebb Subject: Re: [PATCH v4 2/4] [media] exynos-gsc: Respect userspace colorspace setting in try_fmt To: Thibault Saunier , linux-kernel@vger.kernel.org Cc: Mauro Carvalho Chehab , Marek Szyprowski , Kukjin Kim , Mauro Carvalho Chehab , Nicolas Dufresne , Andi Shyti , linux-media@vger.kernel.org, Shuah Khan , Javier Martinez Canillas , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Inki Dae , Sylwester Nawrocki , linux-arm-kernel@lists.infradead.org, Ulf Hansson , Hans Verkuil , Laurent Pinchart From: Andrzej Hajda Message-id: <096e059d-0a49-f1e0-a4e3-5c223ff15b3e@samsung.com> Date: Tue, 21 Feb 2017 11:15:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-version: 1.0 In-reply-to: <20170213190836.26972-3-thibault.saunier@osg.samsung.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Se0hTYRjG+c7Z2Y6r1XFTezNNmBQVZRMLPjQiKer8E/mfkkQe9GDlfdNu YBel2spaTjNbJUNnxNpK55XRzTnUKFxlZUUzo2lqSakpSmW5HQP/+73f8z48PC8fTcq9VCh9 MDufV2dzmUqxVNTcMdO9YZ/CmqSa7VPhFtcghc0zDgIbPl4W4W+jVgLrP38lsdtdJ8G6UrME 2z+/oXCP44YYl9Q1UbjS/ZDANpdHgm/ZfxP4ozkPO372iXH7t3MUvvLzhwhPPDaQuNOWuE3B lv+qp9hWjxmx17XXKNZu0YnZD2/ui9kG80m2Ue+RsPZxD8VearQgdsK+MkG6V7oljc88eJhX b9yaIj1gqPKSudPLjg6UDpKn0GvFeRRAA7MJXr10iwUOged99/wsZ2oReMuSzyPpHE8g6HLo iP8Gz6MqQhBuIbCWjomEYRBBXc8Dv13BcPDCaSJ9HMQkwlTvGf8SybgpuK2/hnyCmFkLfxre +Q0yZiuM1Az4WcSsgu9FnygfBzNJ0Pq2ZH4nEKbL+kQ+DmB2wtUr9f53klFBZXk7IXAENFhH SV8YMLU09PR3zRnouSEc7I9JocIO0Bpq5lkBI52NEoHDQKdtIwTvBQTj+i6JMJQjmP1ROe+I g/bOF5SQtgQMzVdJIUAG2rNyAVmw/o4XtuPBMllBChd6jaDMPEVeRhHGBX2MCzoYF3QwIdKC gvgCTVY6r9kcpeGyNAXZ6VGpOVl2NPf3ns52Trai2o5YJ2JopFwsa522JMkp7rDmWJYTAU0q g2SH5NYkuSyNO3acV+fsVxdk8honWkGLlMtk902vEuVMOpfPZ/B8Lq/+rxJ0QOgp1JvWsj61 2m0rmeRcqtPpMd73zkVE9t0Y2D06HGIOdG5pil36cHveX6aiJWVvtyS2enhXR1hDkVmrW545 bapQD6x+ULymUGV3RcsVQ4U2W2UNMVRcNbY98qJjz5cTUfwR1+CdnKLkicgP/c+kN+vottql uWFx4cHxownhTyTGDKVIc4CLXkeqNdw/cEpyn3cDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmleLIzCtJLcpLzFFi42I5/e/4Zd2NwmsiDM7fs7TYfuQZq8WSn7uY LCbdn8Bi8ebtGiaL/sevmS3On9/AbtE5cQm7xabH11gtLu+aw2bRs2Erq8WM8/uYLNYeuctu sWzTHyaL+0sKLXZ9ucdmcfhNO6vF1C8fWCw+H5jEbHF8bbiDsMeU3xtZPXbcXcLoMbtjJqvH plWdbB53ru1h89i8pN5jS/9ddo9Nn+6yevRtWcXo8XmTXABXlJtNRmpiSmqRQmpecn5KZl66 rVJoiJuuhZJCXmJuqq1ShK5vSJCSQlliTimQZ2SABhycA9yDlfTtEtwyJs17wlzwQ7zi6cRn zA2MV4W7GDk5JARMJO7un8cEYYtJXLi3nq2LkYtDSGAJo8SRCTuZIZxnjBKTepcwglQJCyRK XDy0gBnEFhEIlzh2rxGq4yqjxNenC8A6mAUuskr8fNrIDlLFJqAp8XfzTTYQm1fATuLV4qdg NouAqsT7poesILaoQITE/KermCBqBCV+TL7HAmJzCrhJTJ+6EaieA2ionsT9i1ogYWYBeYnN a94yT2AUmIWkYxZC1SwkVQsYmVcxiqSWFuem5xYb6hUn5haX5qXrJefnbmIEJoBtx35u3sF4 aWPwIUYBDkYlHt4dP1ZFCLEmlhVX5h5ilOBgVhLhzRJaEyHEm5JYWZValB9fVJqTWnyI0RTo hYnMUqLJ+cDklFcSb2hiaG5paGRsYWFuZKQkzlvy4Uq4kEB6YklqdmpqQWoRTB8TB6dUA+O0 qRryjcw/Hae5qU2s+PiexU5gZ0m49k/J644mVvHTJNjP32BrY1Nn+ND6JKWG73sfx9U/X3gO tPPse53BaCw6S/9DjbzGtK33fiZsW/nFP7TE2KapQFpu8sKugzx39Pf8LrmsclPH9d/paPkD 6V3ei/fEnW9dv+/MCq5nb+VW7bFWzRTZrKjEUpyRaKjFXFScCAB1zG6UFgMAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170221101557eucas1p18eaed85305b5c8457b1db17c8f6c6a23 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170213191038epcas2p2539b687d2abe16c8ca4e1deb21e9fb59 X-RootMTR: 20170213191038epcas2p2539b687d2abe16c8ca4e1deb21e9fb59 References: <20170213190836.26972-1-thibault.saunier@osg.samsung.com> <20170213190836.26972-3-thibault.saunier@osg.samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13.02.2017 20:08, Thibault Saunier wrote: > User userspace provided by the user as we are only doing scaling and > color encoding conversion, we won't be able to transform the colorspace > itself and the colorspace won't mater in that operation. > > Also always use output colorspace on the capture side. > > Signed-off-by: Thibault Saunier This patch can be squashed with previous one as the only thing to do is to set output colorspace the same as capture colorspace. -- Regards Andrzej > > --- > > Changes in v4: > - Use any colorspace provided by the user as it won't affect the way we > handle our operations (guessing it if none is provided) > - Always use output colorspace on the capture side > > Changes in v3: > - Do not check values in the g_fmt functions as Andrzej explained in previous review > - Set colorspace if user passed V4L2_COLORSPACE_DEFAULT in > > Changes in v2: None > > drivers/media/platform/exynos-gsc/gsc-core.c | 14 ++++++++++---- > drivers/media/platform/exynos-gsc/gsc-core.h | 1 + > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c > index db7d9883861b..772599de8c13 100644 > --- a/drivers/media/platform/exynos-gsc/gsc-core.c > +++ b/drivers/media/platform/exynos-gsc/gsc-core.c > @@ -454,6 +454,7 @@ int gsc_try_fmt_mplane(struct gsc_ctx *ctx, struct v4l2_format *f) > } else { > min_w = variant->pix_min->target_rot_dis_w; > min_h = variant->pix_min->target_rot_dis_h; > + pix_mp->colorspace = ctx->out_colorspace; > } > > pr_debug("mod_x: %d, mod_y: %d, max_w: %d, max_h = %d", > @@ -472,10 +473,15 @@ int gsc_try_fmt_mplane(struct gsc_ctx *ctx, struct v4l2_format *f) > > pix_mp->num_planes = fmt->num_planes; > > - if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > - pix_mp->colorspace = V4L2_COLORSPACE_REC709; > - else /* SD */ > - pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + if (pix_mp->colorspace == V4L2_COLORSPACE_DEFAULT) { > + if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > + pix_mp->colorspace = V4L2_COLORSPACE_REC709; > + else /* SD */ > + pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + } > + > + if (V4L2_TYPE_IS_OUTPUT(f->type)) > + ctx->out_colorspace = pix_mp->colorspace; > > for (i = 0; i < pix_mp->num_planes; ++i) { > struct v4l2_plane_pix_format *plane_fmt = &pix_mp->plane_fmt[i]; > diff --git a/drivers/media/platform/exynos-gsc/gsc-core.h b/drivers/media/platform/exynos-gsc/gsc-core.h > index 696217e9af66..715d9c9d8d30 100644 > --- a/drivers/media/platform/exynos-gsc/gsc-core.h > +++ b/drivers/media/platform/exynos-gsc/gsc-core.h > @@ -376,6 +376,7 @@ struct gsc_ctx { > struct v4l2_ctrl_handler ctrl_handler; > struct gsc_ctrls gsc_ctrls; > bool ctrls_rdy; > + enum v4l2_colorspace out_colorspace; > }; > > void gsc_set_prefbuf(struct gsc_dev *gsc, struct gsc_frame *frm);