ARM: tegra11: dvfs: Add dvfs tables per bin
Alex Frid [Tue, 20 Nov 2012 21:15:24 +0000 (13:15 -0800)]
Changed core dvfs table differentiation ID from speedo_id to
process_id. Separated 3D/2D/EPP tables into 2 bins, and updated
dvfs limits according to the characterization input.

Bug 1161126

Change-Id: I91b719aee0e821831b1da6709f6025d010cb4c9a
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/165515
GVS: Gerrit_Virtual_Submit
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>

arch/arm/mach-tegra/tegra11_dvfs.c

index bc366d7..e130133 100644 (file)
@@ -120,11 +120,11 @@ static struct dvfs cpu_dvfs = {
 static const int core_millivolts[MAX_DVFS_FREQS] = {
        900, 950, 1000, 1050, 1100, 1120, 1170, 1250};
 
-#define CORE_DVFS(_clk_name, _speedo_id, _auto, _mult, _freqs...)      \
+#define CORE_DVFS(_clk_name, _process_id, _auto, _mult, _freqs...)     \
        {                                                       \
                .clk_name       = _clk_name,                    \
-               .speedo_id      = _speedo_id,                   \
-               .process_id     = -1,                           \
+               .speedo_id      = -1,                           \
+               .process_id     = _process_id,                  \
                .freqs          = {_freqs},                     \
                .freqs_mult     = _mult,                        \
                .millivolts     = core_millivolts,              \
@@ -136,15 +136,19 @@ static struct dvfs core_dvfs_table[] = {
        /* Core voltages (mV):                   900,    950,   1000,   1050,    1100,    1120,    1170,    1250 */
        /* Clock limits for internal blocks, PLLs */
 #ifndef CONFIG_TEGRA_SIMULATION_PLATFORM
-       CORE_DVFS("cpu_lp", -1, 1, KHZ,       228000, 300000, 396000, 528000,  648000,  696000,  696000,  696000),
-       CORE_DVFS("emc",   -1, 1, KHZ,             1,      1,      1,      1,  800000,  800000,  800000,  800000),
+       CORE_DVFS("cpu_lp", -1, 1, KHZ,       228000, 306000, 396000, 528000,  648000,  696000,  696000,  696000),
+       CORE_DVFS("emc",   -1, 1, KHZ,             1,      1,      1,      1,  800000,  800000,  933000, 1066000),
        CORE_DVFS("sbus",  -1, 1, KHZ,        132000, 204000, 240000, 276000,  324000,  336000,  336000,  336000),
 
        CORE_DVFS("vi",    -1, 1, KHZ,        144000, 216000, 240000, 312000,  372000,  408000,  408000,  408000),
 
-       CORE_DVFS("2d",    -1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  516000),
-       CORE_DVFS("3d",    -1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  516000),
-       CORE_DVFS("epp",   -1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  516000),
+       CORE_DVFS("2d",     0, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  612000),
+       CORE_DVFS("3d",     0, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  612000),
+       CORE_DVFS("epp",    0, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  612000),
+
+       CORE_DVFS("2d",     1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  612000,  672000),
+       CORE_DVFS("3d",     1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  612000,  672000),
+       CORE_DVFS("epp",    1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  612000,  672000),
 
        CORE_DVFS("msenc", -1, 1, KHZ,        144000, 182000, 240000, 312000,  384000,  408000,  408000,  408000),
        CORE_DVFS("se",    -1, 1, KHZ,        144000, 182000, 240000, 312000,  384000,  408000,  408000,  408000),
@@ -154,7 +158,8 @@ static struct dvfs core_dvfs_table[] = {
        CORE_DVFS("host1x", -1, 1, KHZ,       144000, 204000, 240000, 276000,  324000,  336000,  336000,  336000),
 
 #ifdef CONFIG_TEGRA_DUAL_CBUS
-       CORE_DVFS("c2bus", -1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  516000),
+       CORE_DVFS("c2bus",  0, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  516000,  612000),
+       CORE_DVFS("c2bus",  1, 1, KHZ,        192000, 228000, 300000, 396000,  492000,  516000,  612000,  672000),
        CORE_DVFS("c3bus", -1, 1, KHZ,        144000, 182000, 240000, 312000,  384000,  408000,  408000,  408000),
 #else
        CORE_DVFS("cbus",  -1, 1, KHZ,        144000, 182000, 240000, 312000,  384000,  408000,  408000,  408000),