From nobody Thu Apr 2 17:16:00 2026 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 C694F387570 for ; Tue, 3 Mar 2026 08:42:53 +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=1772527376; cv=none; b=ieyJl85jl3ehWnr/TZmVWWxOeQ+iBMRxOZG2c4FWo6RoSIAbRvcqGmZi/zFUi5+4Dm5+fed5PIEiLClcNsXBO9nhexXuZZFCJ3MHirn/Y6Qs2txP3aigC7LekA8iCPisA1k0Av9kpx9W652MphQWbKSPRPtUllrzDysYlbAf3Mw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527376; c=relaxed/simple; bh=vrXA6fjKnnF+GhBdbrJNqziUBe6Qkh4RFzb3cfkVQc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=raRgEQmNhBylWI6KHqwTBPM4K8UPoI8DDptt+FLV8LTYf0YG0QX9nq6zR4HfkjbbyGRRKFl8AYB4eT5G8cQuse2iKdsAkJQ+XXJ0A3JBPnG6qyS6g9o0tGvfNbn3RHvnW4UrBMEFJCfHGdXZZn36D7rpTZp4iRrT1SPJomHGRwU= 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=NULDBSMd; 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="NULDBSMd" Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-389f2c46d80so77771931fa.3 for ; Tue, 03 Mar 2026 00:42:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772527372; x=1773132172; 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=9qxgfowoWtROq2728bE7puz98E/n2zeRecmBGFgU010=; b=NULDBSMdtDSu7jb/iDBBBdSEVcgoErRRaHA6RDY2w+tWu0jXxWJT6YC6XVm949vi0c QEk4it411RjRsYLK0tE5Hey/bHkUuVWknDbcK79vw42LULn/JtvEbbtVLehsqRD/+Gd1 Pf/OX5Vwc5wYpqeIW1PDUC4XmngkcyWPMAsaOFp7LtujiNEc//gNdOcDz2UgPbqqAXrE gkqFUqz1kH0lFsmsRpUjVRA+YX+5nU7RsAgutsWkztkRmICz8Y8KwShX7NF7NOHtyu3v gcxpl1GulSco45cQk/FqJ3OwvD36Gaqx6x+XDPPE3w2Y75WoufbmFLWAzMTZrkN5e4OW J/SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772527372; x=1773132172; 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=9qxgfowoWtROq2728bE7puz98E/n2zeRecmBGFgU010=; b=tySYwma8Aj/4Z8gOplyvdr+NTrFoIRGyLgdRRa47+UxWfN7Qpqw1Zjcluv5euh9Cy6 3bxLZ5yNsX3DH5XqyFRSKaVrnnbGFxZr7Z87QLkRssOpo2XwcE1nPnB/eKDGut2XGwIv LhYP3L4CRLdLDye0fU1wwvYEdeFhopPOt5k6Bg39WKZW7YLp2NtcP5DsQ9aK1HeDQ8CK ctXu3JFk/K8ugj1EQAhJVaaQvayjIvonfzi4yHMQ6DZAQTK7qEv6lSDKslOzTSuLcxrH Ve8ZszPQdUYUt5AJAYI6inos1Zvrl36Izw7UzTlvB3uOG+ACq6MERmIw1BQtXyhPZ79z u0FA== X-Gm-Message-State: AOJu0YxBi7ZYgS+m9YXrPZqJUhEAFa6sb/MqkHbfWGpw3HTNiGdqESD4 RaMsGkqFXq7wKDAVrqS4bwO5fpU4HdVu58vqbI9WGl9RWBRxAp3PUIoUnBa3Gw== X-Gm-Gg: ATEYQzw7gTUCbbBqrXnOmLJipBdHVw84FZWBT4/gsKBA9auzdAG+9a5tqBD1A/DrkPd GKCKmNldfDiw/UY0Ebj6psGmUmeeCVQ2IjEJcHJK3SbKc5ndvq04EeX3bIirkXRDgZ13pCDgHWG id1SoXPWHsfeCUFI7VRZL7P0QRDZmwUZqb+FFxo4aC7/qxmoyLghY56PmQZa6c5B7Yv+im8AP+V +MncoG1vxWyUDQtkE+O3duU3F54W8gpKL9FCekx7F0DPJwMcDDQC72QaXMV4KJ8bs3227Y12KUr sSb/qyZ9j+BedMzezQuVYrsWMAteUIABYZsFkmMzrhwF9ldYAUE4Y+60uIrD6XpNnEiGGwSgfWX u+URPx/ZBwfxAXXpvIE6hRD18ANpZad7Gd8mgJWpkJfWHZ+7QQ8llBL8jGDdG99oPyAGCyAZLEW 29kNf7WXRGDr/l X-Received: by 2002:a05:651c:548:b0:38a:18e0:6427 with SMTP id 38308e7fff4ca-38a18e06618mr26592321fa.22.1772527371915; Tue, 03 Mar 2026 00:42:51 -0800 (PST) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-389f30227a9sm32599471fa.42.2026.03.03.00.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 00:42:51 -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 01/15] staging: media: tegra-video: expand VI and VIP support to Tegra30 Date: Tue, 3 Mar 2026 10:42:24 +0200 Message-ID: <20260303084239.15007-2-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-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" Existing VI and VIP implementation for Tegra20 is fully compatible with Tegra30. Signed-off-by: Svyatoslav Ryhel Tested-by: Luca Ceresoli # Tegra20 VIP Reviewed-by: Luca Ceresoli --- drivers/staging/media/tegra-video/Makefile | 1 + drivers/staging/media/tegra-video/vi.c | 2 +- drivers/staging/media/tegra-video/vi.h | 2 +- drivers/staging/media/tegra-video/video.c | 2 +- drivers/staging/media/tegra-video/vip.c | 2 +- drivers/staging/media/tegra-video/vip.h | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/tegra-video/Makefile b/drivers/staging/m= edia/tegra-video/Makefile index 6c7552e05109..96380b5dbd8b 100644 --- a/drivers/staging/media/tegra-video/Makefile +++ b/drivers/staging/media/tegra-video/Makefile @@ -6,5 +6,6 @@ tegra-video-objs :=3D \ csi.o =20 tegra-video-$(CONFIG_ARCH_TEGRA_2x_SOC) +=3D tegra20.o +tegra-video-$(CONFIG_ARCH_TEGRA_3x_SOC) +=3D tegra20.o tegra-video-$(CONFIG_ARCH_TEGRA_210_SOC) +=3D tegra210.o obj-$(CONFIG_VIDEO_TEGRA) +=3D tegra-video.o diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media= /tegra-video/vi.c index 9c0b38585d63..a7892036f29e 100644 --- a/drivers/staging/media/tegra-video/vi.c +++ b/drivers/staging/media/tegra-video/vi.c @@ -1959,7 +1959,7 @@ static void tegra_vi_remove(struct platform_device *p= dev) } =20 static const struct of_device_id tegra_vi_of_id_table[] =3D { -#if defined(CONFIG_ARCH_TEGRA_2x_SOC) +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC) { .compatible =3D "nvidia,tegra20-vi", .data =3D &tegra20_vi_soc }, #endif #if defined(CONFIG_ARCH_TEGRA_210_SOC) diff --git a/drivers/staging/media/tegra-video/vi.h b/drivers/staging/media= /tegra-video/vi.h index 1e6a5caa7082..cac0c0d0e225 100644 --- a/drivers/staging/media/tegra-video/vi.h +++ b/drivers/staging/media/tegra-video/vi.h @@ -296,7 +296,7 @@ struct tegra_video_format { u32 fourcc; }; =20 -#if defined(CONFIG_ARCH_TEGRA_2x_SOC) +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC) extern const struct tegra_vi_soc tegra20_vi_soc; #endif #if defined(CONFIG_ARCH_TEGRA_210_SOC) diff --git a/drivers/staging/media/tegra-video/video.c b/drivers/staging/me= dia/tegra-video/video.c index ae1ae03fa9de..b009ceefda14 100644 --- a/drivers/staging/media/tegra-video/video.c +++ b/drivers/staging/media/tegra-video/video.c @@ -121,7 +121,7 @@ static void host1x_video_remove(struct host1x_device *d= ev) } =20 static const struct of_device_id host1x_video_subdevs[] =3D { -#if defined(CONFIG_ARCH_TEGRA_2x_SOC) +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC) { .compatible =3D "nvidia,tegra20-vip", }, { .compatible =3D "nvidia,tegra20-vi", }, #endif diff --git a/drivers/staging/media/tegra-video/vip.c b/drivers/staging/medi= a/tegra-video/vip.c index 80cd3b113125..9ff1f1750a15 100644 --- a/drivers/staging/media/tegra-video/vip.c +++ b/drivers/staging/media/tegra-video/vip.c @@ -264,7 +264,7 @@ static void tegra_vip_remove(struct platform_device *pd= ev) } =20 static const struct of_device_id tegra_vip_of_id_table[] =3D { -#if defined(CONFIG_ARCH_TEGRA_2x_SOC) +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC) { .compatible =3D "nvidia,tegra20-vip", .data =3D &tegra20_vip_soc }, #endif { } diff --git a/drivers/staging/media/tegra-video/vip.h b/drivers/staging/medi= a/tegra-video/vip.h index fdded00447e4..563059cbf5b5 100644 --- a/drivers/staging/media/tegra-video/vip.h +++ b/drivers/staging/media/tegra-video/vip.h @@ -50,7 +50,7 @@ struct tegra_vip_soc { const struct tegra_vip_ops *ops; }; =20 -#if defined(CONFIG_ARCH_TEGRA_2x_SOC) +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) || defined(CONFIG_ARCH_TEGRA_3x_SOC) extern const struct tegra_vip_soc tegra20_vip_soc; #endif =20 --=20 2.51.0 From nobody Thu Apr 2 17:16:00 2026 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) (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 14676388E53 for ; Tue, 3 Mar 2026 08:42:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527376; cv=none; b=ONE0dcGGwV/R/WiIypCM7syU3FucCIv7UFdEgIkO0QsLJ6EvGkuMZ2A7Kf6ORV/VqiWBqzF1K0dNIhh0QS5zSx36NWdFacl12gQeyCGk3MHjdtCy+eeqxWz/QMX6QhbR2sMTfff+i4zF5St58V/Kq4xUl8fAmmxvardjcoJi+3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527376; c=relaxed/simple; bh=IzB8EsMSPw3QzBXaG2KwfOAPPaeXySttkLghuqSdNAs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RH0QwKmMdQ8UeZfHL72MhX8AAgwpahuQQR61nv1fxgFWLYW6JZ5QbA8SCwW8x4iGOQdsBuVBrTcGW/aOYMIHSflTNlElZKZKU3XkF9m/8d6XmXTyBkx0c2F1SIG9FkZijTQkHKYn2HCvjglWkf8GKVwMGDZ2mX5jdtFwcAkMzm8= 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=fc/g0y3x; arc=none smtp.client-ip=209.85.208.171 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="fc/g0y3x" Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-389ebb0e885so102560311fa.1 for ; Tue, 03 Mar 2026 00:42:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772527373; x=1773132173; 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=Pid8l3oxr/AZHZz4pdBIzX1rDMW/6jLdB7pjgw7arVo=; b=fc/g0y3xFpyycAlk+OdVU8lkyJNTqGYwYHpnSi6QusmaAarrZEcU/4Tzd7nEosXujm eJa1nP6Z2U6lj79dL0rZKSwIK4Sjc35/kRMAC6Cfz7KnZns72eaUYWaNiw6sKjs4vAO1 wTc0yFtrztfdp/6sjx8Yz4BrSLstmGjH2V1fe3G2W+Bq8V21TMNEIu+i/WuGzuFjmBlC b/aCWfS8nkZHDfZKC8naZBKJgQwqGkz+SbekRRUd3LZ8UJAsS8NPCpDt4uuQQKupqygJ RbRBYOYW2givMifxNR5cVgQeN5MFXIWJ3AXr2xBRtYnFTp8o73FnPwSPD+DMJ/BnvdJJ 5zGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772527373; x=1773132173; 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=Pid8l3oxr/AZHZz4pdBIzX1rDMW/6jLdB7pjgw7arVo=; b=m+37LIj2vtjJoAbNfL9TEx9b4gLmKRGRg2/WfqeslQSRaaxYCzUUY9usu1j6ssVpQO 7vyYGpyKYohu0x7uHf51YU61kHWGohGewHSjpO4/Voglo7C6LvCLe5X6GNeQE5W4x9qJ O9fmUaBWptU055zODU9Dn6pDUDTiABj7hkrTkX8M+KBMqFcXgEUDbr/Bld115lNtkfor yYPS7eexkNAs8Tx7w5xIlVEvSJYNi8ybb9Dqv6/EvCuQsboBxVOkpCVcOMkEWBikPp3d HUVEfhVOQeYA/YOekLTLMJPx71NxcwgNiJP21T7dtPsfAgyrrcQWOwx43wPIGDCfRVQf YGFg== X-Gm-Message-State: AOJu0Yz9FvzvBTnt1bAi7/zxnwUFpaTGzd3cyL0+s6CuMxiPmCEM9ds2 JfgX08uBcB0kf6mgWCKNjarpVROzDhy2QqkP33Hl5515lMmrp9Ewdto9 X-Gm-Gg: ATEYQzzJqr3rTd1jtJSefIZvKyOQ+Sql//c9/jTlddvJ9Rc5ifqzGh2mZrD2jbOn44j Lwb6rxdf25jH7xgu0dKG0UOnsNiB81nd5tX3alkJgrLY6ikx3WLv989WsDaArbyEkuDYaZFgETR uxyt1YBfGL9wLaMKJhw07Infih0MPrNnCg4Hx3eCdwu/w5CasV1k9NB9rrlmkjnXjl6B2f23QWv v/bazJSPxUC6sgvxnZOZoFDv/nRKMB46WnWEGj9NYo8gjTBU9u+IbF4grPoFAdPYefuW6EKJfJ6 HZ531KWXHQ06LBfBFrQ79p5XjQJmDI2pqtsCwqXobu3boxdWSlqSjPtqTrns0bKivo45n1jMZx+ 694TarrAbVp8XF7KaZVu/0HF8c/FXInp5nBZIngTRDjxW8SOdugLlLuhRV4NtrWFl7y7Q2+beEg 4yl99AwHvrFbGM X-Received: by 2002:a2e:bc1d:0:b0:38a:957:a125 with SMTP id 38308e7fff4ca-38a0957a856mr72649181fa.18.1772527373025; Tue, 03 Mar 2026 00:42:53 -0800 (PST) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-389f30227a9sm32599471fa.42.2026.03.03.00.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 00:42:52 -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 02/15] staging: media: tegra-video: vi: adjust get_selection operation check Date: Tue, 3 Mar 2026 10:42:25 +0200 Message-ID: <20260303084239.15007-3-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-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable During __tegra_channel_try_format, the VI (Video Input) checks if the camera sensor driver provides a get_selection operation. If this operation is unavailable, the crop is set to 0. However, if the operation is available but returns an error, the VI currently fails. While this works for simple cameras with a single pad, it creates a corner case for sensors like the mt9m114. This sensor provides the same operation set for both IFP pads, but returns an error when get_selection is called on an unsupported pad (such as the source pad), causing the aforementioned behavior. To resolve this, if get_selection is implemented but returns an error, try_crop is now set to 0 =E2=80=94 treating it as if the operation was not implemented =E2=80=94 instead of returning a failure. Tested-by: Luca Ceresoli # tegra20, parallel ca= mera Signed-off-by: Svyatoslav Ryhel --- drivers/staging/media/tegra-video/vi.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media= /tegra-video/vi.c index a7892036f29e..e0961bc0a017 100644 --- a/drivers/staging/media/tegra-video/vi.c +++ b/drivers/staging/media/tegra-video/vi.c @@ -476,17 +476,11 @@ static int __tegra_channel_try_format(struct tegra_vi= _channel *chan, fse.code =3D fmtinfo->code; ret =3D v4l2_subdev_call(subdev, pad, enum_frame_size, sd_state, &fse); if (ret) { - if (!v4l2_subdev_has_op(subdev, pad, get_selection)) { + if (!v4l2_subdev_has_op(subdev, pad, get_selection) || + v4l2_subdev_call(subdev, pad, get_selection, NULL, &sdsel)) { try_crop->width =3D 0; try_crop->height =3D 0; } else { - ret =3D v4l2_subdev_call(subdev, pad, get_selection, - NULL, &sdsel); - if (ret) { - ret =3D -EINVAL; - goto out_free; - } - try_crop->width =3D sdsel.r.width; try_crop->height =3D sdsel.r.height; } --=20 2.51.0 From nobody Thu Apr 2 17:16:00 2026 Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) (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 163DE388390 for ; Tue, 3 Mar 2026 08:42:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527377; cv=none; b=VCw25fmaR6E60ckUrtnwED8ZIPrkgKUCtiLLU/gt+OeET+b7wf8hJqpfnznB3HjHq+j/gdoiNBl6RhZW6otxumnnYYmhLhHVURfzdKJjXcdxHBV6oBu16DIYKnDIsaTggbcVUk0qQxgGvgVBKLR5+Fnm82vcRNnvt6Yi1s7q8ks= 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.178 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-f178.google.com with SMTP id 38308e7fff4ca-387090ae5b1so89220601fa.0 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=UhOkX7inr51XFEVxmDegonmHJXisd3bENlgfcuap02ZDc1Qp0xhq/UsuUhM9KzHDbJ avG1ZM/C/mUF8XuPFdmF62/noKpQzz4Z6DbOPR8xZXyb8UXUUMY/kWqrI7k4m6oRazoc Eg/LbV1ASA07YReFAbMD4kSvd36IY85a8JW55K3y7XByjTknHvUZPmM8j7EJsbL/vuZ7 4DxePvb129hfo04pRKkLxhrU9sp0t0BxwC0ohx8pxoR22Ife1fOyJqalc71+ik+2HdWa 08Lyd/3TiRM1oz50zDiMPzIjnLTqWUZXxa+0FY5COzVi1JiIaz0a5KmidXuWuquc+sFd YPjQ== X-Gm-Message-State: AOJu0Yzc/+9FV9sTnxrrSetz8SIO/NNQ28QpBC9pLYPV4dIe5TP/a+Pd oKuWrqukY7iXAzpe5SM20VmgLwG4vKbRk1tu9KSK/GVG1lTdz1vHIWwN X-Gm-Gg: ATEYQzwQYjk9Rj7xaYVi1EhlLD6S5v0+3MbcKyneLqCdx0gbfaEhpxhMbvGp/lFzpyV EvtCGc5gmPPg4yEcZFMBIM7url/8+dsAm/lM3o/YXGjeszBTQmo2hMeAPcpKQYD5ktzOP9OYJwZ r3GKu+THJhfqT75Vv6JqvlLoAgQdKhTY2o7RZ7mj7EEDkUrzEbX85XvJnThAlsuE5wEydFJ9/iQ GS7TAPjrP5gSOwOs/HbqkAQLkN+XbLI/RZMy8Z9IB6+RO/YdpPUssvz2ubZlJLWcCFYXtlYeZKt b4F35vt0RcM9B4HfH9xdBEUlVpqijyAy+qDBOsQHo+joizcCi5WGDw3HgQuX02DgGJ62IuR/Dvq yFfwrLjR0UdQyNWUe21dH4YR0PSZAhyjl2hkUViQWwcbYvOdWtxBKhY/TA0y79/KSt3V00078lG VNqOcEGCmfOhAs 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-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 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 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 From nobody Thu Apr 2 17:16:00 2026 Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (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 97220388E7B for ; Tue, 3 Mar 2026 08:42:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527379; cv=none; b=aTEx5sm/s6x1Y8VMPE3VqgoB/DUtuEz+yUjLyrjDH9CsSdbykMgN6NFWTXItCGdrXDJ6fvTeCV2JNVXH71uCMqUAu/CNtVNNV7KKSMJmWFdox3EovLQY2L13oQ9WXKSNmdeEthjJCMoAFVYfoPM3rzZEL3a8YZSG8tG0W+Q7PFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527379; c=relaxed/simple; bh=MfI5zeRl0pyQjV4WKNqmsKtJ3wxSTwwt/NrFXusc/w4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m5CvhnKaSlQPY5GrYA5HOC0mZrIFhg4wquEGfClIhHS9lpp9a2WtZaUELDslljbprAd+JohSOnwN5DfVgI2SsxwC24xyEMoWieMLHAsP4si4Fqk3uJ50JtXEaWHxVmNQPGq3UiFxW/u1accJJDd582y2LwQ+IaCUeo3iIgqwdH8= 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=cRx9hkyS; arc=none smtp.client-ip=209.85.208.180 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="cRx9hkyS" Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-38706b10b3bso98972401fa.1 for ; Tue, 03 Mar 2026 00:42:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772527376; x=1773132176; 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=HZu8rHNV14RcsNYnYAtHHPAFsuTgdzw+TBP2m+knG7k=; b=cRx9hkyShcQs+n0ALDSczbUN2a3BCfpLP1ZWn+ijgqQUWiZ85gRVOB8UnJmWlxNEaA SgPfbtnouuH03yZaFfo/sLf570dheK207cERwDWYmBmNyOtix0qNxw8JjFBI0UM0Uj/O JE81UfYW4TOzQDGKcAEdVd/yXOfUCF6rRGQ4ryZoq7BBC+XdtP8u9rsPYCTLOV/V9ZBA 5rY+RM0FF60LRFdrv/inZGmNu/3zwyjLsCqJwxK8BsAoTP1WTJ8x4tD9DMag7uwtm7gE ANUsgNTL8hDZqPxyML8W+xFWvle1aKvM4YYKHQO5c2bxXua7KrldTJFQqNEDJsOU/gzc udQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772527376; x=1773132176; 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=HZu8rHNV14RcsNYnYAtHHPAFsuTgdzw+TBP2m+knG7k=; b=sf6Q/qjeGViDpxG8fILRtJeo2qHJnQ2WdUxISvVd+AhUlGB6g0T2zT3hg35fSBuFJq 01dTrWhy5Di6okRqUNJJGAL4HZXJHE+W5FEnbBINF54Y/4JtRYsA65VQ4M8PJs/PG5VF EUGIW9mpOovbK2FTHRf7w6HOFIm3CX+0QX6XaZEB86s9OUN4c2MjCFQayLGd6e5KvP3B oRL+WXUwolmle9Ul2BTYGO7D33KtNTGQu4nnBCVgBoRizHHYXtj8WBfP6jcaczSt88B5 Zrg3trFxeV4eNkSitUgA+X0pY+d71MldaNOB2nCbRPTQErJBDPneOgFpES+OS8LOqUtd c3/g== X-Gm-Message-State: AOJu0Yyp4wh1ZN6lJpg8IhqzX/SzIEHsRjPG2vcC2yQh7odi9WQkNz/C t5WKknjxYW0VahKD132PTAXzJPbpZJGary2ZEmGr4/kKuXzDzOvh2X46 X-Gm-Gg: ATEYQzw5SKRjUzi5IV9CYX6GGOgsce8h0bxfw2nCucA2ET2Eg/tenj+vJNof6rW3Nn1 inJSlh9C4g8VzvgpqChvtj52Er51ys4Ix/IzoyDELnG92A0WkqurPfnFxVmQdOich4avQGalFjk z6tFNMZxEtwLKiuTdbwfPqPS1/v9Pdoczan6cR7odAM244hh/nSbRK0aa9b2O057Q42EdakKAWX 4oNOXGDgmDxu3ENlWRy1s1gQm2P2yTfxgFKNuwiOzXRiRSPlkOO6f0cNbv34rIRV4kZlGieXZNm ED+UCdNIXI8JNjXCodtLTBXyu4tl2UoDX5q4Ekw/Eb0dnm3ResmFS5hG54DzQ3crTpwSvxGXPjw xXjsWUQuWPFu9qlPbT/hL6OwMG5GbfbBuZX6sBN1Zs0hqAXADvX/mi7rLpwpf3jRXOjFI9iGcR9 kpUQgO4zwcUysf X-Received: by 2002:a2e:be23:0:b0:387:1836:e7a3 with SMTP id 38308e7fff4ca-389ff105659mr100636351fa.5.1772527375546; Tue, 03 Mar 2026 00:42:55 -0800 (PST) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-389f30227a9sm32599471fa.42.2026.03.03.00.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 00:42:55 -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 04/15] staging: media: tegra-video: csi: move CSI helpers to header Date: Tue, 3 Mar 2026 10:42:27 +0200 Message-ID: <20260303084239.15007-5-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-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" Move CSI helpers into the header for easier access from SoC-specific video driver parts. Tested-by: Luca Ceresoli # tegra20, parallel ca= mera Signed-off-by: Svyatoslav Ryhel --- drivers/staging/media/tegra-video/csi.c | 11 ----------- drivers/staging/media/tegra-video/csi.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/staging/media/tegra-video/csi.c b/drivers/staging/medi= a/tegra-video/csi.c index 7842104ca933..f858c05ce6c9 100644 --- a/drivers/staging/media/tegra-video/csi.c +++ b/drivers/staging/media/tegra-video/csi.c @@ -20,17 +20,6 @@ =20 #define MHZ 1000000 =20 -static inline struct tegra_csi * -host1x_client_to_csi(struct host1x_client *client) -{ - return container_of(client, struct tegra_csi, client); -} - -static inline struct tegra_csi_channel *to_csi_chan(struct v4l2_subdev *su= bdev) -{ - return container_of(subdev, struct tegra_csi_channel, subdev); -} - /* * CSI is a separate subdevice which has 6 source pads to generate * test pattern. CSI subdevice pad ops are used only for TPG and diff --git a/drivers/staging/media/tegra-video/csi.h b/drivers/staging/medi= a/tegra-video/csi.h index 609c5952e050..2b4d586d3845 100644 --- a/drivers/staging/media/tegra-video/csi.h +++ b/drivers/staging/media/tegra-video/csi.h @@ -155,6 +155,16 @@ struct tegra_csi { struct list_head csi_chans; }; =20 +static inline struct tegra_csi *host1x_client_to_csi(struct host1x_client = *client) +{ + return container_of(client, struct tegra_csi, client); +} + +static inline struct tegra_csi_channel *to_csi_chan(struct v4l2_subdev *su= bdev) +{ + return container_of(subdev, struct tegra_csi_channel, subdev); +} + void tegra_csi_error_recover(struct v4l2_subdev *subdev); void tegra_csi_calc_settle_time(struct tegra_csi_channel *csi_chan, u8 csi_port_num, --=20 2.51.0 From nobody Thu Apr 2 17:16:00 2026 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (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 5603638C2C4 for ; Tue, 3 Mar 2026 08:42:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527384; cv=none; b=mrLPF4uaYzaSTOp3rEuUHOVZIX1lwg8Gt7RiD/MZvIUytFtnZi/jSAD/yiL0+7RGtjnhWdso0ZrlT5tbSZIp8Wd5a8NgwT/mDFUroDMmP2Gxmka68OuacKbKFL5isXCIpVeY9qV+vWflgAZMbKHUn+XTbzPQo+2x9Grqfk/5bFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772527384; c=relaxed/simple; bh=bwwvWXJ41lySPW4U+2fiYxqsXRKDlDWopfEyohTTtfg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lIOJSW9x49M/oezs3DKsNSG3jR2Qj/sygQKcH9ED7l+ont+tgplBDx2DN12TyUPRJjNnee/I2WQqTEc6m8/uuBpttxI3W9/+SXdxjUuAq4pLKd3HqtBFk65Yme+L1hA0khvuJZ7RLJPJo9U1zGFp3aij9JRf9NvhUcC76FThZ+U= 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=P4dEd0h0; arc=none smtp.client-ip=209.85.208.170 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="P4dEd0h0" Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-389ebb0e885so102561851fa.1 for ; Tue, 03 Mar 2026 00:42:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772527377; x=1773132177; 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=dHYmVbbfQfaP2yj99KiW+/UkO3tcLecvvnP/w5d/X6U=; b=P4dEd0h0oSaTnk/BSYyDQNQjGzJpUww0XDD/jIJrHwdcamxsz1/i+Pwit7QcmllHzQ PlQyLE1Riik+MENxkEvTdNyy6bXa2XMmV2eyvnob7nMXraHFiZys//++m2ZOo+QeGW8V +e9396e1VOWeb8gT0kbOECmXJ/68HJTW9u/VNHixnl100jPuUN0PBQnPXWwFkbvtig0a Djxm2kzFlfNwGeGnpbHb+RBeIIqfh9KxOwQQHbrNcuQXYQoAJDHmMth3kx3kDLx5nrRs o4dwqpwgBhRcEkXnaE5H1ril5BfXLiAXfkxBBK6FhU0cZfR34jhPGRmvQgZBJvGbRBBG 7Fsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772527377; x=1773132177; 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=dHYmVbbfQfaP2yj99KiW+/UkO3tcLecvvnP/w5d/X6U=; b=BT3tE+u9QXpaxBNxODEUjftwqjB6287X9xx19SwuRIKgZOGLMW+EfkGUStqpL6f31b hkGSJRRiEJnxrSmkalpss9l6aXY8xlDJLa5fuP+l+LREjL/YwbXInJ1VeLwrPQZSn6ya SOEb8Mjby2XW1iLOcnP1vb8Ka0AIqFTjBPBh9J34g/pAnKLGEUcUx7BOO3Oh869/PA2/ VzXdM1wTyECvHjp0BfWHOXw7ShUoGrWozxnC4d2/lrGWxfRMYVeVfhgmCAu7HG3Mg1p4 7qAoZq4Df9exIw+G/ueixpErL1Mo8pAIySVltA0XIFjPcM2BbTmF1fq/adfO4d3zv1Gj RIsA== X-Gm-Message-State: AOJu0YzPFEIK0lKMpJ+Cgm73K1TVIpH1F6gv3Q/nHKFgSYp3p65bmcaf +fmfDIQ0fwE/6zW2VXsjA6QWrFrrtuaNkCQnGCXbBwDWDzPBOajw+LId X-Gm-Gg: ATEYQzxeYiqeQzN0gMqdjFU3/b9AlGtbbVhs4VKKpA4sxdbt8pH95Jrvb4Z5F9FYz1g WhscAKNh/fEo6kMC3oUjNEroGcJP8p0kebplkMpphydCfTo4YvFtZ3P6+cSGd+BDPvq8wl8meha U9/apszQncJBUSMuIBkEDvgE1if2ItZnqsRT2tke3jJ0xKvVQJR1X0e8ars/LXTRItXY/3l5FCo qo94WT9prKwMM+HGmjow9Dwh1CWxmqatiVNwYAz7DSyQfmIk2NlsHBj4V0f5q5BHekE5Anx4uNb p7B1JzrzjEBvqimgro3sn5KWUMwEL101MbtzCaRkYXdnnz1wgIqX6Fp6oN9M/r4LzLVRyxwuQIQ SG1+/jW35GQea/CgqgS9CN2r2W6hLsH3Dr3K0zvhSTK1JcE6juLx2UqZFQjaJNshTc5izkujbum SwlpJVQ0pchtBj X-Received: by 2002:a2e:a106:0:b0:389:fb7f:3e0c with SMTP id 38308e7fff4ca-389ff15f371mr102458851fa.21.1772527377130; Tue, 03 Mar 2026 00:42:57 -0800 (PST) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-389f30227a9sm32599471fa.42.2026.03.03.00.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 00:42:56 -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 05/15] gpu: host1x: convert MIPI to use operation function pointers Date: Tue, 3 Mar 2026 10:42:28 +0200 Message-ID: <20260303084239.15007-6-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-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" Convert existing MIPI code to use operation function pointers, a necessary step for supporting Tegra20/Tegra30 SoCs. All common MIPI configuration that is SoC-independent remains in mipi.c, while all SoC-specific code is moved to tegra114-mipi.c (The naming matches the first SoC generation with a dedicated calibration block). Shared structures and function calls are placed into tegra-mipi-cal.h. Tested-by: Luca Ceresoli # tegra20, parallel ca= mera Signed-off-by: Svyatoslav Ryhel Acked-by: Mikko Perttunen --- drivers/gpu/drm/tegra/dsi.c | 1 + drivers/gpu/host1x/Makefile | 1 + drivers/gpu/host1x/mipi.c | 592 +++++------------------- drivers/gpu/host1x/tegra114-mipi.c | 483 +++++++++++++++++++ drivers/staging/media/tegra-video/csi.c | 1 + include/linux/host1x.h | 10 - include/linux/tegra-mipi-cal.h | 57 +++ 7 files changed, 666 insertions(+), 479 deletions(-) create mode 100644 drivers/gpu/host1x/tegra114-mipi.c create mode 100644 include/linux/tegra-mipi-cal.h diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 2c5aefe9621a..7f25c50621c9 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -14,6 +14,7 @@ #include #include #include +#include =20 #include