diff options
author | Arto Merilainen <amerilainen@nvidia.com> | 2014-08-06 07:33:02 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:48 -0400 |
commit | 8827b6451857e8b44c8cd791d505ebd316036879 (patch) | |
tree | d5a4c49f3fca4bd58589040b7fd55cef278bad82 /drivers/gpu | |
parent | 04112d11a855d6fb5af0bcfd053124c99c9cf69d (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/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/cde_gk20a.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/cde_gk20a.h | 2 |
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 | ||
245 | int gk20a_cde_destroy(struct gk20a *g); | 247 | int gk20a_cde_destroy(struct gk20a *g); |