[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250905175915.2d7e02a7@booty>
Date: Fri, 5 Sep 2025 17:59:15 +0200
From: Luca Ceresoli <luca.ceresoli@...tlin.com>
To: Svyatoslav Ryhel <clamor95@...il.com>
Cc: Thierry Reding <thierry.reding@...il.com>, Thierry Reding
<treding@...dia.com>, Mikko Perttunen <mperttunen@...dia.com>, Jonathan
Hunter <jonathanh@...dia.com>, Sowjanya Komatineni
<skomatineni@...dia.com>, David Airlie <airlied@...il.com>, Simona Vetter
<simona@...ll.ch>, Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann
<tzimmermann@...e.de>, Rob Herring <robh@...nel.org>, Krzysztof Kozlowski
<krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>, Peter De
Schrijver <pdeschrijver@...dia.com>, Prashant Gaikwad
<pgaikwad@...dia.com>, Michael Turquette <mturquette@...libre.com>, Stephen
Boyd <sboyd@...nel.org>, Mauro Carvalho Chehab <mchehab@...nel.org>, Greg
Kroah-Hartman <gregkh@...uxfoundation.org>, Dmitry Osipenko
<digetx@...il.com>, Charan Pedumuru <charan.pedumuru@...il.com>,
linux-media@...r.kernel.org, linux-tegra@...r.kernel.org,
dri-devel@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org,
linux-staging@...ts.linux.dev
Subject: Re: [PATCH v1 09/19] staging: media: tegra-video: vi: add flip
controls only if no source controls are provided
Hello Svyatoslav,
On Tue, 19 Aug 2025 15:16:21 +0300
Svyatoslav Ryhel <clamor95@...il.com> wrote:
> Add HFLIP and VFLIP from SoC only if camera sensor does not provide those
> controls.
>
> Signed-off-by: Svyatoslav Ryhel <clamor95@...il.com>
> ---
> drivers/staging/media/tegra-video/vi.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media/tegra-video/vi.c
> index 4f67adc395ac..61b65a2c1436 100644
> --- a/drivers/staging/media/tegra-video/vi.c
> +++ b/drivers/staging/media/tegra-video/vi.c
> @@ -961,6 +961,7 @@ static int tegra_channel_setup_ctrl_handler(struct tegra_vi_channel *chan)
> }
> #else
> struct v4l2_subdev *subdev;
> + struct v4l2_ctrl *hflip, *vflip;
>
> /* custom control */
> v4l2_ctrl_new_custom(&chan->ctrl_handler, &syncpt_timeout_ctrl, NULL);
> @@ -986,11 +987,13 @@ static int tegra_channel_setup_ctrl_handler(struct tegra_vi_channel *chan)
> return ret;
> }
>
> - if (chan->vi->soc->has_h_v_flip) {
> + hflip = v4l2_ctrl_find(subdev->ctrl_handler, V4L2_CID_HFLIP);
> + if (chan->vi->soc->has_h_v_flip && !hflip)
> v4l2_ctrl_new_std(&chan->ctrl_handler, &vi_ctrl_ops, V4L2_CID_HFLIP, 0, 1, 1, 0);
> - v4l2_ctrl_new_std(&chan->ctrl_handler, &vi_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0);
> - }
>
> + vflip = v4l2_ctrl_find(subdev->ctrl_handler, V4L2_CID_VFLIP);
> + if (chan->vi->soc->has_h_v_flip && !vflip)
> + v4l2_ctrl_new_std(&chan->ctrl_handler, &vi_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0);
Based on my understanding of V4L2, this should not be done.
AFAIK subdevs should expose what the hardware block can do,
independently from other subdevs. It is up to userspace (e.g.
libcamera) to use the most appropriate control when there are redundant
ones.
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists