From nobody Sat Feb 7 05:01:07 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (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 9462937F0ED for ; Fri, 30 Jan 2026 12:49:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777399; cv=none; b=ar5gFILSZGmJ2wXRla8O1RcKdzWTF3Tg28/gu/e9W2ZXPcaQUzhsCmgMaxsu1uMOGkanyxuNBffLygBVH9x1HJPJYdYlJmGUaz4D/oKzSGDR9PpAGJ1rJGklp4rcPcCRNBYjz/IhWtuCAWWIGT5ZuCnZCDQf9lIq+g76Ls2Gj1U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777399; c=relaxed/simple; bh=To1d/zhAMJHw605taojXaeo9SAKZcoKeQpcDI3cxW/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ldzm6uiC4Q7Adgka1MDtaf5DTaM2TotO6tOlgs5Jbf2SENpbpbmMY7i7ajM902Yafscb7F/heRV7U3hCsqcGgBLu/xNOE5ZRl1RpFpkJERVxy2tOa9eyHyNIm5QoRS4Ljvaidz0fbOtthIRUI1DIiv0JMw3KxzV+flSKjP+mN9g= 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=G9EDDRx5; arc=none smtp.client-ip=209.85.221.45 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="G9EDDRx5" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-432755545fcso1444443f8f.1 for ; Fri, 30 Jan 2026 04:49:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769777396; x=1770382196; 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=xe8jyxD8htr2t5lhKuU5l2a42gpBrpfOGyfYmkBAV1Y=; b=G9EDDRx5tXJr1omgSbsBsXlXv7iiDyfI3BOgssqb//ShPrFFSoScwMQCZybFH2eh8K DXSpPAmaUeQwp43r6IAYLxgjN9XarT0hSjXg9eJCs7GV//m2aX/mEY3CjWdcT0Nd4x9i FIg4SdyxqkayfVTm8tQLWJaCHjz9T652z1bERichWXoK7bXwUPxwf9QmhmAV8l5N8+Jm AGNTwxMU44drUHD16uG+FQ9XgsbfXcJq5LbPvfeeddLVJVp773ekd57kHjPvZ8JtOJ8u ZYr5oxmVCsQeiB4p5OZcuosHxRin31ntoysAqUCBu3UfhdmHkOplxMOMNDZyTdAKKP3q BdWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769777396; x=1770382196; 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=xe8jyxD8htr2t5lhKuU5l2a42gpBrpfOGyfYmkBAV1Y=; b=HNp2u9soxenSSNFrjWUzYJcbi6q5X1CnLcj+0RrJB7tJ3ku/jygXta+EEuP/JJBlHA 6nEz/teMj/6qRPDgqy+e/23MVljcZH+NW4TzLFxFk8uAP4ZszGJ4t9Ws26/6Dz+IOPEo Dyj8//SwV8J+cxWaE7Nc/+5nv8jcV85Hp+pEtms69cZlWbso/IZEfKadjlNG3v5gH1Ud AgdsswDIArS6I6CPZwy4tu03NffgpX39dyK+neUxXeeYGg3EsUMaORHur+GeH0yUjphI DTPocD8Khr6ifpz2f8oF1j8uAt0szPTYUZ0Lf1iRJHrPc8yy+hAWY7ZitHnCEe7vjyWf X3AA== X-Gm-Message-State: AOJu0Yx1Y29IhB8yki6pDjE6dmoAd+ALyzwM/I1UZ+BZXlS4prLgVRfB lOnRGIsEDl1Phyv2WVGtRHVbqq66yTAFNJgJ8OSxK5S/uUllP6YJFXxG X-Gm-Gg: AZuq6aKJgv+bQG/5TIyJs+nRR7o1uVBYP1h8RqzjGJQSvb50dPr4K6t9G2dNxRj9jzH Hfp7rrv0/tP8gzUhpwsz37DHNwZ5fgil+wWtsSSfaldgqmeor83vyezZ1GZ8t3M8KG1l50SYzEk k4m4k7/3bkfVD/DsuCr4EJmN/9ZEbZuxk7QQmbUiuYK7j1FA28CNWRz4mtC/63dA5krC14ngu9g MLz4d0o0IynP8vGB1AbCu78j/B4PInNRX6Yn5ovH8lut6aXV2j5L5IAMavXcYuBn9Gt1ttuhE/6 GiSEr2gN7P5fjv6WCzH4tNRCZd4VF4T7CsTHnQgg0LABIxfHEzUjuEFGZpbU4NuQRK4ddHQ/u7f FrZm7torEVZo16FAUHe90R4dkV89jk7oinEN/HzFmpGrK07qfvLr2b9RUSCJbLOFjSaz/11yjFX Ah X-Received: by 2002:a05:6000:4285:b0:431:b1e:7ff9 with SMTP id ffacd0b85a97d-435f3aba7ddmr3579193f8f.59.1769777395701; Fri, 30 Jan 2026 04:49:55 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10e4757sm22738783f8f.5.2026.01.30.04.49.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 04:49:55 -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 01/15] staging: media: tegra-video: expand VI and VIP support to Tegra30 Date: Fri, 30 Jan 2026 14:49:18 +0200 Message-ID: <20260130124932.351328-2-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" 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 14b327afe045..4b80086f8c05 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 68783d5ffeb1..4aec2ff9a69c 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 Sat Feb 7 05:01:07 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 7369437E312 for ; Fri, 30 Jan 2026 12:49:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777400; cv=none; b=Niw/o6/NHyPxoxCRUKStlmCs/Lry1wBPH50JEX6x5V2k/yApye3qtJkg7DNzWRf7pPphY1FMHrR+fVYXdAAp4sDvsX2Hyra2Yak+/XNFYhCy0I9SBLgj/rwiGhq86by0Rqglkj6RpRW59z73IVKt0W30SxS7QbUrbcael4lcx/M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777400; c=relaxed/simple; bh=/SlcgcoXh6qESEbxV+NcpVqvXpkWkqApdJg+bzGWNTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OxvKMBzFpJ78Sk8Pz9eL3J88Rnjh4+FGVhUrYiySvwjgCkh6aoV411QxFpdjkF/psxMLX+z2sMvXcO61sTNDG5gAPYGnq6yyK2bGHh1TdvR9bOCXYt4yXrbiNzs2q7PvjJ7NJ+tRM9q4e5FZKZe3P0/zZ3xfp40+Y03Q1hpPFDg= 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=QIf2q0LT; arc=none smtp.client-ip=209.85.128.47 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="QIf2q0LT" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-47edd9024b1so17226555e9.3 for ; Fri, 30 Jan 2026 04:49:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769777397; x=1770382197; 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=FDyuTxJQ2wPWDIlHnScBHP39ldpO6z/HRmLWZsSUiWM=; b=QIf2q0LTJikh21uLKDT1MMoq0ewo3Fi0t2yjMv+M1Yj/t+pNu7VGQK61Bfd2GH1+s9 bHKEF0NzMYHX7kmjWnWHy62tYfBEFvbVofvRS+9mgkI+0kY2JoLslZf9TgrXwGfI9szY w+bxkBWihfkTUtrYqAtchcCEdA78cbi+05fLyPYkxYTDcWA47uBWmXuGg5TgXeNaxxGz Lbih4T8X9fDIm+dSkFHKhvo0G1/04KOeusmcF2kPoZcVnd+hd3F2ratVsuOV7AyD9Z51 OoEZLClTc3KOr9d/LOCEYOi57k0MWfRAt8XWc1FVUPTJQm6T/uSnM4d4vx8FxIhc/l5H C4zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769777397; x=1770382197; 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=FDyuTxJQ2wPWDIlHnScBHP39ldpO6z/HRmLWZsSUiWM=; b=MaVn5MI0LOwS46gpaX6IcHTAXPtsvBHtIeupa+6GJrmA5DvOjTH987LgDUHg0Isaz0 xwq/6ZCTpOMzNOVms5onJh1osWRm6sRnHtfc/ps9SMZ1RYfYlUGKULBJkqG3dNMo9/t9 4NPicAgFi6aGy/jIC2FxQptMA0TZWlVoSFe6Nefcv/q4OoO1gE8eF9HV3rHAzA7drj8Q QP/fmPbjq29HmLyqsl811++H5tF4DysQKnOunqd3cM6H/Iavd3uvYE5lUG2CGMhdc7vD kYAs0Y6RYxwCF1R+x148sjmlOhPqrTLGS9UWYfrm8Wxr4cMkAZk1cKBzrSalfsaV7Vxi 1q9w== X-Gm-Message-State: AOJu0Yw3gYKFgvJh8sVtdgZwozTHa5BfmhTgUbzkAmGa7TasulQpBId4 3hMCvUCfuKPyvhxAIXfdeVUqeb39+7sDBenfufTD0+3/BDXQQOqVgNH6 X-Gm-Gg: AZuq6aKEBWEWz1MRfoE1DklpBIYCwarPh3N8/5SXJ85NRHUaxtQ29lkF8AZHQKMKJgP 2aw5HVI5ILMxxRG7cS5XTA1YFxIu1UVxoB3PSd49Z609LPDnE6TiXqDY1RJXtbxnEs4BOl3rJvM ixuAx/XZqSV0gZ3Nh66n1CllsJBsyedzIJRA15tGN+eguJW2suvmZFmm8+/r+eAfbAYrCs7lvgd Io9zaHMBnl+2ldvzD1Rc85SD7FVJvDw9CB5mc7gyQmUacEm0/pWfoNC79PBFl6+Cwwx2U8PaZPT eo72Fyc8TvHfbattAOPasx4lOFXYh7812gOpcI/yOunc6d2oPFmBRQd37VLUHveOPP+pceyW8po 5yEjQrI8BkLcHGaCSasnl6VLqbfVakwmuFSAN1bTcQcRdKMFuyL1P5X+vtVVIAVtTBLjUF3t8aX O7Z5CRbElKe8o= X-Received: by 2002:a05:600c:a00e:b0:477:63db:c718 with SMTP id 5b1f17b1804b1-482db4bda8dmr37743845e9.16.1769777396741; Fri, 30 Jan 2026 04:49:56 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10e4757sm22738783f8f.5.2026.01.30.04.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 04:49:56 -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 02/15] staging: media: tegra-video: vi: adjust get_selection operation check Date: Fri, 30 Jan 2026 14:49:19 +0200 Message-ID: <20260130124932.351328-3-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-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 4b80086f8c05..70a84158b589 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 Sat Feb 7 05:01:07 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 From nobody Sat Feb 7 05:01:07 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 0EC8137F0E4 for ; Fri, 30 Jan 2026 12:50:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777403; cv=none; b=mo+ionfsUSoCewEBdixgNITEHDeWYNJvewwczfuPavkigC/pI+5CBwC0waENtdjtflf7vTGUJsQwTmBi6c8F4AgteAYGPCN5k/c1fBt59g+U8wIDgxT+1uewx3UIjaNHCgkM0rq41ZuHBSwkPvFHi8ZQHDb+Qaz/gSthodSugrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777403; c=relaxed/simple; bh=4Y6GlT1FtG8VTSEqElibSSfmV/oqQEBBF3NI80Dhu3w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s49782BFdZGSVLJbCIoVnotKqKX6RxzAz9j0MCeMCb2jp/KuKXrQQtf+DolUd8xVpTBHrfv3FIAKODEeOXhK+TEuPO8IoaGzWRAXhYldC+bwMVK90xRrb7JAZZ4TwdVjyVNwBc9J1tKkyNvFhFeBFJLocu4/5TSmmTWC/Pj2/uI= 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=LyJ/9VxK; arc=none smtp.client-ip=209.85.128.41 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="LyJ/9VxK" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48068127f00so17705105e9.3 for ; Fri, 30 Jan 2026 04:50:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769777399; x=1770382199; 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=5ZTvAgzsdLyPVb7r9icvoh5jhK/kCdwgL9RfYNjUTH0=; b=LyJ/9VxKH8qG4HIkajVqD+yx8jJ34L/TPUKCDM5oTP8QdBExhQ2HFUfNkzvM/ynTLQ Nc/GG1r0L8w5mOwzDzCMSa05SI87FacWcIdEi51vGRQGTopwyrUb6DsXZMEVso4ge6l0 pDB0vz6r6GAY8L2RE70H7a2OcoBnv4rKz5ewy3eUq8fck92eF9sKoaq9lrocFk3NzdkZ 95FdMhhVi0Fg+glk3Ac7uldmaAnNFwv3GnxhkZjP2iYrEyG7PWS9rl0zcB8LA1VlR1iR gov8P3jrWxWNX5mV9Gl0LatjHECTNa6R2cMwZX1ZIKGxx/2dPyRWQGQaszTDRX1slLw3 OinQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769777399; x=1770382199; 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=5ZTvAgzsdLyPVb7r9icvoh5jhK/kCdwgL9RfYNjUTH0=; b=fFiTm+UPPpLwVKzbm62lQlgPBcPMd3cPDhod5r139v4vTXJukyLDua//6m32dt2ETD AukqcoZ/+IsXhlHxwpo6M2p3410+jjfhynsFN86905x8O3a0lGlu93a3AWTgvfSFmgAr MAJsw87bYHUx50BHt3eVKYiJ88ougtDrovCE6qoLFTLsKOS/D10oPmJI2UVnksY9SXRp VIXnb2GWpV4U7QcSqqiDX17VbdCd/pOjel7z2/i4sjFYNpNpFjvoKDx6wyprxmP5tR2a Vdol0ynOdYfdUHsfvXUu6sk5XYB2DVzoWw6RBdoIyTMttWKs49YzRyzsUVgJTgp0C5VV C11A== X-Gm-Message-State: AOJu0YzcwiDvbaXm+aHbhGsqOQrJ5rqq2H7iY6d9Ax2wBzAcQiqDqbAa a6HnpVBuy6SqR/PWJVZaWdiq7efNEmx1dh/ADYLjHB1QeLem0kVmb9af X-Gm-Gg: AZuq6aKuKA2bSZeaIv1IH46vvoRrBfHFh0HGPQebuW1U7hcDcrIHnXdQEX/mo8Cs1LR /JD/4Fnf2PsgYY/Nycy6lu8Yx8ZoraagK+wsyRJ+tMHYglhWXgKWRDOcE1IG9eWmXD/fw94GmYl r1AyzBsQ2WjOqFChtMPQzGcsaA5lVmWA5AR3y36Wrn6xlsB5OvCKfl+ir5ZHp+/gUCaO0RxSVD0 DXFP9Uhnwou7SVQQlqlD8/H5bTNpNc0S1P3A95HjMHUmmZVYcitAYrp7PcbuymT/T9KLDcwm0CZ s0+mNatLM2x7uTMkesQ2HQu1ksNLd4z3Xjs6HQw5Ub2nLtmKisO86AMIOGBEzSwOWEy/6YoWeQL Yp3xkpAkDG+qAS/yrbI6kiOaQW04Fnq0LuXpI4/mFo+WVV+5WWQG9cUuamUvnOLDtSESl5IxcDq 6H X-Received: by 2002:a05:600c:a08c:b0:477:6374:6347 with SMTP id 5b1f17b1804b1-482db491ef7mr36328755e9.22.1769777398808; Fri, 30 Jan 2026 04:49:58 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10e4757sm22738783f8f.5.2026.01.30.04.49.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 04:49:58 -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 04/15] staging: media: tegra-video: csi: move CSI helpers to header Date: Fri, 30 Jan 2026 14:49:21 +0200 Message-ID: <20260130124932.351328-5-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" 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 3c3f6e3fd1ec..894583d48b35 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 Sat Feb 7 05:01:07 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.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 5EB7537F73E for ; Fri, 30 Jan 2026 12:50:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777406; cv=none; b=pnfbLUD/ANHeFBWE5AukP8AGBfm4A8VQvcmKnwNk74dBSXWKbx3t64mTC0y6oEUT7zjkllsTLyxhQfdqMYxHXK6KFo4YRTstYiOLokmlKayL/L56MH9e6k1ZtQJKI2cVPOnxQTIPjUCVfowJclOs1lttkhoULmFq/9VbGPosBS8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769777406; c=relaxed/simple; bh=oY85USD0gXJXDDNe9s6acMW/Ocv30mpMkYhRB0pufxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NVRT/ayKIET65qCm6D7BjKbl5cT7DYSS6RhZzbt0v4iWaL90TDbxtqbB8darWUzLk5GaM+NaEsA96qhuNL5plGmTa3Fif5CGZ6e2ys5FnjlHp+WhorZ5IKQB8bS/BYYlWe/f93b1NQ8Lm3bHQOHJ1T2uX77Se3e/KXCApGPhB/4= 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=BguKJBlW; arc=none smtp.client-ip=209.85.221.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="BguKJBlW" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-4327555464cso1608189f8f.1 for ; Fri, 30 Jan 2026 04:50:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769777400; x=1770382200; 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=izZNO3eL3oHzsJUrKxHV6Tqswim5VPWikLvVKcA1Uj0=; b=BguKJBlWuUunwAk6T8VDW6MM1dOuW0fduoARNkDp9tbCT+B1RzGs466o5vAVRs4OlC i63LlhXBV0HwZug00xo+qIkp5BwSvvNSMCrAsACm+4+OeLSYjY/OgG+p8+pLNL7lnFjI 9J8XgV0qqyBDa3McbeREsLBz9SjdSoz21/nLuD7zgnLwVgQgBr6nkCHdziyVg1PYbisV SnrnS4fTtB+W8H+tZ+VTk26VzZ7b8UEBS8ZibrKLwmTIGGUnMJsiU8TudHxJAVQOR3/l +iEmKeBpwohp4QlgmXD4mkxWCS8bCKzQ+vN7g74UwZVxL+ESG5B+/71AmrnjFDN8ly/p CfUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769777400; x=1770382200; 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=izZNO3eL3oHzsJUrKxHV6Tqswim5VPWikLvVKcA1Uj0=; b=FpAeEdbuqmr2zSco6VuyNvawgZCEV1zPUgLP+ponfcldZVg8EdWU8RTXJG/caOG39z iwRdbbHE5/VMQU7tpyQerHGpqGyPeaNdVE/X5z3P+otR6JEW4IM7cvkAg6/flSL7B4Hf wXGnPMi8YE0Mt9UFU4gqwYTmC/b8JwE1efGeGocY6i+N3Nm2O/+BqXTbErc9rut0JkdV Ri2ijBSWEnJuzQIHo4ARik7b4+Q3BBzv72woiBKFAmHvqqpNesa7L6lBqvFF9qkrkfq6 C63AGM/bE35V0OzvhpKTBTbAo1vEdil1zg6LmUCCiH8keyomo+9PqM22MczlLLrJOtnL HqPg== X-Gm-Message-State: AOJu0YzCCKGT4MOqpMqD3/ldYOuBXkf6CfZ0e8ANirbPpE4mRhlNCJrN wX0QzinoX9g1YqQuh2b9aTB39wNDcYbhJ8YaufJ750rXsGsl0Qfosp6z X-Gm-Gg: AZuq6aI6/j6PJWN7kX5p65x4fm1AMV0FKqAJuh8VG3mNKECQ1LGJbGUo5G8gkX1YbBE vq97VJhlu7R4Tg6ciJPaKrZMKWPoP960bOllmCZuHoF6rRFpiSKq5ISWMVFLWdvqtcembk+LsAt nx9hsv0fGHq+oTeeoJE+strMqrXmjCYvFk+j7rjfKZ/wNZXFiAyAWD0PSRBGd7ucHBxWBCzltur aTldwbhxSpt+ru4YKQzd70KmjuG/IVhHVCDvGytvZUsXllVGkQFlFxeSioEjXY4wbQ4EQMhCEag 2EYM4UEtHwP4mre/mPoj/mufACjoGkIhKoa6TovB0l3AfITcHyTUhHROXXxBWbwOcIACnpS5gF+ 72brNSEvIzMNkXJgxBQkiU+HHqm17dbwz7oGmeULSLgQOyxUo5gVYOaMaScty03JvHogNMuDqNy UJ X-Received: by 2002:a05:6000:2404:b0:430:fc63:8d3 with SMTP id ffacd0b85a97d-435f3aaa5bamr3926407f8f.30.1769777400075; Fri, 30 Jan 2026 04:50:00 -0800 (PST) Received: from xeon ([188.163.112.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e10e4757sm22738783f8f.5.2026.01.30.04.49.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 04:49:59 -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 05/15] gpu: host1x: convert MIPI to use operation function pointers Date: Fri, 30 Jan 2026 14:49:22 +0200 Message-ID: <20260130124932.351328-6-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" 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 | 525 +++--------------------- 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, 599 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 8ee96b59fdbc..2735aa351d8b 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