static void __init tegra_ardbeg_reserve(void)
{
+#ifdef CONFIG_TEGRA_HDMI_PRIMARY
+ ulong tmp;
+#endif /* CONFIG_TEGRA_HDMI_PRIMARY */
+
#if defined(CONFIG_NVMAP_CONVERT_CARVEOUT_TO_IOVMM) || \
defined(CONFIG_TEGRA_NO_CARVEOUT)
- /* 1920*1200*4*2 = 18432000 bytes */
- tegra_reserve4(0, SZ_16M + SZ_2M, SZ_16M, 186 * SZ_1M);
+ ulong carveout_size = 0;
+ ulong fb2_size = SZ_16M;
#else
- tegra_reserve4(SZ_1G, SZ_16M + SZ_2M, SZ_4M, 186 * SZ_1M);
+ ulong carveout_size = SZ_1G;
+ ulong fb2_size = SZ_4M;
#endif
+ ulong fb1_size = SZ_16M + SZ_2M;
+ ulong vpr_size = 186 * SZ_1M;
+
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE
+ /* support FBcon on 4K monitors */
+ fb2_size = SZ_64M + SZ_8M; /* 4096*2160*4*2 = 70778880 bytes */
+#endif /* CONFIG_FRAMEBUFFER_CONSOLE */
+
+#ifdef CONFIG_TEGRA_HDMI_PRIMARY
+ tmp = fb1_size;
+ fb1_size = fb2_size;
+ fb2_size = tmp;
+#endif /* CONFIG_TEGRA_HDMI_PRIMARY */
+
+ tegra_reserve4(carveout_size, fb1_size, fb2_size, vpr_size);
}
static const char * const ardbeg_dt_board_compat[] = {