All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Dillon Min <dillon.minfei@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	mchehab+huawei@kernel.org, ezequiel@collabora.com,
	gnurou@gmail.com, Pi-Hsun Shih <pihsun@chromium.org>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre TORGUE <alexandre.torgue@foss.st.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	gabriel.fernandez@st.com, gabriel.fernandez@foss.st.com,
	Patrice CHOTARD <patrice.chotard@foss.st.com>,
	hugues.fruchet@foss.st.com,
	linux-media <linux-media@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-stm32@st-md-mailman.stormreply.com,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>
Subject: Re: [PATCH v3 6/8] media: v4l2-ctrls: Add ARGB color effects control
Date: Mon, 11 Oct 2021 12:04:21 +0200	[thread overview]
Message-ID: <8331ab8a-39b7-588c-146d-77197d7637a8@xs4all.nl> (raw)
In-Reply-To: <CAL9mu0KxAmULQofQMgt2JxVLs=L-YT5HZa+mA7sSKebG88GbcA@mail.gmail.com>

On 11/10/2021 12:00, Dillon Min wrote:
> Hi Hans
> 
> Thanks for the quick reply.
> 
> On Mon, 11 Oct 2021 at 17:40, Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
>>
>> On 08/10/2021 12:30, dillon.minfei@gmail.com wrote:
>>> From: Dillon Min <dillon.minfei@gmail.com>
>>>
>>> - add V4L2_COLORFX_SET_ARGB color effects control.
>>> - add V4L2_CID_COLORFX_ARGB for ARGB color setting.
>>>
>>> Signed-off-by: Dillon Min <dillon.minfei@gmail.com>
>>> ---
>>> v3: according to Hans's suggestion, thanks.
>>> - remove old stm32 private R2M ioctl
>>> - add V4L2_CID_COLORFX_ARGB
>>> - add V4L2_COLORFX_SET_ARGB
>>>
>>>  Documentation/userspace-api/media/v4l/control.rst | 8 ++++++++
>>>  drivers/media/v4l2-core/v4l2-ctrls-defs.c         | 2 ++
>>>  include/uapi/linux/v4l2-controls.h                | 4 +++-
>>>  3 files changed, 13 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/userspace-api/media/v4l/control.rst b/Documentation/userspace-api/media/v4l/control.rst
>>> index f8d0b923da20..319606a6288f 100644
>>> --- a/Documentation/userspace-api/media/v4l/control.rst
>>> +++ b/Documentation/userspace-api/media/v4l/control.rst
>>> @@ -242,8 +242,16 @@ 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_ARGB``
>>> +      - ARGB colors.
>>
>> How about:
>>
>>         - The ARGB components are replaced by the fixed ARGB components
>>         determined by ``V4L2_CID_COLORFX_ARGB`` control.
> 
> Sure, will be addressed by v4.
> 
>>
>> I also wonder if it makes sense to include the alpha channel here.
>>
>> Looking at the driver code it appears to me (I might be wrong) that the alpha
>> channel is never touched (DMA2D_ALPHA_MODE_NO_MODIF), and setting the alpha
>> channel as part of a color effects control is rather odd as well.
> 
> Indeed, Alpha channel is not used in current code. I'll remove this item in v4.
> how about change the code like below:
> 
>     * - ``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.

Yes, that looks OK to me.

Regards,

	Hans

> 
> 
>>
>> Alpha channel manipulation really is separate from the color and - if needed - should
>> be done with a separate control.
> 
> OK, Will use a separate control when adding blend features.
> 
> Best Regards,
> Dillon
> 
>>
>> Regards,
>>
>>         Hans
>>
>>>
>>>
>>> +``V4L2_CID_COLORFX_ARGB`` ``(integer)``
>>> +    Determines the Alpha, Red, Green, and Blue coefficients for
>>> +    ``V4L2_COLORFX_SET_ARGB`` 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] as Alpha component.
>>>
>>>  ``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..53be6aadb289 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_ARGB:             return "Color Effects, ARGB";
>>>
>>>       /*
>>>        * 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_ARGB:
>>>               *type = V4L2_CTRL_TYPE_INTEGER;
>>>               *step = 1;
>>>               *min = 0;
>>> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
>>> index 5532b5f68493..2876c2282a68 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_ARGB                   = 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_ARGB                        (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 */
>>>
>>>
>>


WARNING: multiple messages have this Message-ID (diff)
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Dillon Min <dillon.minfei@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	mchehab+huawei@kernel.org, ezequiel@collabora.com,
	gnurou@gmail.com, Pi-Hsun Shih <pihsun@chromium.org>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre TORGUE <alexandre.torgue@foss.st.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	gabriel.fernandez@st.com, gabriel.fernandez@foss.st.com,
	Patrice CHOTARD <patrice.chotard@foss.st.com>,
	hugues.fruchet@foss.st.com,
	linux-media <linux-media@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-stm32@st-md-mailman.stormreply.com,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>
Subject: Re: [PATCH v3 6/8] media: v4l2-ctrls: Add ARGB color effects control
Date: Mon, 11 Oct 2021 12:04:21 +0200	[thread overview]
Message-ID: <8331ab8a-39b7-588c-146d-77197d7637a8@xs4all.nl> (raw)
In-Reply-To: <CAL9mu0KxAmULQofQMgt2JxVLs=L-YT5HZa+mA7sSKebG88GbcA@mail.gmail.com>

