gpu: nvgpu: railgate platform only if it is not railgated

Avoid railgating platform, if it is already in railgated state.
This is right thing to do and it also avoids ref counting issues
related to fuse clock disable.

Bug 200381275

Change-Id: Id745f9b878be129bf9b0cc972fadcfc102c8ddc2
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1640548
Reviewed-by: Seema Khowala <seemaj@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
seshendra Gadagottu
2018-01-17 14:47:02 -08:00
committed by mobile promotions
parent 872be3a4ac
commit ea9cb56cf6

View File

@@ -1,7 +1,7 @@
/* /*
* GK20A Graphics * GK20A Graphics
* *
* Copyright (c) 2011-2017, NVIDIA CORPORATION. All rights reserved. * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License, * under the terms and conditions of the GNU General Public License,
@@ -736,6 +736,11 @@ static int gk20a_pm_railgate(struct device *dev)
struct gk20a_platform *platform = dev_get_drvdata(dev); struct gk20a_platform *platform = dev_get_drvdata(dev);
int ret = 0; int ret = 0;
struct gk20a *g = get_gk20a(dev); struct gk20a *g = get_gk20a(dev);
/* if platform is already railgated, then just return */
if (platform->is_railgated && platform->is_railgated(dev))
return ret;
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
g->pstats.last_rail_gate_start = jiffies; g->pstats.last_rail_gate_start = jiffies;