gpu: nvgpu: Hard code map_buffer_batch_limit

Add a hard coded #define for map_buffer_batch_limit and use that
insted of querying from GPU characteristics. Also add an
nvgpu_is_enabled() flag for disabling batch mapping, and set
map_buffer_batch_limit to zero if batch mapping is disabled.

JIRA NVGPU-388

Change-Id: Ic91feea638d0f47c5c22321886cfc75e97259dc3
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1593690
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Terje Bergstrom
2017-11-07 11:01:26 -08:00
committed by mobile promotions
parent e728fbecba
commit 8e611fb654
6 changed files with 13 additions and 6 deletions

View File

@@ -112,7 +112,6 @@ static int gk20a_as_ioctl_map_buffer_batch(
struct gk20a_as_share *as_share,
struct nvgpu_as_map_buffer_batch_args *args)
{
struct gk20a *g = as_share->vm->mm->g;
u32 i;
int err = 0;
@@ -127,8 +126,8 @@ static int gk20a_as_ioctl_map_buffer_batch(
gk20a_dbg_fn("");
if (args->num_unmaps > g->gpu_characteristics.map_buffer_batch_limit ||
args->num_maps > g->gpu_characteristics.map_buffer_batch_limit)
if (args->num_unmaps > NVGPU_IOCTL_AS_MAP_BUFFER_BATCH_LIMIT ||
args->num_maps > NVGPU_IOCTL_AS_MAP_BUFFER_BATCH_LIMIT)
return -EINVAL;
nvgpu_vm_mapping_batch_start(&batch);

View File

@@ -18,6 +18,10 @@
struct inode;
struct file;
/* MAP_BUFFER_BATCH_LIMIT: the upper limit for num_unmaps and
* num_maps */
#define NVGPU_IOCTL_AS_MAP_BUFFER_BATCH_LIMIT 256
/* struct file_operations driver interface */
int gk20a_as_dev_open(struct inode *inode, struct file *filp);
int gk20a_as_dev_release(struct inode *inode, struct file *filp);

View File

@@ -34,6 +34,7 @@
#include "ioctl_ctrl.h"
#include "ioctl_dbg.h"
#include "ioctl_as.h"
#ifdef CONFIG_TEGRA_19x_GPU
#include "common/linux/ioctl_ctrl_t19x.h"
#endif
@@ -209,6 +210,8 @@ gk20a_ctrl_ioctl_gpu_characteristics(
pgpu->impl = g->params.gpu_impl;
pgpu->rev = g->params.gpu_rev;
pgpu->reg_ops_limit = NVGPU_IOCTL_DBG_REG_OPS_LIMIT;
pgpu->map_buffer_batch_limit = nvgpu_is_enabled(g, NVGPU_SUPPORT_MAP_BUFFER_BATCH) ?
NVGPU_IOCTL_AS_MAP_BUFFER_BATCH_LIMIT : 0;
pgpu->twod_class = g->ops.get_litter_value(g, GPU_LIT_TWOD_CLASS);
pgpu->threed_class = g->ops.get_litter_value(g, GPU_LIT_THREED_CLASS);
pgpu->compute_class = g->ops.get_litter_value(g, GPU_LIT_COMPUTE_CLASS);