summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 50f67262..04f82033 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -773,6 +773,7 @@ static int gk20a_pm_prepare_poweroff(struct device *dev)
773{ 773{
774 struct gk20a *g = get_gk20a(dev); 774 struct gk20a *g = get_gk20a(dev);
775 int ret = 0; 775 int ret = 0;
776 struct gk20a_platform *platform = gk20a_get_platform(dev);
776 777
777 gk20a_dbg_fn(""); 778 gk20a_dbg_fn("");
778 779
@@ -786,6 +787,9 @@ static int gk20a_pm_prepare_poweroff(struct device *dev)
786 /* cancel any pending cde work */ 787 /* cancel any pending cde work */
787 gk20a_cde_suspend(g); 788 gk20a_cde_suspend(g);
788 789
790 if (platform->has_ce)
791 gk20a_ce_suspend(g);
792
789 ret = gk20a_channel_suspend(g); 793 ret = gk20a_channel_suspend(g);
790 if (ret) 794 if (ret)
791 goto done; 795 goto done;
@@ -996,6 +1000,11 @@ int gk20a_pm_finalize_poweron(struct device *dev)
996 if (platform->has_cde) 1000 if (platform->has_cde)
997 gk20a_init_cde_support(g); 1001 gk20a_init_cde_support(g);
998 1002
1003 if (platform->has_ce)
1004 gk20a_init_ce_support(g);
1005
1006 gk20a_init_mm_ce_context(g);
1007
999 enable_irq(g->irq_stall); 1008 enable_irq(g->irq_stall);
1000 if (g->irq_stall != g->irq_nonstall) 1009 if (g->irq_stall != g->irq_nonstall)
1001 enable_irq(g->irq_nonstall); 1010 enable_irq(g->irq_nonstall);
@@ -1658,6 +1667,7 @@ static int gk20a_probe(struct platform_device *dev)
1658 gk20a_pmu_debugfs_init(&dev->dev); 1667 gk20a_pmu_debugfs_init(&dev->dev);
1659 gk20a_railgating_debugfs_init(&dev->dev); 1668 gk20a_railgating_debugfs_init(&dev->dev);
1660 gk20a_cde_debugfs_init(&dev->dev); 1669 gk20a_cde_debugfs_init(&dev->dev);
1670 gk20a_ce_debugfs_init(&dev->dev);
1661 gk20a_alloc_debugfs_init(dev); 1671 gk20a_alloc_debugfs_init(dev);
1662 gk20a_mm_debugfs_init(&dev->dev); 1672 gk20a_mm_debugfs_init(&dev->dev);
1663 gk20a_fifo_debugfs_init(&dev->dev); 1673 gk20a_fifo_debugfs_init(&dev->dev);
@@ -1693,6 +1703,9 @@ static int __exit gk20a_remove(struct platform_device *pdev)
1693 if (g->remove_support) 1703 if (g->remove_support)
1694 g->remove_support(dev); 1704 g->remove_support(dev);
1695 1705
1706 if (platform->has_ce)
1707 gk20a_ce_destroy(g);
1708
1696 gk20a_user_deinit(dev, &nvgpu_class); 1709 gk20a_user_deinit(dev, &nvgpu_class);
1697 1710
1698 debugfs_remove_recursive(platform->debugfs); 1711 debugfs_remove_recursive(platform->debugfs);