]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: tegra-video: Update format lookup to offset based
authorSowjanya Komatineni <skomatineni@nvidia.com>
Wed, 12 Aug 2020 00:27:14 +0000 (02:27 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 28 Aug 2020 13:09:21 +0000 (15:09 +0200)
Tegra VI supported video formats are more for non TPG and there
can be multiple pixel formats for the same media bus format.

This patch updates the helper function for format lookup based on
mbus code from pre-defined Tegra supported format list to look from
the specified list index offset.

Offset based look up is used with sensor device graph (non TPG)
where format enumeration can list all supported formats for the
specific sensor mbus codes.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/tegra-video/vi.c

index 4ad3da53b4676f04f595999b8c440d601be56ef2..93edade0da0ee086772d403db10914fede960e41 100644 (file)
@@ -53,11 +53,12 @@ to_tegra_channel_buffer(struct vb2_v4l2_buffer *vb)
 }
 
 static int tegra_get_format_idx_by_code(struct tegra_vi *vi,
-                                       unsigned int code)
+                                       unsigned int code,
+                                       unsigned int offset)
 {
        unsigned int i;
 
-       for (i = 0; i < vi->soc->nformats; ++i) {
+       for (i = offset; i < vi->soc->nformats; ++i) {
                if (vi->soc->video_formats[i].code == code)
                        return i;
        }
@@ -598,11 +599,12 @@ static void vi_tpg_fmts_bitmap_init(struct tegra_vi_channel *chan)
        bitmap_zero(chan->tpg_fmts_bitmap, MAX_FORMAT_NUM);
 
        index = tegra_get_format_idx_by_code(chan->vi,
-                                            MEDIA_BUS_FMT_SRGGB10_1X10);
+                                            MEDIA_BUS_FMT_SRGGB10_1X10, 0);
        bitmap_set(chan->tpg_fmts_bitmap, index, 1);
 
        index = tegra_get_format_idx_by_code(chan->vi,
-                                            MEDIA_BUS_FMT_RGB888_1X32_PADHI);
+                                            MEDIA_BUS_FMT_RGB888_1X32_PADHI,
+                                            0);
        bitmap_set(chan->tpg_fmts_bitmap, index, 1);
 }