summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorArto Merilainen <amerilainen@nvidia.com>2014-08-06 07:33:02 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:10:48 -0400
commit8827b6451857e8b44c8cd791d505ebd316036879 (patch)
treed5a4c49f3fca4bd58589040b7fd55cef278bad82 /drivers
parent04112d11a855d6fb5af0bcfd053124c99c9cf69d (diff)
gpu: nvgpu: cde: Allow passing shader parameters
This patch adds support to pass shader parameters through debugfs. These parameters are required to change the shader behaviour without reloading the firmware image. Change-Id: Ib0ff773d9425aa9fcc58655717cccafcfbaf7bfd Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/453462 Reviewed-by: Jussi Rasanen <jrasanen@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Jussi Rasanen <jrasanen@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/cde_gk20a.c5
-rw-r--r--drivers/gpu/nvgpu/gk20a/cde_gk20a.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
index 46568879..2c24db85 100644
--- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c
@@ -1036,7 +1036,8 @@ static int gk20a_buffer_convert_gpu_to_cde(
1036 WRITE_PATCH(PATCH_USER_CONST_YTILES, ytiles); 1036 WRITE_PATCH(PATCH_USER_CONST_YTILES, ytiles);
1037 WRITE_PATCH(PATCH_USER_CONST_BLOCKHEIGHTLOG2, block_height_log2); 1037 WRITE_PATCH(PATCH_USER_CONST_BLOCKHEIGHTLOG2, block_height_log2);
1038 WRITE_PATCH(PATCH_USER_CONST_DSTPITCH, dst_stride); 1038 WRITE_PATCH(PATCH_USER_CONST_DSTPITCH, dst_stride);
1039 WRITE_PATCH(PATCH_USER_CONST_DSTOFFSET, transpose ? 4 : 0); /* flag */ 1039 WRITE_PATCH(PATCH_USER_CONST_DSTOFFSET,
1040 (transpose ? 4 : 0) | g->cde_app.shader_parameter);
1040 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_X, gridw); 1041 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_X, gridw);
1041 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_Y, gridh); 1042 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_Y, gridh);
1042 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_Z, 1); 1043 WRITE_PATCH(PATCH_VPC_CURRENT_GRID_SIZE_Z, 1);
@@ -1208,6 +1209,8 @@ void gk20a_cde_debugfs_init(struct platform_device *dev)
1208 struct gk20a_platform *platform = platform_get_drvdata(dev); 1209 struct gk20a_platform *platform = platform_get_drvdata(dev);
1209 struct gk20a *g = get_gk20a(dev); 1210 struct gk20a *g = get_gk20a(dev);
1210 1211
1212 debugfs_create_u32("cde_parameter", S_IWUSR | S_IRUGO,
1213 platform->debugfs, &g->cde_app.shader_parameter);
1211 debugfs_create_file("reload_cde_firmware", S_IWUSR, platform->debugfs, 1214 debugfs_create_file("reload_cde_firmware", S_IWUSR, platform->debugfs,
1212 g, &gk20a_cde_reload_fops); 1215 g, &gk20a_cde_reload_fops);
1213} 1216}
diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.h b/drivers/gpu/nvgpu/gk20a/cde_gk20a.h
index 3782b44b..db583b65 100644
--- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.h
@@ -240,6 +240,8 @@ struct gk20a_cde_app {
240 240
241 struct gk20a_cde_ctx cde_ctx[1]; 241 struct gk20a_cde_ctx cde_ctx[1];
242 int cde_ctx_ptr; 242 int cde_ctx_ptr;
243
244 u32 shader_parameter;
243}; 245};
244 246
245int gk20a_cde_destroy(struct gk20a *g); 247int gk20a_cde_destroy(struct gk20a *g);