diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-12-17 13:12:21 -0500 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-01-05 10:50:02 -0500 |
commit | 9812bd5eea1c5d2c97149d64c5ccf81eae75fda1 (patch) | |
tree | 5b9c006b9c94d8c6920fc779f71a9bf36db43766 /drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h | |
parent | c9d6a79a4ce28744bc1c68f8c16c28d453b91a51 (diff) |
gpu: nvgpu: Control comptagline assignment from kernel
On Maxwell comptaglines are assigned per 128k, but preferred big page
size for graphics is 64k. Bit 16 of GPU VA is used for determining
which half of comptagline is used.
This creates problems if user space wants to map a page multiple times
and to arbitrary GPU VA. In one mapping the page might be mapped to
lower half of 128k comptagline, and in another mapping the page might
be mapped to upper half.
Turn on mode where MSB of comptagline in PTE is used instead of bit 16
for determining the comptagline lower/upper half selection.
Bug 1704834
Change-Id: If87e8f6ac0fc9c5624e80fa1ba2ceeb02781355b
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/924322
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h index 5ec4a46e..d68f6479 100644 --- a/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/hw_fb_gm20b.h | |||
@@ -94,6 +94,14 @@ static inline u32 fb_mmu_ctrl_use_pdb_big_page_size_false_f(void) | |||
94 | { | 94 | { |
95 | return 0x0; | 95 | return 0x0; |
96 | } | 96 | } |
97 | static inline u32 fb_mmu_ctrl_use_full_comp_tag_line_v(u32 r) | ||
98 | { | ||
99 | return (r >> 12) & 0x1; | ||
100 | } | ||
101 | static inline u32 fb_mmu_ctrl_use_full_comp_tag_line_true_f(void) | ||
102 | { | ||
103 | return 0x1000; | ||
104 | } | ||
97 | static inline u32 fb_priv_mmu_phy_secure_r(void) | 105 | static inline u32 fb_priv_mmu_phy_secure_r(void) |
98 | { | 106 | { |
99 | return 0x00100ce4; | 107 | return 0x00100ce4; |