On Tue Mar 3 10:42:26 2026 +0200, Svyatoslav Ryhel wrote:
> Because the current Tegra video driver is video-centric, it exposes all
> controls via /dev/video. If both the camera sensor and the VI provide
> hflip and vflip, the driver will fail because only one control is allowed.
> To address this, hflip and vflip should be added from the SoC only if the
> camera sensor doesn't provide those controls.
> 
> Tested-by: Luca Ceresoli <[email protected]> # tegra20, parallel 
> camera
> Signed-off-by: Svyatoslav Ryhel <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 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 e0961bc0a017..19eebfdae221 100644
--- a/drivers/staging/media/tegra-video/vi.c
+++ b/drivers/staging/media/tegra-video/vi.c
@@ -962,6 +962,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);
@@ -987,11 +988,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);
 #endif
 
        /* setup the controls */
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to