From dc5f6bcee0281c5fa63c977519d732218f519ea0 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Tue, 7 Nov 2017 09:19:53 -0800 Subject: gpu: nvgpu: Return GPU classes in get_litter_value Return GPU classes in HAL get_litter_value() instead of assigning them to GPU characteristics at HAL initialization time. JIRA NVGPU-259 Change-Id: Ife7a5cb38df3d33ce98a1caa43d3873fb1431234 Signed-off-by: Terje Bergstrom Reviewed-on: https://git-master.nvidia.com/r/1593683 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | 2 +- drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) (limited to 'drivers/gpu/nvgpu/gp10b') diff --git a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c index 0a127ad7..accbe0a6 100644 --- a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c @@ -158,7 +158,7 @@ int channel_gp10b_setup_ramfc(struct channel_gk20a *c, u32 gp10b_fifo_get_pbdma_signature(struct gk20a *g) { - return g->gpu_characteristics.gpfifo_class + return g->ops.get_litter_value(g, GPU_LIT_GPFIFO_CLASS) | pbdma_signature_sw_zero_f(); } diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 757eae04..7ed91e02 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c @@ -162,6 +162,25 @@ int gp10b_get_litter_value(struct gk20a *g, int value) case GPU_LIT_FBPA_SHARED_BASE: ret = 0; break; + case GPU_LIT_TWOD_CLASS: + ret = FERMI_TWOD_A; + break; + case GPU_LIT_THREED_CLASS: + ret = PASCAL_A; + break; + case GPU_LIT_COMPUTE_CLASS: + ret = PASCAL_COMPUTE_A; + break; + case GPU_LIT_GPFIFO_CLASS: + ret = PASCAL_CHANNEL_GPFIFO_A; + break; + case GPU_LIT_I2M_CLASS: + ret = KEPLER_INLINE_TO_MEMORY_B; + break; + case GPU_LIT_DMA_COPY_CLASS: + ret = PASCAL_DMA_COPY_A; + break; + default: nvgpu_err(g, "Missing definition %d", value); BUG(); @@ -608,7 +627,6 @@ static const struct gpu_ops gp10b_ops = { int gp10b_init_hal(struct gk20a *g) { struct gpu_ops *gops = &g->ops; - struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; u32 val; gops->ltc = gp10b_ops.ltc; @@ -730,12 +748,5 @@ int gp10b_init_hal(struct gk20a *g) g->name = "gp10b"; - c->twod_class = FERMI_TWOD_A; - c->threed_class = PASCAL_A; - c->compute_class = PASCAL_COMPUTE_A; - c->gpfifo_class = PASCAL_CHANNEL_GPFIFO_A; - c->inline_to_memory_class = KEPLER_INLINE_TO_MEMORY_B; - c->dma_copy_class = PASCAL_DMA_COPY_A; - return 0; } -- cgit v1.2.2