diff options
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/cde_gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/cde_gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ltc_common.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.h | 4 |
4 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c index 2c24db85..63a1a590 100644 --- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c | |||
@@ -321,6 +321,9 @@ static int gk20a_cde_patch_params(struct gk20a_cde_ctx *cde_ctx) | |||
321 | if (new_data == 0) | 321 | if (new_data == 0) |
322 | err = -EINVAL; | 322 | err = -EINVAL; |
323 | break; | 323 | break; |
324 | case TYPE_PARAM_BACKINGSTORE_BASE_HW: | ||
325 | new_data = g->gr.compbit_store.base_hw; | ||
326 | break; | ||
324 | default: | 327 | default: |
325 | user_id = param->id - NUM_RESERVED_PARAMS; | 328 | user_id = param->id - NUM_RESERVED_PARAMS; |
326 | if (user_id < 0 || user_id >= MAX_CDE_USER_PARAMS) | 329 | if (user_id < 0 || user_id >= MAX_CDE_USER_PARAMS) |
diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.h b/drivers/gpu/nvgpu/gk20a/cde_gk20a.h index db583b65..9569f436 100644 --- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.h | |||
@@ -119,6 +119,7 @@ enum { | |||
119 | TYPE_PARAM_DESTINATION_SIZE, | 119 | TYPE_PARAM_DESTINATION_SIZE, |
120 | TYPE_PARAM_BACKINGSTORE_SIZE, | 120 | TYPE_PARAM_BACKINGSTORE_SIZE, |
121 | TYPE_PARAM_SOURCE_SMMU_ADDR, | 121 | TYPE_PARAM_SOURCE_SMMU_ADDR, |
122 | TYPE_PARAM_BACKINGSTORE_BASE_HW, | ||
122 | NUM_RESERVED_PARAMS = 1024, | 123 | NUM_RESERVED_PARAMS = 1024, |
123 | }; | 124 | }; |
124 | 125 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_common.c b/drivers/gpu/nvgpu/gk20a/ltc_common.c index 2d611d48..b4e3fc75 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_common.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_common.c | |||
@@ -261,6 +261,8 @@ static void gk20a_ltc_init_cbc(struct gk20a *g, struct gr_gk20a *gr) | |||
261 | (u32)(compbit_store_base_iova & 0xffffffff), | 261 | (u32)(compbit_store_base_iova & 0xffffffff), |
262 | compbit_base_post_divide); | 262 | compbit_base_post_divide); |
263 | 263 | ||
264 | gr->compbit_store.base_hw = compbit_base_post_divide; | ||
265 | |||
264 | g->ops.ltc.cbc_ctrl(g, gk20a_cbc_op_invalidate, | 266 | g->ops.ltc.cbc_ctrl(g, gk20a_cbc_op_invalidate, |
265 | 0, max_comptag_lines - 1); | 267 | 0, max_comptag_lines - 1); |
266 | 268 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h index df64d2ca..da19f83e 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h | |||
@@ -172,6 +172,10 @@ struct compbit_store_desc { | |||
172 | struct sg_table *sgt; | 172 | struct sg_table *sgt; |
173 | size_t size; | 173 | size_t size; |
174 | u64 base_iova; | 174 | u64 base_iova; |
175 | |||
176 | /* The value that is written to the hardware. This depends on | ||
177 | * on the number of ltcs and is not an address. */ | ||
178 | u64 base_hw; | ||
175 | }; | 179 | }; |
176 | 180 | ||
177 | struct gk20a_buffer_state { | 181 | struct gk20a_buffer_state { |