diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-05-27 19:50:09 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2014-06-12 17:33:29 -0700 |
commit | 53a3a52b5e78cc64c43a8b06c63189c09a5b9268 (patch) | |
tree | ae7648b424a13b021ca5400d15ca57738b02a64c /drivers/gpu | |
parent | 8f84a68c9716d3398db978a080e19220c8e45241 (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.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | 13 |
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, |