}
 
 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;
        }
        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);
 }