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,
#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
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,