From 60402c78b33d68237bbec5233d9b2ed80091138b Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 12 Feb 2019 14:20:56 +0530 Subject: [PATCH] gpu: nvgpu: resolve circular dependency between gr/config and priv_ring gr/config needs to get gpc_count from priv_ring, and priv_ring calls API exposed by gr/config to get gpc_count in its ISR priv_ring unit already has an HAL API to get gpc_count so it does not need to rely on gr/config for same Hence resolve the dependency by using g->ops.priv_ring.get_gpc_count() instead of nvgpu_gr_config_get_gpc_count() Jira NVGPU-1879 Change-Id: I1c894dac18dd9265f39375e930e8e9f9b0d67050 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/2019147 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-misra Reviewed-by: svc-misra-checker GVS: Gerrit_Virtual_Submit Reviewed-by: Debarshi Dutta Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/priv_ring/priv_ring_gm20b.c | 3 +-- drivers/gpu/nvgpu/common/priv_ring/priv_ring_gp10b.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gm20b.c b/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gm20b.c index 6732ff669..8fb5485a2 100644 --- a/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gm20b.c +++ b/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gm20b.c @@ -26,7 +26,6 @@ #include #include #include -#include #include "priv_ring_gm20b.h" @@ -81,7 +80,7 @@ void gm20b_priv_ring_isr(struct gk20a *g) gk20a_readl(g, pri_ringstation_sys_priv_error_code_r())); } - for (gpc = 0; gpc < nvgpu_gr_config_get_gpc_count(g->gr.config); gpc++) { + for (gpc = 0; gpc < g->ops.priv_ring.get_gpc_count(g); gpc++) { if ((status1 & BIT32(gpc)) != 0U) { nvgpu_log(g, gpu_dbg_intr, "GPC%u write error. ADR %08x WRDAT %08x INFO %08x, CODE %08x", gpc, gk20a_readl(g, pri_ringstation_gpc_gpc0_priv_error_adr_r() + gpc * gpc_priv_stride), diff --git a/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gp10b.c b/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gp10b.c index b8acaaba2..1cf8df587 100644 --- a/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gp10b.c +++ b/drivers/gpu/nvgpu/common/priv_ring/priv_ring_gp10b.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -158,7 +157,7 @@ void gp10b_priv_ring_isr(struct gk20a *g) if (status1 != 0U) { gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_PRIV_STRIDE); - for (gpc = 0; gpc < nvgpu_gr_config_get_gpc_count(g->gr.config); gpc++) { + for (gpc = 0; gpc < g->ops.priv_ring.get_gpc_count(g); gpc++) { offset = gpc * gpc_stride; if ((status1 & BIT32(gpc)) != 0U) { error_info = gk20a_readl(g,