diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 606dbc1f..87f47cd8 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -955,11 +955,13 @@ int gk20a_pm_finalize_poweron(struct device *dev) | |||
955 | goto done; | 955 | goto done; |
956 | } | 956 | } |
957 | 957 | ||
958 | if (g->ops.pmu.prepare_ucode) | 958 | if (g->ops.pmu.is_pmu_supported(g)) { |
959 | err = g->ops.pmu.prepare_ucode(g); | 959 | if (g->ops.pmu.prepare_ucode) |
960 | if (err) { | 960 | err = g->ops.pmu.prepare_ucode(g); |
961 | gk20a_err(dev, "failed to init pmu ucode"); | 961 | if (err) { |
962 | goto done; | 962 | gk20a_err(dev, "failed to init pmu ucode"); |
963 | goto done; | ||
964 | } | ||
963 | } | 965 | } |
964 | 966 | ||
965 | #ifdef CONFIG_ARCH_TEGRA_18x_SOC | 967 | #ifdef CONFIG_ARCH_TEGRA_18x_SOC |
@@ -972,10 +974,12 @@ int gk20a_pm_finalize_poweron(struct device *dev) | |||
972 | } | 974 | } |
973 | #endif | 975 | #endif |
974 | 976 | ||
975 | err = gk20a_init_pmu_support(g); | 977 | if (g->ops.pmu.is_pmu_supported(g)) { |
976 | if (err) { | 978 | err = gk20a_init_pmu_support(g); |
977 | gk20a_err(dev, "failed to init gk20a pmu"); | 979 | if (err) { |
978 | goto done; | 980 | gk20a_err(dev, "failed to init gk20a pmu"); |
981 | goto done; | ||
982 | } | ||
979 | } | 983 | } |
980 | 984 | ||
981 | err = gk20a_init_gr_support(g); | 985 | err = gk20a_init_gr_support(g); |