summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2016-06-07 16:05:38 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-06-13 10:39:23 -0400
commit3490cf9f2a5b2e2ca7cf6c5ffc50bcb6d563df2c (patch)
tree5aedbaf9c55c79d6b88e2cbc458276ea7c20addb /drivers/gpu/nvgpu/gk20a
parent832e4fce1e7dc7494b57412f1addb75bc1c4fa94 (diff)
gpu: nvgpu: Check result of gk20a_pmu_init
If PMU version is not supported, gk20a_pmu_init returns an error code. Check the error code and fail poweron if gk20a_pmu_init fails. Change-Id: Ia1d6a6fcbcc5a144d2e5bc88734df778e887fa53 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1160371 Reviewed-by: Alex Waterman <alexw@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
index 31cae4fd..a1e0be19 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
@@ -2877,10 +2877,8 @@ static int gk20a_prepare_ucode(struct gk20a *g)
2877 struct mm_gk20a *mm = &g->mm; 2877 struct mm_gk20a *mm = &g->mm;
2878 struct vm_gk20a *vm = &mm->pmu.vm; 2878 struct vm_gk20a *vm = &mm->pmu.vm;
2879 2879
2880 if (g->pmu_fw) { 2880 if (g->pmu_fw)
2881 gk20a_init_pmu(pmu); 2881 return gk20a_init_pmu(pmu);
2882 return 0;
2883 }
2884 2882
2885 g->pmu_fw = gk20a_request_firmware(g, GK20A_PMU_UCODE_IMAGE); 2883 g->pmu_fw = gk20a_request_firmware(g, GK20A_PMU_UCODE_IMAGE);
2886 if (!g->pmu_fw) { 2884 if (!g->pmu_fw) {
@@ -2901,9 +2899,7 @@ static int gk20a_prepare_ucode(struct gk20a *g)
2901 gk20a_mem_wr_n(g, &pmu->ucode, 0, pmu->ucode_image, 2899 gk20a_mem_wr_n(g, &pmu->ucode, 0, pmu->ucode_image,
2902 pmu->desc->app_start_offset + pmu->desc->app_size); 2900 pmu->desc->app_start_offset + pmu->desc->app_size);
2903 2901
2904 gk20a_init_pmu(pmu); 2902 return gk20a_init_pmu(pmu);
2905
2906 return 0;
2907 2903
2908 err_release_fw: 2904 err_release_fw:
2909 release_firmware(g->pmu_fw); 2905 release_firmware(g->pmu_fw);