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>
This commit is contained in:
Alex Waterman
2016-12-01 11:14:43 -08:00
committed by mobile promotions
parent c116522b10
commit ce6b4bac7a
3 changed files with 7 additions and 0 deletions

View File

@@ -1084,6 +1084,9 @@ int gk20a_pm_finalize_poweron(struct device *dev)
if (g->ops.xve.available_speeds) {
u32 speed;
if (platform->disable_aspm && g->ops.xve.disable_aspm)
g->ops.xve.disable_aspm(g);
g->ops.xve.sw_init(dev);
g->ops.xve.available_speeds(g, &speed);

View File

@@ -744,6 +744,7 @@ struct gpu_ops {
void (*available_speeds)(struct gk20a *g, u32 *speed_mask);
u32 (*xve_readl)(struct gk20a *g, u32 reg);
void (*xve_writel)(struct gk20a *g, u32 reg, u32 val);
void (*disable_aspm)(struct gk20a *g);
} xve;
};

View File

@@ -61,6 +61,9 @@ struct gk20a_platform {
/* flag to set sync destroy aggressiveness */
bool aggressive_sync_destroy;
/* set if ASPM should be disabled on boot; only makes sense for PCI */
bool disable_aspm;
/* Should be populated by probe. */
struct dentry *debugfs;
struct dentry *debugfs_alias;