summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/as_gk20a.c
diff options
context:
space:
mode:
authorKirill Artamonov <kartamonov@nvidia.com>2014-02-26 15:58:43 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:09:59 -0400
commitd364553f7c94b4caa649f5e83f709c1c31bc45bb (patch)
tree97b9349f3bab734ef7e1533156cbcfa4ee93feec /drivers/gpu/nvgpu/gk20a/as_gk20a.c
parent5dc7fd024305f736bd920bdc12d116d1228ad2db (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.c20
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
153static int gk20a_as_ioctl_map_buffer( 148static 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