video: tegra: dc: new T11x bandwidth calculation
Jon Mayo [Sat, 9 Mar 2013 02:29:47 +0000 (18:29 -0800)]
Use 35% iso margin for display.
Do not add 2X to the bandwidth for tiled surfaces on T11x.

Bug 1231863
Bug 1246180
Bug 1226015

Change-Id: Ib09d813126f2b48f5d3381a4e3aca447b5a65740
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-on: http://git-master/r/207814
Reviewed-by: Automatic_Commit_Validation_User

arch/arm/mach-tegra/mc.c
drivers/video/tegra/dc/bandwidth.c

index 79473e7..831661b 100644 (file)
@@ -2,7 +2,7 @@
  * arch/arm/mach-tegra/mc.c
  *
  * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2011-2012 NVIDIA Corporation
+ * Copyright (C) 2011-2013 NVIDIA Corporation. All rights reserved.
  *
  * Author:
  *     Erik Gilling <konkers@google.com>
@@ -55,6 +55,13 @@ int tegra_mc_get_tiled_memory_bandwidth_multiplier(void)
 
 #include "tegra3_emc.h"
 
+# if defined(CONFIG_ARCH_TEGRA_11x_SOC)
+/* T11x has big line buffers for rotation */
+int tegra_mc_get_tiled_memory_bandwidth_multiplier(void)
+{
+       return 1;
+}
+# else
 /*
  * If using T30/DDR3, the 2nd 16 bytes part of DDR3 atom is 2nd line and is
  * discarded in tiling mode.
@@ -71,6 +78,7 @@ int tegra_mc_get_tiled_memory_bandwidth_multiplier(void)
        else
                return 1;
 }
+# endif
 #endif
 
 /* API to get EMC freq to be requested, for Bandwidth.
index 9a8c5d5..9d55e9c 100644 (file)
@@ -192,7 +192,13 @@ static unsigned long tegra_dc_calc_win_bandwidth(struct tegra_dc *dc,
                dfixed_trunc(w->w) / w->out_w * (WIN_IS_TILED(w) ?
                tiled_windows_bw_multiplier : 1);
 
-#ifdef CONFIG_ARCH_TEGRA_2x_SOC
+#if defined(CONFIG_ARCH_TEGRA_11x_SOC)
+       /*
+        * Assuming 35% margin: i.e. if we calculate we need 150MBps, we
+        * will request 428MBps from EMC.
+        */
+       ret = (ret * 100) / 35;
+#elif defined(CONFIG_ARCH_TEGRA_2x_SOC)
        /*
         * Assuming 60% efficiency: i.e. if we calculate we need 70MBps, we
         * will request 117MBps from EMC.