[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPVz0n0_DJh9M-h5a0bcBA8b6_7vzgOYSktGxAhFzuVncoJhmw@mail.gmail.com>
Date: Fri, 5 Sep 2025 19:05:16 +0300
From: Svyatoslav Ryhel <clamor95@...il.com>
To: Luca Ceresoli <luca.ceresoli@...tlin.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
пт, 5 вер. 2025 р. о 18:59 Luca Ceresoli <luca.ceresoli@...tlin.com> пише:
>
> 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.
>
This driver is video-centric, interactions are done via /dev/videoX
not subdevices like media-centric derivers do. Conversion is possible
but it is not scope of this patchset and in case such conversion takes
place, one who will do that, will definitely know what to do.
Video-centric drivers expose all controls within single video device
and it cannot hold duplicates of controls, this causes error. So this
solution exposes camera flip controls and if camera has none, SoC
controls are exposed.
> Luca
>
> --
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Powered by blists - more mailing lists