From nobody Sun Feb 8 06:56:08 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70B2137F10D for ; Fri, 30 Jan 2026 12:49:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777401; cv=none; b=StwHnAY30HeuWrediajb4nxZ+jnsdfIHRgyPY8tL9+7AOvz5WBLqI1VC8GkBa5dBbVJfUJTg1kG/0yOaGR50V46dwZinzNd4yAxNTvz2EbKCrz8IQYHfs/s7XbZgP2iMOoIWyxIlbB/gwDryspPDOl/2iBVwYkMwTcQapjQ6aSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777401; c=relaxed/simple; bh=W/c+p5OzSzMCPsuxSreuM0YQnwu6gX3JEtOSgZZKgMM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WlSA9RLv/dnp99+XN2DjUC6nkCpTXqHZZKuYHKLHOc1U8qfDZWpMPKHB9Q2rlF1tWX7cftnoCE1xLJD8BZX0oBn9LnvYv7VIk5Lxh/fqLeL9xxsMDDf6h9XuamhLZTXex2qLMk6zDQxg9fY+7QBpk+uW4ATpIYOXCT6MTGHHBH8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=f+ELSBeD; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f+ELSBeD" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-47edffe5540so25752345e9.0 for ; Fri, 30 Jan 2026 04:49:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769777398; x=1770382198; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vuLhv0mNsbTmk14Cy+1I+agalhgb8cQohYYZvZhzur0=; b=f+ELSBeDc4COMI7t9a5iP6snIRDOyJWzJB/Lo6Rcnq1TyPpQfURO1wd2w+/30qhEt/ Vd4gk98DH+f+bo16GH45cbKD09hhjGUgeyLxoEEmHpUCSgRlB9FV76/TdPkGFeI0SjL9 LHbt9sJE5au/UbFjm0db5kbMzgDw3UmDIfm4NZq4SfBr1E9ggBReJoK907gE83BZbl6E QxUsdoLtMj53/m1qYqgiM/1ixS+PZBy4z47qN8lShDwFEeTEKRPjR76ydp3DZgHxzbCc YJqE6wShwcfmDa4eJaoYncgJczoG6HEd0XVdnLKdf7gBrgJICmVXYhCs10Ur6GlgTl++ /59g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769777398; x=1770382198; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vuLhv0mNsbTmk14Cy+1I+agalhgb8cQohYYZvZhzur0=; b=W6g+IfIFHMv73vXzXsZQClk3R5GRIliKPmmJEFMu1ZircqKCMyyqsemoW5bC3xNw5H 3SMdZhrh3XiljMyFziXj04bNlAVKL1GjRGjP43RaJu0r1YkO3PpXQlbnP67gGHdWofio w6x0ZsNIKDjBI7Kg6PiyfAuMiams1NdCHE9L8UHStH63MlMtfCy3baCQaErSI3Ymzk0D 8BjtvLtJRLjANUYCEMoSSUoX3QSyXWsXpfURfCQiNWcLN/1YECWTKlPBXTHrg67d109T 0OoAh8arhS97shVIbpXKGmQ1fCj3UZdYSwxoX70WZh0+CMpDHv+moC6Jmu9Ayv+x32ft nsxQ== X-Gm-Message-State: AOJu0Yw7EtAO/ZwAFMfruoCNmqxo3P1MZlxXy94ouXmBGv3d03Gn5nxF +2eoRTvEam8Y7Z7cFtBsHjzF5LoV2kFOBRkoL168hcs5TvIpuacuM2hL X-Gm-Gg: AZuq6aLkQa6+ESQkgfsC8PcRebAO1037P9uJpeCpyBmv6FprwqwOdQByv5KONsIXGhB gLE6jys+b9eQPsT9sX15DGp6F6dck+yrKaBY30ekPAOVPjFRZZhF+odQ70AldxfwaRewqczemtx Ld2y2Sg/5MdWuWBDXdRn70ED4rlBUnfv3qxJ2VuuBLaoaSi5bqcy59blHovqMEUHOcte5Sd9ExM 9wkJp7PvxpdRXVLCwa+zY1HKzOS4yjQ9NomKgkiHyGgMv3cKRDl2ondPJPWIhlGhtTUELnaCd6a 5dfL/d+Zl+MeguJOq/WjdT87z5874iDeynDihGEvn3BWbGq3YKJaRusyDCSK0WVCnBm317kYFFt WoWsybEtkTmTd2eiXhlRM7mdKO9t0k1tIHNw5T1u+6I6yJ9GJOsAVzJmzUR9gGpYsr4oaZig26L 6b X-Received: by 2002:a05:600c:4f48:b0:47a:935f:61a0 with SMTP id 5b1f17b1804b1-482db013b90mr42921685e9.0.1769777397748; Fri, 30 Jan 2026 04:49:57 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10e4757sm22738783f8f.5.2026.01.30.04.49.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 04:49:57 -0800 (PST) From: Svyatoslav Ryhel To: Thierry Reding , Mikko Perttunen , David Airlie , Simona Vetter , Jonathan Hunter , Sowjanya Komatineni , Luca Ceresoli , Mauro Carvalho Chehab , Greg Kroah-Hartman , Hans Verkuil , Svyatoslav Ryhel Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v6 03/15] staging: media: tegra-video: vi: add flip controls only if no source controls are provided Date: Fri, 30 Jan 2026 14:49:20 +0200 Message-ID: <20260130124932.351328-4-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260130124932.351328-1-clamor95@gmail.com> References: <20260130124932.351328-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 # tegra20, parallel ca= mera Signed-off-by: Svyatoslav Ryhel --- 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 70a84158b589..0f98157a7e91 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 tegr= a_vi_channel *chan) } #else struct v4l2_subdev *subdev; + struct v4l2_ctrl *hflip, *vflip; =20 /* 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 te= gra_vi_channel *chan) return ret; } =20 - if (chan->vi->soc->has_h_v_flip) { + hflip =3D 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); - } =20 + vflip =3D 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 =20 /* setup the controls */ --=20 2.51.0