summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2016-12-01 14:14:43 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-01-04 18:53:56 -0500
commitce6b4bac7aba37b229efdd8abc3c72a8061fcfa1 (patch)
treee7ca04b0d902d0497de4bfb90d0fd737ffe84f6f /drivers/gpu/nvgpu/gk20a
parentc116522b10a253f68dab8bf89c34a8b9e1be51b9 (diff)
gpu: nvgpu: Add platform flag to disable ASPM
Add a platform flag and logic to disable ASPM on boot if a platform does not want ASPM enabled. Bug 200256272 Change-Id: I378997290377ef8ffa21bf8e7f3f59fa134b3d4d Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1263271 (cherry picked from commit 01e4700b74f4b4c6f0b9ffb40747653f2b63ea3c) Reviewed-on: http://git-master/r/1274477 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c3
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/platform_gk20a.h3
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index bed728cf..77d708dd 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -1084,6 +1084,9 @@ int gk20a_pm_finalize_poweron(struct device *dev)
1084 if (g->ops.xve.available_speeds) { 1084 if (g->ops.xve.available_speeds) {
1085 u32 speed; 1085 u32 speed;
1086 1086
1087 if (platform->disable_aspm && g->ops.xve.disable_aspm)
1088 g->ops.xve.disable_aspm(g);
1089
1087 g->ops.xve.sw_init(dev); 1090 g->ops.xve.sw_init(dev);
1088 g->ops.xve.available_speeds(g, &speed); 1091 g->ops.xve.available_speeds(g, &speed);
1089 1092
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index dc130e33..9e0dd64a 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -744,6 +744,7 @@ struct gpu_ops {
744 void (*available_speeds)(struct gk20a *g, u32 *speed_mask); 744 void (*available_speeds)(struct gk20a *g, u32 *speed_mask);
745 u32 (*xve_readl)(struct gk20a *g, u32 reg); 745 u32 (*xve_readl)(struct gk20a *g, u32 reg);
746 void (*xve_writel)(struct gk20a *g, u32 reg, u32 val); 746 void (*xve_writel)(struct gk20a *g, u32 reg, u32 val);
747 void (*disable_aspm)(struct gk20a *g);
747 } xve; 748 } xve;
748}; 749};
749 750
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
index 2b17d32a..c2aec6e3 100644
--- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
@@ -61,6 +61,9 @@ struct gk20a_platform {
61 /* flag to set sync destroy aggressiveness */ 61 /* flag to set sync destroy aggressiveness */
62 bool aggressive_sync_destroy; 62 bool aggressive_sync_destroy;
63 63
64 /* set if ASPM should be disabled on boot; only makes sense for PCI */
65 bool disable_aspm;
66
64 /* Should be populated by probe. */ 67 /* Should be populated by probe. */
65 struct dentry *debugfs; 68 struct dentry *debugfs;
66 struct dentry *debugfs_alias; 69 struct dentry *debugfs_alias;