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: I92cbadf3bd07292a8715d30843972def879795f5
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1593691
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Terje Bergstrom
2017-11-07 09:31:37 -08:00
committed by mobile promotions
parent 5b368d3e46
commit c87e85af0c
2 changed files with 36 additions and 16 deletions

View File

@@ -213,6 +213,24 @@ static int gv100_get_litter_value(struct gk20a *g, int value)
case GPU_LIT_SMPC_PRI_STRIDE: case GPU_LIT_SMPC_PRI_STRIDE:
ret = proj_smpc_stride_v(); ret = proj_smpc_stride_v();
break; break;
case GPU_LIT_TWOD_CLASS:
ret = FERMI_TWOD_A;
break;
case GPU_LIT_THREED_CLASS:
ret = VOLTA_A;
break;
case GPU_LIT_COMPUTE_CLASS:
ret = VOLTA_COMPUTE_A;
break;
case GPU_LIT_GPFIFO_CLASS:
ret = VOLTA_CHANNEL_GPFIFO_A;
break;
case GPU_LIT_I2M_CLASS:
ret = KEPLER_INLINE_TO_MEMORY_B;
break;
case GPU_LIT_DMA_COPY_CLASS:
ret = VOLTA_DMA_COPY_A;
break;
default: default:
break; break;
} }
@@ -697,7 +715,6 @@ static const struct gpu_ops gv100_ops = {
int gv100_init_hal(struct gk20a *g) int gv100_init_hal(struct gk20a *g)
{ {
struct gpu_ops *gops = &g->ops; struct gpu_ops *gops = &g->ops;
struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
gops->bios = gv100_ops.bios; gops->bios = gv100_ops.bios;
gops->ltc = gv100_ops.ltc; gops->ltc = gv100_ops.ltc;
@@ -754,12 +771,5 @@ int gv100_init_hal(struct gk20a *g)
g->name = "gv10x"; g->name = "gv10x";
c->twod_class = FERMI_TWOD_A;
c->threed_class = VOLTA_A;
c->compute_class = VOLTA_COMPUTE_A;
c->gpfifo_class = VOLTA_CHANNEL_GPFIFO_A;
c->inline_to_memory_class = KEPLER_INLINE_TO_MEMORY_B;
c->dma_copy_class = VOLTA_DMA_COPY_A;
return 0; return 0;
} }

View File

@@ -196,6 +196,24 @@ int gv11b_get_litter_value(struct gk20a *g, int value)
case GPU_LIT_FBPA_SHARED_BASE: case GPU_LIT_FBPA_SHARED_BASE:
ret = 0; ret = 0;
break; break;
case GPU_LIT_TWOD_CLASS:
ret = FERMI_TWOD_A;
break;
case GPU_LIT_THREED_CLASS:
ret = VOLTA_A;
break;
case GPU_LIT_COMPUTE_CLASS:
ret = VOLTA_COMPUTE_A;
break;
case GPU_LIT_GPFIFO_CLASS:
ret = VOLTA_CHANNEL_GPFIFO_A;
break;
case GPU_LIT_I2M_CLASS:
ret = KEPLER_INLINE_TO_MEMORY_B;
break;
case GPU_LIT_DMA_COPY_CLASS:
ret = VOLTA_DMA_COPY_A;
break;
default: default:
nvgpu_err(g, "Missing definition %d", value); nvgpu_err(g, "Missing definition %d", value);
@@ -674,7 +692,6 @@ static const struct gpu_ops gv11b_ops = {
int gv11b_init_hal(struct gk20a *g) int gv11b_init_hal(struct gk20a *g)
{ {
struct gpu_ops *gops = &g->ops; struct gpu_ops *gops = &g->ops;
struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
u32 val; u32 val;
bool priv_security; bool priv_security;
@@ -760,12 +777,5 @@ int gv11b_init_hal(struct gk20a *g)
g->name = "gv11b"; g->name = "gv11b";
c->twod_class = FERMI_TWOD_A;
c->threed_class = VOLTA_A;
c->compute_class = VOLTA_COMPUTE_A;
c->gpfifo_class = VOLTA_CHANNEL_GPFIFO_A;
c->inline_to_memory_class = KEPLER_INLINE_TO_MEMORY_B;
c->dma_copy_class = VOLTA_DMA_COPY_A;
return 0; return 0;
} }