diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 3 |
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; |