diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-07 16:05:38 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-13 10:39:23 -0400 |
commit | 3490cf9f2a5b2e2ca7cf6c5ffc50bcb6d563df2c (patch) | |
tree | 5aedbaf9c55c79d6b88e2cbc458276ea7c20addb /drivers | |
parent | 832e4fce1e7dc7494b57412f1addb75bc1c4fa94 (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')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 10 |
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); |