diff options
author | Kirill Artamonov <kartamonov@nvidia.com> | 2014-02-26 15:58:43 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:09:59 -0400 |
commit | d364553f7c94b4caa649f5e83f709c1c31bc45bb (patch) | |
tree | 97b9349f3bab734ef7e1533156cbcfa4ee93feec /drivers/gpu/nvgpu/gk20a/as_gk20a.c | |
parent | 5dc7fd024305f736bd920bdc12d116d1228ad2db (diff) |
gpu: nvgpu: implement mapping for sparse allocation
Implement support for partial buffer mappings.
Whitelist gr_pri_bes_crop_hww_esr accessed by
fec during sparse texture initialization.
bug 1456562
bug 1369014
bug 1361532
Change-Id: Ib0d1ec6438257ac14b40c8466b37856b67e7e34d
Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-on: http://git-master/r/375012
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/as_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/as_gk20a.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c index 42fa2167..4849dbd5 100644 --- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c | |||
@@ -135,19 +135,14 @@ static int gk20a_as_ioctl_map_buffer_ex( | |||
135 | struct gk20a_as_share *as_share, | 135 | struct gk20a_as_share *as_share, |
136 | struct nvhost_as_map_buffer_ex_args *args) | 136 | struct nvhost_as_map_buffer_ex_args *args) |
137 | { | 137 | { |
138 | int i; | ||
139 | |||
140 | gk20a_dbg_fn(""); | 138 | gk20a_dbg_fn(""); |
141 | 139 | ||
142 | /* ensure that padding is not set. this is required for ensuring that | ||
143 | * we can safely use these fields later */ | ||
144 | for (i = 0; i < ARRAY_SIZE(args->padding); i++) | ||
145 | if (args->padding[i]) | ||
146 | return -EINVAL; | ||
147 | |||
148 | return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, | 140 | return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, |
149 | &args->offset, args->flags, | 141 | &args->as_offset, args->flags, |
150 | args->kind); | 142 | args->kind, |
143 | args->buffer_offset, | ||
144 | args->mapping_size | ||
145 | ); | ||
151 | } | 146 | } |
152 | 147 | ||
153 | static int gk20a_as_ioctl_map_buffer( | 148 | static int gk20a_as_ioctl_map_buffer( |
@@ -156,8 +151,9 @@ static int gk20a_as_ioctl_map_buffer( | |||
156 | { | 151 | { |
157 | gk20a_dbg_fn(""); | 152 | gk20a_dbg_fn(""); |
158 | return gk20a_vm_map_buffer(as_share, args->nvmap_handle, | 153 | return gk20a_vm_map_buffer(as_share, args->nvmap_handle, |
159 | &args->o_a.align, | 154 | &args->o_a.offset, |
160 | args->flags, NV_KIND_DEFAULT); | 155 | args->flags, NV_KIND_DEFAULT, |
156 | 0, 0); | ||
161 | /* args->o_a.offset will be set if !err */ | 157 | /* args->o_a.offset will be set if !err */ |
162 | } | 158 | } |
163 | 159 | ||