summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-05-27 19:50:09 +0530
committerRiham Haidar <rhaidar@nvidia.com>2014-06-12 17:33:29 -0700
commit53a3a52b5e78cc64c43a8b06c63189c09a5b9268 (patch)
treeae7648b424a13b021ca5400d15ca57738b02a64c /drivers/gpu
parent8f84a68c9716d3398db978a080e19220c8e45241 (diff)
gpu: nvgpu: add is_railgated() callback
Add is_railgated() platform callback to check status of gk20a power rail Bug 1376916 Bug 1487804 Change-Id: Ia0d909210dc409ab684eb6f20528b81500aecd5c Signed-off-by: Deepak Nibade <dnibade@nvidia.com> (cherry picked from commit 880faf88124d0f1b187e073cc627db5a6955b2ba) Reviewed-on: http://git-master/r/421697 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/nvgpu/gk20a/platform_gk20a.h3
-rw-r--r--drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c13
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
index 90333eef055d..0c6c025002a6 100644
--- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
@@ -88,6 +88,9 @@ struct gk20a_platform {
/* Called to turn on the device */
int (*unrailgate)(struct platform_device *dev);
+ /* Called to check state of device */
+ bool (*is_railgated)(struct platform_device *dev);
+
/* Postscale callback is called after frequency change */
void (*postscale)(struct platform_device *pdev,
unsigned long freq);
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c
index ea49a1245a04..2761c36a92ae 100644
--- a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c
+++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c
@@ -304,6 +304,17 @@ void gk20a_tegra_calibrate_emc(struct gk20a_emc_params *emc_params,
}
/*
+ * gk20a_tegra_is_railgated()
+ *
+ * Check status of gk20a power rail
+ */
+
+static bool gk20a_tegra_is_railgated(struct platform_device *pdev)
+{
+ return !tegra_powergate_is_powered(TEGRA_POWERGATE_GPU);
+}
+
+/*
* gk20a_tegra_railgate()
*
* Gate (disable) gk20a power rail
@@ -482,6 +493,7 @@ struct gk20a_platform t132_gk20a_tegra_platform = {
.suspend = gk20a_tegra_suspend,
.railgate = gk20a_tegra_railgate,
.unrailgate = gk20a_tegra_unrailgate,
+ .is_railgated = gk20a_tegra_is_railgated,
/* frequency scaling configuration */
.prescale = gk20a_tegra_prescale,
@@ -508,6 +520,7 @@ struct gk20a_platform gk20a_tegra_platform = {
.suspend = gk20a_tegra_suspend,
.railgate = gk20a_tegra_railgate,
.unrailgate = gk20a_tegra_unrailgate,
+ .is_railgated = gk20a_tegra_is_railgated,
/* frequency scaling configuration */
.prescale = gk20a_tegra_prescale,