summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
diff options
context:
space:
mode:
authorAingara Paramakuru <aparamakuru@nvidia.com>2014-05-05 21:14:22 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:01 -0400
commit1fd722f592c2e0523c5e399a2406a4e387057188 (patch)
tree3425fb1a08ec2ccc6397e39c73a5579117e00a05 /drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
parent69e0cd3dfd8f39bc8d3529325001dcacd774f669 (diff)
gpu: nvgpu: support gk20a virtualization
The nvgpu driver now supports using the Tegra graphics virtualization interfaces to support gk20a in a virtualized environment. Bug 1509608 Change-Id: I6ede15ee7bf0b0ad8a13e8eb5f557c3516ead676 Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com> Reviewed-on: http://git-master/r/440122 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
index e5628c3f..7338f842 100644
--- a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
@@ -158,6 +158,9 @@ long gk20a_ctrl_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg
158 struct zbc_entry *zbc_val; 158 struct zbc_entry *zbc_val;
159 struct zbc_query_params *zbc_tbl; 159 struct zbc_query_params *zbc_tbl;
160 int i, err = 0; 160 int i, err = 0;
161#ifdef CONFIG_TEGRA_GR_VIRTUALIZATION
162 struct gk20a_platform *platform = platform_get_drvdata(dev);
163#endif
161 164
162 gk20a_dbg_fn(""); 165 gk20a_dbg_fn("");
163 166
@@ -197,7 +200,7 @@ long gk20a_ctrl_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg
197 if (zcull_info == NULL) 200 if (zcull_info == NULL)
198 return -ENOMEM; 201 return -ENOMEM;
199 202
200 err = gr_gk20a_get_zcull_info(g, &g->gr, zcull_info); 203 err = g->ops.gr.get_zcull_info(g, &g->gr, zcull_info);
201 if (err) { 204 if (err) {
202 kfree(zcull_info); 205 kfree(zcull_info);
203 break; 206 break;
@@ -219,6 +222,11 @@ long gk20a_ctrl_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg
219 case NVHOST_GPU_IOCTL_ZBC_SET_TABLE: 222 case NVHOST_GPU_IOCTL_ZBC_SET_TABLE:
220 set_table_args = (struct nvhost_gpu_zbc_set_table_args *)buf; 223 set_table_args = (struct nvhost_gpu_zbc_set_table_args *)buf;
221 224
225#ifdef CONFIG_TEGRA_GR_VIRTUALIZATION
226 if (platform->virtual_dev)
227 return -ENOMEM;
228#endif
229
222 zbc_val = kzalloc(sizeof(struct zbc_entry), GFP_KERNEL); 230 zbc_val = kzalloc(sizeof(struct zbc_entry), GFP_KERNEL);
223 if (zbc_val == NULL) 231 if (zbc_val == NULL)
224 return -ENOMEM; 232 return -ENOMEM;