summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/perf
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/perf')
-rw-r--r--drivers/gpu/nvgpu/perf/vfe_equ.c18
-rw-r--r--drivers/gpu/nvgpu/perf/vfe_var.c27
2 files changed, 24 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/perf/vfe_equ.c b/drivers/gpu/nvgpu/perf/vfe_equ.c
index 6630fb21..78a7c57c 100644
--- a/drivers/gpu/nvgpu/perf/vfe_equ.c
+++ b/drivers/gpu/nvgpu/perf/vfe_equ.c
@@ -150,14 +150,16 @@ static u32 devinit_get_vfe_equ_table(struct gk20a *g,
150 150
151 gk20a_dbg_info(""); 151 gk20a_dbg_info("");
152 152
153 if (g->ops.bios.get_perf_table_ptrs) { 153 if (!g->ops.bios.get_perf_table_ptrs)
154 vfeequs_tbl_ptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g, 154 return -EINVAL;
155 g->bios.perf_token, 155
156 CONTINUOUS_VIRTUAL_BINNING_TABLE); 156 vfeequs_tbl_ptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g,
157 if (vfeequs_tbl_ptr == NULL) { 157 g->bios.perf_token,
158 status = -EINVAL; 158 CONTINUOUS_VIRTUAL_BINNING_TABLE);
159 goto done; 159
160 } 160 if (vfeequs_tbl_ptr == NULL) {
161 status = -EINVAL;
162 goto done;
161 } 163 }
162 164
163 memcpy(&vfeequs_tbl_header, vfeequs_tbl_ptr, 165 memcpy(&vfeequs_tbl_header, vfeequs_tbl_ptr,
diff --git a/drivers/gpu/nvgpu/perf/vfe_var.c b/drivers/gpu/nvgpu/perf/vfe_var.c
index 4f8dc83b..f4c3f276 100644
--- a/drivers/gpu/nvgpu/perf/vfe_var.c
+++ b/drivers/gpu/nvgpu/perf/vfe_var.c
@@ -182,20 +182,21 @@ u32 dev_init_get_vfield_info(struct gk20a *g,
182 u8 *psegmentcount = NULL; 182 u8 *psegmentcount = NULL;
183 u32 status = 0; 183 u32 status = 0;
184 184
185 if (g->ops.bios.get_perf_table_ptrs) { 185 if (!g->ops.bios.get_perf_table_ptrs)
186 vfieldregtableptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g, 186 return -EINVAL;
187 g->bios.virt_token, VP_FIELD_REGISTER);
188 if (vfieldregtableptr == NULL) {
189 status = -EINVAL;
190 goto done;
191 }
192 187
193 vfieldtableptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g, 188 vfieldregtableptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g,
194 g->bios.virt_token, VP_FIELD_TABLE); 189 g->bios.virt_token, VP_FIELD_REGISTER);
195 if (vfieldtableptr == NULL) { 190 if (vfieldregtableptr == NULL) {
196 status = -EINVAL; 191 status = -EINVAL;
197 goto done; 192 goto done;
198 } 193 }
194
195 vfieldtableptr = (u8 *)g->ops.bios.get_perf_table_ptrs(g,
196 g->bios.virt_token, VP_FIELD_TABLE);
197 if (vfieldtableptr == NULL) {
198 status = -EINVAL;
199 goto done;
199 } 200 }
200 201
201 memcpy(&vregheader, vfieldregtableptr, VFIELD_REG_HEADER_SIZE); 202 memcpy(&vregheader, vfieldregtableptr, VFIELD_REG_HEADER_SIZE);