summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nv
diff options
context:
space:
mode:
authorS. Holmes <sholmes@nvidia.com>2010-08-19 09:31:17 -0600
committerDan Willemsen <dwillemsen@nvidia.com>2010-10-13 14:17:43 -0700
commit88cf0584a51ff364dc4a5d1fc4788c9138d54c1a (patch)
tree550591474c418f31735f785143f356a7eb397e4f /arch/arm/mach-tegra/nv
parentdc1b8b5255e85f379723ad7b71825dcbcdfc41c6 (diff)
tegra: nvrm: Add VDE, VCP, and BSEA to RM clock & module APIs
Add the VDE, VCP, and BSEA blocks to the RM clock and module APIs so that video and audio playback will work. Change-Id: I4a7d9121239967f6b76b0a585a818d1047a56993
Diffstat (limited to 'arch/arm/mach-tegra/nv')
-rw-r--r--arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_module_stub.c24
-rw-r--r--arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_power.c17
2 files changed, 40 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_module_stub.c b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_module_stub.c
index 5bf58eaebd8b..a38683081ac4 100644
--- a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_module_stub.c
+++ b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_module_stub.c
@@ -145,6 +145,21 @@ void NvRmModuleGetBaseAddress( NvRmDeviceHandle hRmDeviceHandle, NvRmModuleID Mo
*pSize = 256 * 1024;
break;
+ case NvRmModuleID_Vcp:
+ *pBaseAddress = 0x6000e000;
+ *pSize = 4096;
+ break;
+
+ case NvRmModuleID_BseA:
+ *pBaseAddress = 0x60011000;
+ *pSize = 4096;
+ break;
+
+ case NvRmModuleID_Vde:
+ *pBaseAddress = 0x6001a000;
+ *pSize = 0x3c00;
+ break;
+
case NvRmModuleID_Vi:
*pBaseAddress = 0x54080000;
*pSize = 256 * 1024;
@@ -167,6 +182,9 @@ void NvRmModuleGetBaseAddress( NvRmDeviceHandle hRmDeviceHandle, NvRmModuleID Mo
#define is_csi(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Csi)
#define is_isp(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Isp)
#define is_vi(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Vi)
+#define is_vcp(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Vcp)
+#define is_bsea(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_BseA)
+#define is_vde(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Vde)
void NvRmModuleReset(NvRmDeviceHandle hRmDevice, NvRmModuleID Module)
{
@@ -183,6 +201,12 @@ void NvRmModuleReset(NvRmDeviceHandle hRmDevice, NvRmModuleID Module)
clk = clk_get_sys("vi", NULL);
else if (is_isp(Module))
clk = clk_get_sys("isp", NULL);
+ else if (is_vcp(Module))
+ clk = clk_get_sys("vcp", NULL);
+ else if (is_bsea(Module))
+ clk = clk_get_sys("bsea", NULL);
+ else if (is_vde(Module))
+ clk = clk_get_sys("vde", NULL);
else {
printk("%s MOD[%lu] INST[%lu] not implemented\n", __func__,
NVRM_MODULE_ID_MODULE(Module),
diff --git a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_power.c b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_power.c
index a644842ce6c6..c9bf02999034 100644
--- a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_power.c
+++ b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_power.c
@@ -48,6 +48,12 @@
#define is_isp(module) (NVRM_MODULE_ID_MODULE(module)==NvRmModuleID_Isp)
+#define is_vcp(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Vcp)
+
+#define is_bsea(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_BseA)
+
+#define is_vde(_mod) (NVRM_MODULE_ID_MODULE(_mod)==NvRmModuleID_Vde)
+
#define CLK_VI_CORE_EXTERNAL (1<<24)
#define CLK_VI_PAD_INTERNAL (1<<25)
@@ -138,6 +144,9 @@ NvError NvRmPowerModuleClockControl(
const char *vi_names[] = { "vi", "vi_sensor", "csus", NULL };
const char *csi_names[] = { "csi", NULL };
const char *isp_names[] = { "isp", NULL };
+ const char *vcp_names[] = { "vcp", NULL };
+ const char *bsea_names[] = { "bsea", NULL };
+ const char *vde_names[] = { "vde", NULL };
const char **names = NULL;
if (is_vi(ModuleId))
@@ -146,12 +155,18 @@ NvError NvRmPowerModuleClockControl(
names = csi_names;
else if (is_isp(ModuleId))
names = isp_names;
+ else if (is_vcp(ModuleId))
+ names = vcp_names;
+ else if (is_bsea(ModuleId))
+ names = bsea_names;
+ else if (is_vde(ModuleId))
+ names = vde_names;
if (!names) {
pr_err("%s: MOD[%lu] INST[%lu] not supported\n", __func__,
NVRM_MODULE_ID_MODULE(ModuleId),
NVRM_MODULE_ID_INSTANCE(ModuleId));
- return NvSuccess;
+ return NvError_BadParameter;
}
for ( ; *names ; names++) {