From 8281262187c50be841a83a5b99e2485836922269 Mon Sep 17 00:00:00 2001 From: Konsta Holtta Date: Tue, 11 Sep 2018 14:35:19 +0300 Subject: gpu: nvgpu: add usermode_base HAL Add a HAL function pointer to fifo to for reading the usermode_cfg0 register and implement it for gv11b. Bug 200145225 Bug 200541476 Change-Id: I5f77b15d3b502d9370b1f14129314eaf51a9d7d1 Signed-off-by: Konsta Holtta Reviewed-on: https://git-master.nvidia.com/r/1811839 Signed-off-by: Debarshi Dutta (cherry picked from commit fddb2969240652e1a56089b249684b55430d45c5 in dev-main) Reviewed-on: https://git-master.nvidia.com/r/2170004 GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv11b/fifo_gv11b.c | 4 ++++ drivers/gpu/nvgpu/gv11b/fifo_gv11b.h | 1 + drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 1 + drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 1 + 4 files changed, 7 insertions(+) (limited to 'drivers/gpu/nvgpu') diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c index 36cb5306..be4d56a8 100644 --- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c @@ -220,6 +220,10 @@ int channel_gv11b_setup_ramfc(struct channel_gk20a *c, return channel_gp10b_commit_userd(c); } +u64 gv11b_fifo_usermode_base(struct gk20a *g) +{ + return usermode_cfg0_r(); +} void gv11b_ring_channel_doorbell(struct channel_gk20a *c) { diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h index bc6b0f1c..abbf77a6 100644 --- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h @@ -133,4 +133,5 @@ void gv11b_fifo_init_ramfc_eng_method_buffer(struct gk20a *g, struct channel_gk20a *ch, struct nvgpu_mem *mem); void gv11b_userd_writeback_config(struct gk20a *g); void gv11b_ring_channel_doorbell(struct channel_gk20a *c); +u64 gv11b_fifo_usermode_base(struct gk20a *g); #endif diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 2225e380..ea9b41d8 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c @@ -641,6 +641,7 @@ static const struct gpu_ops gv11b_ops = { .get_sema_wait_cmd_size = gv11b_fifo_get_sema_wait_cmd_size, .get_sema_incr_cmd_size = gv11b_fifo_get_sema_incr_cmd_size, .add_sema_cmd = gv11b_fifo_add_sema_cmd, + .usermode_base = gv11b_fifo_usermode_base, }, .gr_ctx = { .get_netlist_name = gr_gv11b_get_netlist_name, diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index d523cf5f..feae7d23 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -763,6 +763,7 @@ struct gpu_ops { u32 count, u32 buffer_index); int (*runlist_wait_pending)(struct gk20a *g, u32 runlist_id); void (*ring_channel_doorbell)(struct channel_gk20a *c); + u64 (*usermode_base)(struct gk20a *g); u32 (*get_sema_wait_cmd_size)(void); u32 (*get_sema_incr_cmd_size)(void); void (*add_sema_cmd)(struct gk20a *g, -- cgit v1.2.2