]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
video: tegra: host: enable host1x powergate
authorShridhar Rasal <srasal@nvidia.com>
Tue, 3 Dec 2013 06:18:08 +0000 (11:48 +0530)
committerTerje Bergstrom <tbergstrom@nvidia.com>
Thu, 19 Dec 2013 09:38:04 +0000 (01:38 -0800)
- Enable host1x powergate with 50 mS powergating delay.
- Set host1x wakeup capable device.

Bug 1411159

Change-Id: Ifa2cf4c48204aad25bef530848b7f31c2ff46f27
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/346997
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
drivers/video/tegra/host/nvhost_acm.c
drivers/video/tegra/host/t124/t124.c

index 094b70e9a6d12953b95ff42a4de91d7e1bbf5a3d..1f861909d97b7b2998fdc48dae09e91a761b14a2 100644 (file)
@@ -676,10 +676,13 @@ int _nvhost_module_add_domain(struct generic_pm_domain *domain,
                domain->dev_ops.stop = nvhost_module_disable_clk;
                domain->dev_ops.save_state = nvhost_module_prepare_poweroff;
                domain->dev_ops.restore_state = nvhost_module_finalize_poweron;
-               domain->dev_ops.suspend = nvhost_module_suspend;
-               domain->dev_ops.resume = nvhost_module_resume;
+               if (client) {
+                       domain->dev_ops.suspend = nvhost_module_suspend;
+                       domain->dev_ops.resume = nvhost_module_resume;
+               }
 
-               device_set_wakeup_capable(&pdev->dev, 0);
+               /* Set only host1x as wakeup capable */
+               device_set_wakeup_capable(&pdev->dev, !client);
                ret = pm_genpd_add_device(domain, &pdev->dev);
                if (pdata->powergate_delay)
                        pm_genpd_set_poweroff_delay(domain,
index 4b69861f2c0c01f280438956f80ac70d9623e822..b695345228f99a0b5f9432c8c700625dab7fd28d 100644 (file)
@@ -54,6 +54,7 @@ static int t124_num_alloc_channels = 0;
 #define ISP_CLOCKGATE_DELAY 60
 #define ISP_POWERGATE_DELAY 500
 #define TSEC_POWERGATE_DELAY 500
+#define HOST1X_POWERGATE_DELAY 50
 
 #define GK20A_DEV_NAME_SIZE 5
 
@@ -143,6 +144,8 @@ static struct host1x_device_info host1x04_info = {
 struct nvhost_device_data t124_host1x_info = {
        .clocks         = {{"host1x", 81600000}, {"actmon", UINT_MAX} },
        NVHOST_MODULE_NO_POWERGATE_IDS,
+       .can_powergate   = true,
+       .powergate_delay = HOST1X_POWERGATE_DELAY,
        .private_data   = &host1x04_info,
        .finalize_poweron = nvhost_host1x_finalize_poweron,
        .prepare_poweroff = nvhost_host1x_prepare_poweroff,