From 536ec21b565ab1368b53a26d6ec7ed05857f0775 Mon Sep 17 00:00:00 2001 From: Debarshi Dutta Date: Mon, 13 Nov 2017 13:51:48 +0530 Subject: gpu: nvgpu: remove dependency on linux header for regops_gk20a* This patch removes the dependency on the header file "uapi/linux/nvgpu.h" for regops_gk20a.c. The original structure and definitions in the uapi/linux/nvgpu.h is maintained for userspace libnvrm_gpu.h. The following changes are made in this patch. 1) Defined common versions of the NVGPU_DBG_GPU_REG_OP* definitions inside regops_gk20a.h. 2) Defined common version of struct nvgpu_dbg_gpu_reg_op inside regops_gk20a.h naming it struct nvgpu_dbg_reg_op. 3) Constructed APIs to convert the NVGPU_DBG_GPU_REG_OP* definitions from linux versions to common and vice versa. 4) Constructed APIs to convert from struct nvgpu_dbg_gpu_reg_op to struct nvgpu_dbg_reg_op and vice versa. 5) The ioctl handler nvgpu_ioctl_channel_reg_ops first copies from userspace into a local storage based on struct nvgpu_dbg_gpu_reg_op which is copied into the struct nvgpu_dbg_reg_op using the APIs above and after executing the regops handler passes the data back into userspace by copying back data from struct nvgpu_dbg_reg_op to struct nvgpu_dbg_gpu_reg_opi. JIRA NVGPU-417 Change-Id: I23bad48d2967a629a6308c7484f3741a89db6537 Signed-off-by: Debarshi Dutta Reviewed-on: https://git-master.nvidia.com/r/1596972 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/regops_gk20a.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/regops_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/regops_gk20a.c b/drivers/gpu/nvgpu/gk20a/regops_gk20a.c index f0cf5205..06cd5051 100644 --- a/drivers/gpu/nvgpu/gk20a/regops_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/regops_gk20a.c @@ -22,9 +22,6 @@ * DEALINGS IN THE SOFTWARE. */ -#include -#include - #include "gk20a.h" #include "gr_gk20a.h" #include "dbg_gpu_gk20a.h" @@ -377,12 +374,12 @@ static const u32 gk20a_qctl_whitelist_ranges_count = static bool validate_reg_ops(struct dbg_session_gk20a *dbg_s, u32 *ctx_rd_count, u32 *ctx_wr_count, - struct nvgpu_dbg_gpu_reg_op *ops, + struct nvgpu_dbg_reg_op *ops, u32 op_count); int exec_regops_gk20a(struct dbg_session_gk20a *dbg_s, - struct nvgpu_dbg_gpu_reg_op *ops, + struct nvgpu_dbg_reg_op *ops, u64 num_ops) { int err = 0; @@ -519,7 +516,7 @@ int exec_regops_gk20a(struct dbg_session_gk20a *dbg_s, static int validate_reg_op_info(struct dbg_session_gk20a *dbg_s, - struct nvgpu_dbg_gpu_reg_op *op) + struct nvgpu_dbg_reg_op *op) { int err = 0; @@ -559,7 +556,7 @@ static int validate_reg_op_info(struct dbg_session_gk20a *dbg_s, } static bool check_whitelists(struct dbg_session_gk20a *dbg_s, - struct nvgpu_dbg_gpu_reg_op *op, u32 offset) + struct nvgpu_dbg_reg_op *op, u32 offset) { struct gk20a *g = dbg_s->g; bool valid = false; @@ -630,7 +627,7 @@ static bool check_whitelists(struct dbg_session_gk20a *dbg_s, /* note: the op here has already been through validate_reg_op_info */ static int validate_reg_op_offset(struct dbg_session_gk20a *dbg_s, - struct nvgpu_dbg_gpu_reg_op *op) + struct nvgpu_dbg_reg_op *op) { int err; u32 buf_offset_lo, buf_offset_addr, num_offsets, offset; @@ -689,7 +686,7 @@ static int validate_reg_op_offset(struct dbg_session_gk20a *dbg_s, static bool validate_reg_ops(struct dbg_session_gk20a *dbg_s, u32 *ctx_rd_count, u32 *ctx_wr_count, - struct nvgpu_dbg_gpu_reg_op *ops, + struct nvgpu_dbg_reg_op *ops, u32 op_count) { u32 i; -- cgit v1.2.2