From 475af509e1a0433f79a00cfe3f0768cba46b58ea Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 22 Jun 2016 14:44:22 -0700 Subject: gpu: nvgpu: vgpu: Add CE engine to engine list Add CE engine to vgpu engine list. CE engine is defined differently for different GPUs, so we also add HAL for initializing the engine info. Bug 1780185 Change-Id: I5ae265551feac08d0c4d45402dd3277514e62b2d Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1169720 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Aingara Paramakuru Tested-by: Aingara Paramakuru GVS: Gerrit_Virtual_Submit Reviewed-by: Lakshmanan M --- drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 5 +++-- drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | 3 +++ drivers/gpu/nvgpu/gk20a/gk20a.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index 078a7158..04695d11 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c @@ -279,7 +279,7 @@ int gk20a_fifo_engine_enum_from_type(struct gk20a *g, u32 engine_type, return ret; } -static int init_engine_info(struct fifo_gk20a *f) +int gk20a_fifo_init_engine_info(struct fifo_gk20a *f) { struct gk20a *g = f->g; struct device *d = dev_from_gk20a(g); @@ -796,7 +796,7 @@ static int gk20a_init_fifo_setup_sw(struct gk20a *g) for (i = 0; i < f->num_pbdma; ++i) f->pbdma_map[i] = gk20a_readl(g, fifo_pbdma_map_r(i)); - init_engine_info(f); + g->ops.fifo.init_engine_info(f); init_runlist(g, f); @@ -3082,4 +3082,5 @@ void gk20a_init_fifo(struct gpu_ops *gops) /* gk20a doesn't support device_info_data packet parsing */ gops->fifo.device_info_data_parse = NULL; gops->fifo.eng_runlist_base_size = fifo_eng_runlist_base__size_1_v; + gops->fifo.init_engine_info = gk20a_fifo_init_engine_info; } diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h index e6ae0bdc..3473bc78 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h @@ -250,4 +250,7 @@ bool gk20a_fifo_is_valid_runlist_id(struct gk20a *g, u32 runlist_id); int gk20a_fifo_update_runlist_ids(struct gk20a *g, u32 runlist_ids, u32 hw_chid, bool add, bool wait_for_finish); + +int gk20a_fifo_init_engine_info(struct fifo_gk20a *f); + #endif /*__GR_GK20A_H__*/ diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 74ffab61..997da125 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -352,6 +352,7 @@ struct gpu_ops { struct channel_gk20a *ch); int (*tsg_unbind_channel)(struct channel_gk20a *ch); u32 (*eng_runlist_base_size)(void); + int (*init_engine_info)(struct fifo_gk20a *f); } fifo; struct pmu_v { /*used for change of enum zbc update cmd id from ver 0 to ver1*/ -- cgit v1.2.2