diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 14 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.h | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index b0c864d4..334f251c 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -2144,7 +2144,7 @@ static int update_gmmu_pde_locked(struct vm_gk20a *vm, | |||
2144 | struct scatterlist **sgl, | 2144 | struct scatterlist **sgl, |
2145 | u64 *offset, | 2145 | u64 *offset, |
2146 | u64 *iova, | 2146 | u64 *iova, |
2147 | u32 kind_v, u32 *ctag, | 2147 | u32 kind_v, u64 *ctag, |
2148 | bool cacheable, bool unammped_pte, | 2148 | bool cacheable, bool unammped_pte, |
2149 | int rw_flag, bool sparse, bool priv) | 2149 | int rw_flag, bool sparse, bool priv) |
2150 | { | 2150 | { |
@@ -2194,12 +2194,12 @@ static int update_gmmu_pte_locked(struct vm_gk20a *vm, | |||
2194 | struct scatterlist **sgl, | 2194 | struct scatterlist **sgl, |
2195 | u64 *offset, | 2195 | u64 *offset, |
2196 | u64 *iova, | 2196 | u64 *iova, |
2197 | u32 kind_v, u32 *ctag, | 2197 | u32 kind_v, u64 *ctag, |
2198 | bool cacheable, bool unmapped_pte, | 2198 | bool cacheable, bool unmapped_pte, |
2199 | int rw_flag, bool sparse, bool priv) | 2199 | int rw_flag, bool sparse, bool priv) |
2200 | { | 2200 | { |
2201 | struct gk20a *g = gk20a_from_vm(vm); | 2201 | struct gk20a *g = gk20a_from_vm(vm); |
2202 | u32 ctag_granularity = g->ops.fb.compression_page_size(g); | 2202 | u64 ctag_granularity = g->ops.fb.compression_page_size(g); |
2203 | u32 page_size = vm->gmmu_page_sizes[gmmu_pgsz_idx]; | 2203 | u32 page_size = vm->gmmu_page_sizes[gmmu_pgsz_idx]; |
2204 | u32 pte_w[2] = {0, 0}; /* invalid pte */ | 2204 | u32 pte_w[2] = {0, 0}; /* invalid pte */ |
2205 | 2205 | ||
@@ -2218,7 +2218,7 @@ static int update_gmmu_pte_locked(struct vm_gk20a *vm, | |||
2218 | 2218 | ||
2219 | pte_w[1] = gmmu_pte_aperture_video_memory_f() | | 2219 | pte_w[1] = gmmu_pte_aperture_video_memory_f() | |
2220 | gmmu_pte_kind_f(kind_v) | | 2220 | gmmu_pte_kind_f(kind_v) | |
2221 | gmmu_pte_comptagline_f(*ctag / ctag_granularity); | 2221 | gmmu_pte_comptagline_f((u32)(*ctag / ctag_granularity)); |
2222 | 2222 | ||
2223 | if (rw_flag == gk20a_mem_flag_read_only) { | 2223 | if (rw_flag == gk20a_mem_flag_read_only) { |
2224 | pte_w[0] |= gmmu_pte_read_only_true_f(); | 2224 | pte_w[0] |= gmmu_pte_read_only_true_f(); |
@@ -2244,7 +2244,7 @@ static int update_gmmu_pte_locked(struct vm_gk20a *vm, | |||
2244 | gk20a_dbg(gpu_dbg_pte, | 2244 | gk20a_dbg(gpu_dbg_pte, |
2245 | "pte=%d iova=0x%llx kind=%d ctag=%d vol=%d [0x%08x, 0x%08x]", | 2245 | "pte=%d iova=0x%llx kind=%d ctag=%d vol=%d [0x%08x, 0x%08x]", |
2246 | i, *iova, | 2246 | i, *iova, |
2247 | kind_v, *ctag / ctag_granularity, !cacheable, | 2247 | kind_v, (u32)(*ctag / ctag_granularity), !cacheable, |
2248 | pte_w[1], pte_w[0]); | 2248 | pte_w[1], pte_w[0]); |
2249 | 2249 | ||
2250 | if (*ctag) | 2250 | if (*ctag) |
@@ -2287,7 +2287,7 @@ static int update_gmmu_level_locked(struct vm_gk20a *vm, | |||
2287 | u64 *offset, | 2287 | u64 *offset, |
2288 | u64 *iova, | 2288 | u64 *iova, |
2289 | u64 gpu_va, u64 gpu_end, | 2289 | u64 gpu_va, u64 gpu_end, |
2290 | u8 kind_v, u32 *ctag, | 2290 | u8 kind_v, u64 *ctag, |
2291 | bool cacheable, bool unmapped_pte, | 2291 | bool cacheable, bool unmapped_pte, |
2292 | int rw_flag, | 2292 | int rw_flag, |
2293 | bool sparse, | 2293 | bool sparse, |
@@ -2390,7 +2390,7 @@ static int update_gmmu_ptes_locked(struct vm_gk20a *vm, | |||
2390 | { | 2390 | { |
2391 | struct gk20a *g = gk20a_from_vm(vm); | 2391 | struct gk20a *g = gk20a_from_vm(vm); |
2392 | int ctag_granularity = g->ops.fb.compression_page_size(g); | 2392 | int ctag_granularity = g->ops.fb.compression_page_size(g); |
2393 | u32 ctag = ctag_offset * ctag_granularity; | 2393 | u64 ctag = (u64)ctag_offset * (u64)ctag_granularity; |
2394 | u64 iova = 0; | 2394 | u64 iova = 0; |
2395 | u64 space_to_skip = buffer_offset; | 2395 | u64 space_to_skip = buffer_offset; |
2396 | u32 page_size = vm->gmmu_page_sizes[pgsz_idx]; | 2396 | u32 page_size = vm->gmmu_page_sizes[pgsz_idx]; |
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h index 6786e3c2..c60f1bb7 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h | |||
@@ -220,7 +220,7 @@ struct gk20a_mmu_level { | |||
220 | struct scatterlist **sgl, | 220 | struct scatterlist **sgl, |
221 | u64 *offset, | 221 | u64 *offset, |
222 | u64 *iova, | 222 | u64 *iova, |
223 | u32 kind_v, u32 *ctag, | 223 | u32 kind_v, u64 *ctag, |
224 | bool cacheable, bool unmapped_pte, | 224 | bool cacheable, bool unmapped_pte, |
225 | int rw_flag, bool sparse, bool priv); | 225 | int rw_flag, bool sparse, bool priv); |
226 | size_t entry_size; | 226 | size_t entry_size; |