Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp4530737pxb; Thu, 14 Oct 2021 07:05:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpYTU1pIWYEBoDug6dHZaV0QzVw3JIXM3/DhygsYOMAWi+NDkiT19qCYiQFKKt9WcuUILm X-Received: by 2002:a17:902:74c7:b0:13f:48e1:3cd2 with SMTP id f7-20020a17090274c700b0013f48e13cd2mr5139918plt.33.1634220308695; Thu, 14 Oct 2021 07:05:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634220308; cv=none; d=google.com; s=arc-20160816; b=L5vDgA4FZIInV5HmT22jUQ/Xr5EAK8xPrb8RjdeHuw+OdZsDbiKfXmv+fz5sGObbui FkKN4mgJWmnzs8HQSqbvYmBRZEWiGGzIwnqkA2Vtn5pDBzKDV8FvJFAv8NTOg7S9sJ4X /nQ+Av+eg5o0TMos7NCYniAoFaUddkvqL3vGS3m977Gqk4IF4XXRwl7q5b4gpig+s8PA VCodq9fPBtwcoWUtEYxE2BbSzrkciUeRiFFMEsQGFSEfeezA+u6AFZbjvZBbj4q+kqkU X54SP6nB09r9ekRkK9lwQRLP2Z816zbY5WKh8piufSzxHlJz5YTn3In8Zx76VsuWPMU3 9E6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=gMW7UXdmvsJT5m+Unn8LuzhWNMWKfB1LZgpARZu3h64=; b=dSeR6lfiDmewL6qqFD2kOF9yVtZb4A/ZFpqH6NGmhSqBvCNaCMOSj+emvfZ6kmakt9 trNfKSzZxDuaFDGArGULsSPjF6sPwZ/xVLAnhe7aZEyKC3XNBJc54KxE+TjLwggqFRkT omrzVEW7KhUGrVQ6xUZd7rX9obk3JXEyY20MW2MCRllSGptz+4bcoH4uKSa/DYEHaEoU Eg9nTwa9MUy5PFp971CxS+rfvrA+ikHjhm8rrOK/F6ABAKUURrQAf30fbmF0CPUVkuRT RKj8gCyJzTbYZOjvn8vUnlGywAPMkqKmqJnpuINTBQPVoqYgdMsm8m2lc3lEGARrX1oC gpuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=SMa678vt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l64si3312024pge.394.2021.10.14.07.04.48; Thu, 14 Oct 2021 07:05:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=SMa678vt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231683AbhJNODZ (ORCPT + 99 others); Thu, 14 Oct 2021 10:03:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230177AbhJNODW (ORCPT ); Thu, 14 Oct 2021 10:03:22 -0400 Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68B0DC061570; Thu, 14 Oct 2021 07:01:17 -0700 (PDT) Received: by mail-io1-xd36.google.com with SMTP id p68so3873116iof.6; Thu, 14 Oct 2021 07:01:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gMW7UXdmvsJT5m+Unn8LuzhWNMWKfB1LZgpARZu3h64=; b=SMa678vtRRct+9n4DfGBLqZbAGScVM2pO7kFcUbYoWYWLOdtHvFOApF+QasmcIS2Tv CnI5eTtKuh/YitnWZuy2znpW3L0iEW4gMf6tZSprPWTp89c+yVavbOy5Jflg9r/QIryH n7MUf89CrFHtn6vAn3k8vUMP9ai+o4KiK3jbhVL1OOuETLycRiN+FzYDN0MQyiF4Q7Mj SYupSuR5H7jBsKb2grUm7L3tt6VXVSiiBCqAdDVyzj+cCya9uTVJG3rSVOAdp/Ye8WE0 USkqWmuvqTT+4W6t4bEukf2Yi7MySr0G5i53x1vrtVSCFhBfFo/aMdNN1ZGEPg5LSG7s Tclw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gMW7UXdmvsJT5m+Unn8LuzhWNMWKfB1LZgpARZu3h64=; b=Xa3u8kUpI+MPNMuzBqa6HyP7PUK0HWscRwSXz45rDyPhKzgX0x9MEZgEqyKxh1XX4O xrULuN3RvlqNHEKLQEdIQ2ajhyQJzY4aNBakUXHrNjd/E3Af+LQLvITqZvZj2OxfGxuX 407W96kTQbXDWr/+gU+/nB8qT2ls8qKRJI7zc2g1/AZEenU7wlPLT6fkYOgo+kG0ei19 IL5mB7Q6bUnb97ekITx4Ov/K7Jk3pAENUnVSkbMe/B7QFQ1vMaw67AdduIya+hAp1UD0 aR9UOlHz81+B2y0TUnIQCox3qwa91mRsAZ1KsA1EfKGxUMjzB5jx0+jGCevoLCccyv55 2mJg== X-Gm-Message-State: AOAM533tscGqeXiG9lesS1ILwzpayOzW1yjELsDdlp47YM+CxqsjL8Fa j4sZghoo1iTbjUK2A5Uflf0VBu8+M4f9mY1SCUqYgaYfrkIfoA== X-Received: by 2002:a05:6602:3cb:: with SMTP id g11mr2525849iov.204.1634220076780; Thu, 14 Oct 2021 07:01:16 -0700 (PDT) MIME-Version: 1.0 References: <1634207106-7632-1-git-send-email-dillon.minfei@gmail.com> <1634207106-7632-7-git-send-email-dillon.minfei@gmail.com> <2b0739f1-85e4-6b19-ff30-2587f0c622c2@xs4all.nl> <1d0e5b17-dd2c-d3d3-c514-775806ae99c9@xs4all.nl> In-Reply-To: <1d0e5b17-dd2c-d3d3-c514-775806ae99c9@xs4all.nl> From: Dillon Min Date: Thu, 14 Oct 2021 22:00:54 +0800 Message-ID: Subject: Re: [PATCH v4 6/8] media: v4l2-ctrls: Add RGB color effects control To: Hans Verkuil Cc: Mauro Carvalho Chehab , mchehab+huawei@kernel.org, ezequiel@collabora.com, gnurou@gmail.com, Pi-Hsun Shih , Maxime Coquelin , Alexandre TORGUE , Michael Turquette , Stephen Boyd , Rob Herring , gabriel.fernandez@st.com, gabriel.fernandez@foss.st.com, Patrice CHOTARD , hugues.fruchet@foss.st.com, linux-media , Linux Kernel Mailing List , linux-stm32@st-md-mailman.stormreply.com, Linux ARM , linux-clk , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 14 Oct 2021 at 19:22, Hans Verkuil wrote: > > On 14/10/2021 12:53, Dillon Min wrote: > > Hi Hans > > > > Thanks for quick reply > > > > On Thu, 14 Oct 2021 at 18:44, Hans Verkuil wrote: > >> > >> On 14/10/2021 12:25, dillon.minfei@gmail.com wrote: > >>> From: Dillon Min > >>> > >>> Add V4L2_COLORFX_SET_RGB color effects control, V4L2_CID_COLORFX_RGB > >>> for RGB color setting. > >>> > >>> Signed-off-by: Dillon Min > >>> --- > >>> v4: > >>> - replace V4L2_COLORFX_SET_ARGB, V4L2_CID_COLORFX_ARGB to > >>> V4L2_COLORFX_SET_RGB, V4L2_CID_COLORFX_RGB since Alpha paramter not used > >>> in current. thanks Hans. > >>> > >>> Documentation/userspace-api/media/v4l/control.rst | 9 +++++++++ > >>> drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++ > >>> include/uapi/linux/v4l2-controls.h | 4 +++- > >>> 3 files changed, 14 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/Documentation/userspace-api/media/v4l/control.rst b/Documentation/userspace-api/media/v4l/control.rst > >>> index f8d0b923da20..3eec65174260 100644 > >>> --- a/Documentation/userspace-api/media/v4l/control.rst > >>> +++ b/Documentation/userspace-api/media/v4l/control.rst > >>> @@ -242,8 +242,17 @@ Control IDs > >>> * - ``V4L2_COLORFX_SET_CBCR`` > >>> - The Cb and Cr chroma components are replaced by fixed coefficients > >>> determined by ``V4L2_CID_COLORFX_CBCR`` control. > >>> + * - ``V4L2_COLORFX_SET_RGB`` > >>> + - The RGB components are replaced by the fixed RGB components determined > >>> + by ``V4L2_CID_COLORFX_RGB`` control. > >>> > >>> > >>> +``V4L2_CID_COLORFX_RGB`` ``(integer)`` > >>> + Determines the Red, Green, and Blue coefficients for > >>> + ``V4L2_COLORFX_SET_RGB`` color effect. > >>> + Bits [7:0] of the supplied 32 bit value are interpreted as Blue component, > >>> + bits [15:8] as Green component, bits [23:16] as Red component, and > >>> + bits [31:24] must be zero. > >>> > >>> ``V4L2_CID_COLORFX_CBCR`` ``(integer)`` > >>> Determines the Cb and Cr coefficients for ``V4L2_COLORFX_SET_CBCR`` > >>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > >>> index 421300e13a41..f4bd90170105 100644 > >>> --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c > >>> +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c > >>> @@ -785,6 +785,7 @@ const char *v4l2_ctrl_get_name(u32 id) > >>> case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT: return "Min Number of Output Buffers"; > >>> case V4L2_CID_ALPHA_COMPONENT: return "Alpha Component"; > >>> case V4L2_CID_COLORFX_CBCR: return "Color Effects, CbCr"; > >>> + case V4L2_CID_COLORFX_RGB: return "Color Effects, RGB"; > >>> > >>> /* > >>> * Codec controls > >>> @@ -1392,6 +1393,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, > >>> *min = *max = *step = *def = 0; > >>> break; > >>> case V4L2_CID_BG_COLOR: > >>> + case V4L2_CID_COLORFX_RGB: > >>> *type = V4L2_CTRL_TYPE_INTEGER; > >>> *step = 1; > >>> *min = 0; > >> > >> Can you make another small change here? Please change: > >> > >> *max = 0xFFFFFF; > >> > >> to: > >> > >> *max = 0xffffff; > >> > >> to keep in line with the coding standard for hex values. > > > > Sure, do it right now. > > > >> > >> Also, can you add a separate patch that adds an entry here for V4L2_CID_COLORFX_CBCR > >> that sets *max to 0xffff? I noticed that that was missing. While adding V4L2_CID_COLORFX_RGB > >> it's good to fix V4L2_CID_COLORFX_CBCR as well. > > > > Sure, you mean the final code like this? first patch to fix cbcr 0xFFFFFF, > > For cbcr max should be 0xffff. Sure. > > > another one to add V4L2_CID_COLORFX_RGB entry. > > > > 1395 case V4L2_CID_BG_COLOR: > > 1396 case V4L2_CID_COLORFX_RGB: > > 1397 *type = V4L2_CTRL_TYPE_INTEGER; > > 1398 *step = 1; > > 1399 *min = 0; > > 1400 /* Max is calculated as RGB888 that is 2^24 */ > > Actually, the comment is wrong: it should be 2^24-1. Let's fix that too. Okay. > > > 1401 *max = 0xffffff; > > Yes, that's what I am looking for. > > Regards, > > Hans > > > 1402 break; > > > > Best Regards > > Dillon > > > >> > >> Regards, > >> > >> Hans > >> > >>> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h > >>> index 5532b5f68493..9aa3fd368383 100644 > >>> --- a/include/uapi/linux/v4l2-controls.h > >>> +++ b/include/uapi/linux/v4l2-controls.h > >>> @@ -128,6 +128,7 @@ enum v4l2_colorfx { > >>> V4L2_COLORFX_SOLARIZATION = 13, > >>> V4L2_COLORFX_ANTIQUE = 14, > >>> V4L2_COLORFX_SET_CBCR = 15, > >>> + V4L2_COLORFX_SET_RGB = 16, > >>> }; > >>> #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) > >>> #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) > >>> @@ -145,9 +146,10 @@ enum v4l2_colorfx { > >>> > >>> #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) > >>> #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42) > >>> +#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE+43) > >>> > >>> /* last CID + 1 */ > >>> -#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) > >>> +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+44) > >>> > >>> /* USER-class private control IDs */ > >>> > >>> > >> > Best Regards. Dillon