On 11/10/2021 12:00, Dillon Min wrote:
> Hi Hans
> 
> Thanks for the quick reply.
> 
> On Mon, 11 Oct 2021 at 17:40, Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
>>
>> On 08/10/2021 12:30, dillon.minfei@gmail.com wrote:
>>> From: Dillon Min <dillon.minfei@gmail.com>
>>>
>>> - add V4L2_COLORFX_SET_ARGB color effects control.
>>> - add V4L2_CID_COLORFX_ARGB for ARGB color setting.
>>>
>>> Signed-off-by: Dillon Min <dillon.minfei@gmail.com>
>>> ---
>>> v3: according to Hans's suggestion, thanks.
>>> - remove old stm32 private R2M ioctl
>>> - add V4L2_CID_COLORFX_ARGB
>>> - add V4L2_COLORFX_SET_ARGB
>>>
>>>  Documentation/userspace-api/media/v4l/control.rst | 8 ++++++++
>>>  drivers/media/v4l2-core/v4l2-ctrls-defs.c         | 2 ++
>>>  include/uapi/linux/v4l2-controls.h                | 4 +++-
>>>  3 files changed, 13 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/userspace-api/media/v4l/control.rst b/Documentation/userspace-api/media/v4l/control.rst
>>> index f8d0b923da20..319606a6288f 100644
>>> --- a/Documentation/userspace-api/media/v4l/control.rst
>>> +++ b/Documentation/userspace-api/media/v4l/control.rst
>>> @@ -242,8 +242,16 @@ 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_ARGB``
>>> +      - ARGB colors.
>>
>> How about:
>>
>>         - The ARGB components are replaced by the fixed ARGB components
>>         determined by ``V4L2_CID_COLORFX_ARGB`` control.
> 
> Sure, will be addressed by v4.
> 
>>
>> I also wonder if it makes sense to include the alpha channel here.
>>
>> Looking at the driver code it appears to me (I might be wrong) that the alpha
>> channel is never touched (DMA2D_ALPHA_MODE_NO_MODIF), and setting the alpha
>> channel as part of a color effects control is rather odd as well.
> 
> Indeed, Alpha channel is not used in current code. I'll remove this item in v4.
> how about change the code like below:
> 
>     * - ``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.

Yes, that looks OK to me.

Regards,

	Hans

> 
> 
>>
>> Alpha channel manipulation really is separate from the color and - if needed - should
>> be done with a separate control.
> 
> OK, Will use a separate control when adding blend features.
> 
> Best Regards,
> Dillon
> 
>>
>> Regards,
>>
>>         Hans
>>
>>>
>>>
>>> +``V4L2_CID_COLORFX_ARGB`` ``(integer)``
>>> +    Determines the Alpha, Red, Green, and Blue coefficients for
>>> +    ``V4L2_COLORFX_SET_ARGB`` 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] as Alpha component.
>>>
>>>  ``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..53be6aadb289 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_ARGB:             return "Color Effects, ARGB";
>>>
>>>       /*
>>>        * 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_ARGB:
>>>               *type = V4L2_CTRL_TYPE_INTEGER;
>>>               *step = 1;
>>>               *min = 0;
>>> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
>>> index 5532b5f68493..2876c2282a68 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_ARGB                   = 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_ARGB                        (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 */
>>>
>>>
>>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-10-11 10:04 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-08 10:30 [PATCH v3 0/8] Add support for DMA2D of STMicroelectronics STM32 Soc series dillon.minfei
2021-10-08 10:30 ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 1/8] media: admin-guide: add stm32-dma2d description dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 2/8] media: dt-bindings: media: add document for STM32 DMA2d bindings dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 3/8] ARM: dts: stm32: Add DMA2D support for STM32F429 series soc dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 4/8] ARM: dts: stm32: Enable DMA2D on STM32F469-DISCO board dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 5/8] media: v4l2-mem2mem: add v4l2_m2m_get_unmapped_area for no-mmu platform dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 6/8] media: v4l2-ctrls: Add ARGB color effects control dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-11  9:40   ` Hans Verkuil
2021-10-11  9:40     ` Hans Verkuil
2021-10-11 10:00     ` Dillon Min
2021-10-11 10:00       ` Dillon Min
2021-10-11 10:04       ` Hans Verkuil [this message]
2021-10-11 10:04         ` Hans Verkuil
2021-10-11 12:06         ` Dillon Min
2021-10-11 12:06           ` Dillon Min
2021-10-08 10:30 ` [PATCH v3 7/8] clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after enter shell dillon.minfei
2021-10-08 10:30   ` dillon.minfei
2021-10-08 10:30 ` [PATCH v3 8/8] media: stm32-dma2d: STM32 DMA2D driver dillon.minfei
2021-10-08 10:30   ` dillon.minfei

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=8331ab8a-39b7-588c-146d-77197d7637a8@xs4all.nl \
    --to=hverkuil-cisco@xs4all.nl \
    --cc=alexandre.torgue@foss.st.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dillon.minfei@gmail.com \
    --cc=ezequiel@collabora.com \
    --cc=gabriel.fernandez@foss.st.com \
    --cc=gabriel.fernandez@st.com \
    --cc=gnurou@gmail.com \
    --cc=hugues.fruchet@foss.st.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=mchehab+huawei@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=mturquette@baylibre.com \
    --cc=patrice.chotard@foss.st.com \
    --cc=pihsun@chromium.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.