summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-harmony-panel.c
diff options
context:
space:
mode:
authorMayuresh Kulkarni <mkulkarni@nvidia.com>2012-03-05 18:36:47 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2012-03-23 21:03:37 -0700
commitacb394b4cf9a22cab224463f265dfc2e9c2b5179 (patch)
treefc646b217d631fde235705e3e37664384df65566 /arch/arm/mach-tegra/board-harmony-panel.c
parent7d2dc84dc809d9b7a3ce8826e7959f605d2d6f9e (diff)
video: tegra: host: register nvhost master device in board-xxx-panel.c
- the suspend order of devices is governed by the order in which devices are registered - this commit ensures that nvhost master is registered before any of the graphics devices - previously this was done in rootfs_init call which is later than arch_init calls of board-xxx-panel.c - this caused tegra-dc device to be registered *before* nvhost master device. as a result it was suspended *later* than nvhost master device. this is a clear violation of dependency rule for nvhost. this caused suspend-resume to fail for L4T - this worked on android as it has CONFIG early suspend enabled while it failed for L4T which doesn't have CONFIG early suspend enabled Bug 947617 Change-Id: I6cd405f3ba23d004e7659140019f5130e6c25159 Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-on: http://git-master/r/87756 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Rebase-Id: R89b45c1cf59cd02de1f219f53b798ca5b47289c1
Diffstat (limited to 'arch/arm/mach-tegra/board-harmony-panel.c')
-rw-r--r--arch/arm/mach-tegra/board-harmony-panel.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-panel.c b/arch/arm/mach-tegra/board-harmony-panel.c
index d9974f1b1caa..c24039652bc5 100644
--- a/arch/arm/mach-tegra/board-harmony-panel.c
+++ b/arch/arm/mach-tegra/board-harmony-panel.c
@@ -329,7 +329,8 @@ static struct platform_device *harmony_gfx_devices[] __initdata = {
&harmony_backlight_device,
};
-int __init harmony_panel_init(void) {
+int __init harmony_panel_init(void)
+{
int err;
struct resource *res;
@@ -354,6 +355,12 @@ int __init harmony_panel_init(void) {
harmony_carveouts[1].size = tegra_carveout_size;
#endif
+#ifdef CONFIG_TEGRA_GRHOST
+ err = nvhost_device_register(&tegra_grhost_device);
+ if (err)
+ return err;
+#endif
+
err = platform_add_devices(harmony_gfx_devices,
ARRAY_SIZE(harmony_gfx_devices));
if (err)