From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) (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 1D4AC388E6A for ; Tue, 3 Mar 2026 08:42:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527377; cv=none; b=OPKT67hm5fMv084CZEikPWU6zOlo53ssS2SfZHye/fRKmUpAlGuDZoGYYXl7cf3jDG/vt9b6miJzmIAVU9mBmmowJ/s6f/aioKEsaJgC895kl8SH3+x6HUngdRDdbjGteHRdsc5acN9LC4LoIp1ohQ0w1OuJNXHGTKJsu58biGM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527377; c=relaxed/simple; bh=UKEDgSoNiWITE5rlNAFBVxpTjkZzbRTCWfb1BLNAxdw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EF6aGbv3aI8u3W5Cv6hBacvG9bA/lWBm6AXq61zvFh4NJX2hcQww7c1C74QgWotRUNymINBJixuvVhbI/QV9weFsIHFmuakHdhfUDGKVb1GVDpZntrHTklOIi4agH4pWrwWqrL00TpB6vTMRXNZWli0kekT7Jla1hMX24Tn8rHQ= 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=bC27k3DP; arc=none smtp.client-ip=209.85.208.177 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="bC27k3DP" Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-389fa0d1040so76322151fa.2 for ; Tue, 03 Mar 2026 00:42:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772527374; x=1773132174; 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=tq2yeiELH2O2leNzpOSOy0DgLmB+c4y6g32iEDIZZWE=; b=bC27k3DPJXmP7l2zDb8woXq8pYwGxoItoBWPFYGR2Q8EhaA6uixePRayudhFz/Vnpe g7i9+lohA1Yay4cNGW2t2H8Q7a5pSarasfzdMWyO0yHEUX2Qb+xbUMSwHyVdlEUrIaqj NuTtBMfsibsWeKPltFS0SwllithcH05inndP5UJwgXXRPjeMinKcChYFxH43ycJw98lW D9wV3yck+kdrAA2x81FFO+Tlmn0qx8/AuKaE4jn+rpx2NxRR9qEGYbBrqaYgdJ1Hxbz0 GppmAePG9JnZI6B9RJcjK2JWB7rGVmo4IDo08qtL+FCSdKLb5z/ArRE0khOi1jcMfGTa Oh5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772527374; x=1773132174; 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=tq2yeiELH2O2leNzpOSOy0DgLmB+c4y6g32iEDIZZWE=; b=YigQrAfQCNKJmUesKOI32hKcvCyvmhSxYfYydGE1gW1tFpQK4kWTp3gDSZAW828/xx IJa03GwrY5LkkaPCqOHKQSTSJE4L+geeQKMDpiXmnxPI4NOSFjghZlBMnD7V8+n4M4ik 5eB6SzpfNPLhDatWTeTuAvRgTMrF5YNrF19NCvCJTYRmrNH2Xzrf/1Qj5pYy3bLALVHU IBYEo2luu3w/qglH4wbruK6PuMlMzo5vpNCt0YnOFH+dJOCZSp7M5kHGupGvmf0J5ehG mJu+ANnXJvIDvr8wOQPT/kVR8R8uajckbZQlcrOc6YnNiX5FGnowFckMzsAYOmBEtN2U 16VA== X-Forwarded-Encrypted: i=1; AJvYcCWS6FQVH89FhLHpRRbmyfntTkquxjlEaddIBc0tRU02bxaak/Q9FF0zp4SzrisWZmn9/lRmBwfqm3a3QQ==@vger.kernel.org X-Gm-Message-State: AOJu0YyyqFNB3Z2RxhIjjPeeFwXoBYGOGHIvipum2mFdR2tdx2wQgUEM c053AwgB/RJd4X36MGKpr2giopFh8TpEEdUN15Yo9zQ1MDsDeygdiF8O X-Gm-Gg: ATEYQzxmIpcmtAYYXMmv2qJ2cr4immbWXYH1+MHEoX/Pc+/y+SRbxsubx1m9h8AwFbY CGKv4SdLosziqZ1she1uTTf0p35dwnwLZKkBsBmhyvcRIQxiDVpfc4PK4x4MxowEaFw7xVPy50/ dNSR5ILyOQRuR7MWyrbyJ7eBM6MvBcvLMS7me2fjohGFitKckhEkvQHp82i7AjqHDB5AvQaZ+mY vp3Rq4jriyjICVtcDQp5U8Kn1grN9+O7AosBp2VMPbH9OtpKd/kaMTa3cjHgBJ3BwzJYJYtYhpR 1qgzkm9jvjmTS/Gub4WL3QgMlmLKOz20ytPdc9/Ryz1qLGOKycBZzPvvuGJXvr/CIup7Q/sbINs DeaEpfSXwb/Ghe5zWkZoZViEBoYa/4ktlCRR2hMailtyo8HKFK7/BTRf8fI1/MbMebXGOTdtqUC dovJog8O0zCbQt X-Received: by 2002:a05:651c:2120:b0:383:26ac:4fd8 with SMTP id 38308e7fff4ca-389ff07fd9amr102630141fa.0.1772527374144; Tue, 03 Mar 2026 00:42:54 -0800 (PST) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-389f30227a9sm32599471fa.42.2026.03.03.00.42.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 00:42:53 -0800 (PST) From: Svyatoslav Ryhel To: Thierry Reding , 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 v7 03/15] staging: media: tegra-video: vi: add flip controls only if no source controls are provided Date: Tue, 3 Mar 2026 10:42:26 +0200 Message-ID: <20260303084239.15007-4-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260303084239.15007-1-clamor95@gmail.com> References: <20260303084239.15007-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 camera 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 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 */ -- 2.51.0