video: tegra: host: Disable keepalive for MSENC
[linux-2.6.git] / drivers / video / tegra / host / t114 / t114.c
index 550b308..9ab2cee 100644 (file)
@@ -38,6 +38,7 @@
 #include "host1x/host1x_syncpt.h"
 #include "chip_support.h"
 #include "gr3d/pod_scaling.h"
+#include "class_ids.h"
 
 #define NVMODMUTEX_2D_FULL   (1)
 #define NVMODMUTEX_2D_SIMPLE (2)
@@ -90,7 +91,7 @@ static struct host1x_device_info host1x02_info = {
        .nb_channels    = 9,
        .nb_pts         = 32,
        .nb_mlocks      = 16,
-       .nb_bases       = 8,
+       .nb_bases       = 12,
        .syncpt_names   = s_syncpt_names,
        .client_managed = NVSYNCPTS_CLIENT_MANAGED,
 };
@@ -128,8 +129,8 @@ static struct nvhost_device tegra_gr3d03_device = {
        .waitbases     = BIT(NVWAITBASE_3D),
        .modulemutexes = BIT(NVMODMUTEX_3D),
        .class         = NV_GRAPHICS_3D_CLASS_ID,
-       .clocks = {{"gr3d", UINT_MAX},
-                       {"emc", UINT_MAX} },
+       .clocks = {{"gr3d", UINT_MAX, 8},
+                       {"emc", UINT_MAX, 75} },
        .powergate_ids = { TEGRA_POWERGATE_3D, -1 },
        NVHOST_DEFAULT_CLOCKGATE_DELAY,
        .can_powergate = true,
@@ -145,9 +146,9 @@ static struct nvhost_device tegra_gr2d03_device = {
        .waitbases     = BIT(NVWAITBASE_2D_0) | BIT(NVWAITBASE_2D_1),
        .modulemutexes = BIT(NVMODMUTEX_2D_FULL) | BIT(NVMODMUTEX_2D_SIMPLE) |
                         BIT(NVMODMUTEX_2D_SB_A) | BIT(NVMODMUTEX_2D_SB_B),
-       .clocks = {{"gr2d", 0},
-                       {"epp", 0},
-                       {"emc", 300000000} },
+       .clocks        = { {"gr2d", 0, 7},
+                       {"epp", 0, 10},
+                       {"emc", 300000000, 75 } },
        NVHOST_MODULE_NO_POWERGATE_IDS,
        .clockgate_delay = 0,
        .moduleid       = NVHOST_MODULE_NONE,
@@ -171,7 +172,7 @@ static struct nvhost_device tegra_isp01_device = {
        .index          = 3,
        .syncpts        = BIT(NVSYNCPT_VI_ISP_2) | BIT(NVSYNCPT_VI_ISP_3) |
                          BIT(NVSYNCPT_VI_ISP_4),
-       .clocks         = { {"epp", 0} },
+       .clocks         = { {"epp", 0, 10} },
        .keepalive      = true,
        NVHOST_MODULE_NO_POWERGATE_IDS,
        NVHOST_DEFAULT_CLOCKGATE_DELAY,
@@ -223,11 +224,12 @@ static struct nvhost_device tegra_msenc02_device = {
        .syncpts       = BIT(NVSYNCPT_MSENC),
        .waitbases     = BIT(NVWAITBASE_MSENC),
        .class         = NV_VIDEO_ENCODE_MSENC_CLASS_ID,
-       .exclusive     = false,
-       .keepalive     = true,
-       .clocks = {{"msenc", UINT_MAX}, {"emc", 300000000} },
-       NVHOST_MODULE_NO_POWERGATE_IDS,
+       .clocks        = { {"msenc", UINT_MAX, 107},
+                       {"emc", 300000000, 75} },
+       .powergate_ids = { TEGRA_POWERGATE_MPE, -1 },
        NVHOST_DEFAULT_CLOCKGATE_DELAY,
+       .powergate_delay = 100,
+       .can_powergate = true,
        .moduleid      = NVHOST_MODULE_MSENC,
 };
 
@@ -263,7 +265,8 @@ static struct nvhost_device tegra_tsec01_device = {
        .waitbases     = BIT(NVWAITBASE_TSEC),
        .class         = NV_TSEC_CLASS_ID,
        .exclusive     = false,
-       .clocks = {{"tsec", UINT_MAX}, {"emc", 300000000} },
+       .clocks        = { {"tsec", UINT_MAX, 108},
+                       {"emc", 300000000, 75} },
        NVHOST_MODULE_NO_POWERGATE_IDS,
        NVHOST_DEFAULT_CLOCKGATE_DELAY,
        .moduleid      = NVHOST_MODULE_TSEC,