diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2018-08-10 11:28:23 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-08-13 17:06:17 -0400 |
commit | e62785190f74cfbf9003a190a768e9077373bf6f (patch) | |
tree | be7bf93828c948d3b9bc84ec31f3f21cec35cf9e /drivers/gpu/nvgpu/gv11b | |
parent | 0706e94c9204becdee6a32391a319cad690d1bc3 (diff) |
gpu: nvgpu: Move priv_ring HAL to common
Move implementation of priv_ring HAL to common/priv_ring. Implement
two new HAL APIs to remove illegal dependencies: enable_priv_ring and
enum_ltc.
As enum_ltc can be implemented only gm20b onwards, bump gk20a
implementation to base on gm20b.
JIRA NVGPU-964
Change-Id: I160c2216132aadbcd98bb4a688aeeb2c520a9bc0
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1797025
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/ltc_gv11b.c | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 20a0b34f..05763cce 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c | |||
@@ -25,6 +25,8 @@ | |||
25 | #include "common/bus/bus_gk20a.h" | 25 | #include "common/bus/bus_gk20a.h" |
26 | #include "common/bus/bus_gp10b.h" | 26 | #include "common/bus/bus_gp10b.h" |
27 | #include "common/bus/bus_gm20b.h" | 27 | #include "common/bus/bus_gm20b.h" |
28 | #include "common/priv_ring/priv_ring_gm20b.h" | ||
29 | #include "common/priv_ring/priv_ring_gp10b.h" | ||
28 | #include "common/clock_gating/gv11b_gating_reglist.h" | 30 | #include "common/clock_gating/gv11b_gating_reglist.h" |
29 | #include "common/ptimer/ptimer_gk20a.h" | 31 | #include "common/ptimer/ptimer_gk20a.h" |
30 | #include "common/fb/fb_gk20a.h" | 32 | #include "common/fb/fb_gk20a.h" |
@@ -55,7 +57,6 @@ | |||
55 | #include "gp10b/therm_gp10b.h" | 57 | #include "gp10b/therm_gp10b.h" |
56 | #include "gp10b/mc_gp10b.h" | 58 | #include "gp10b/mc_gp10b.h" |
57 | #include "gp10b/ce_gp10b.h" | 59 | #include "gp10b/ce_gp10b.h" |
58 | #include "gp10b/priv_ring_gp10b.h" | ||
59 | #include "gp10b/fifo_gp10b.h" | 60 | #include "gp10b/fifo_gp10b.h" |
60 | #include "gp10b/fecs_trace_gp10b.h" | 61 | #include "gp10b/fecs_trace_gp10b.h" |
61 | #include "gp10b/mm_gp10b.h" | 62 | #include "gp10b/mm_gp10b.h" |
@@ -786,10 +787,12 @@ static const struct gpu_ops gv11b_ops = { | |||
786 | .falcon_hal_sw_init = gk20a_falcon_hal_sw_init, | 787 | .falcon_hal_sw_init = gk20a_falcon_hal_sw_init, |
787 | }, | 788 | }, |
788 | .priv_ring = { | 789 | .priv_ring = { |
790 | .enable_priv_ring = gm20b_priv_ring_enable, | ||
789 | .isr = gp10b_priv_ring_isr, | 791 | .isr = gp10b_priv_ring_isr, |
790 | .decode_error_code = gp10b_priv_ring_decode_error_code, | 792 | .decode_error_code = gp10b_priv_ring_decode_error_code, |
791 | .set_ppriv_timeout_settings = | 793 | .set_ppriv_timeout_settings = |
792 | gk20a_priv_set_timeout_settings, | 794 | gm20b_priv_set_timeout_settings, |
795 | .enum_ltc = gm20b_priv_ring_enum_ltc, | ||
793 | }, | 796 | }, |
794 | .fuse = { | 797 | .fuse = { |
795 | .check_priv_security = gp10b_fuse_check_priv_security, | 798 | .check_priv_security = gp10b_fuse_check_priv_security, |
diff --git a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c index 32f72208..d7c385a9 100644 --- a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <nvgpu/hw/gv11b/hw_mc_gv11b.h> | 32 | #include <nvgpu/hw/gv11b/hw_mc_gv11b.h> |
33 | #include <nvgpu/hw/gv11b/hw_top_gv11b.h> | 33 | #include <nvgpu/hw/gv11b/hw_top_gv11b.h> |
34 | #include <nvgpu/hw/gv11b/hw_mc_gv11b.h> | 34 | #include <nvgpu/hw/gv11b/hw_mc_gv11b.h> |
35 | #include <nvgpu/hw/gv11b/hw_pri_ringmaster_gv11b.h> | ||
36 | 35 | ||
37 | #include <nvgpu/utils.h> | 36 | #include <nvgpu/utils.h> |
38 | 37 | ||
@@ -62,7 +61,7 @@ void gv11b_ltc_init_fs_state(struct gk20a *g) | |||
62 | nvgpu_log_info(g, "initialize gv11b l2"); | 61 | nvgpu_log_info(g, "initialize gv11b l2"); |
63 | 62 | ||
64 | g->max_ltc_count = gk20a_readl(g, top_num_ltcs_r()); | 63 | g->max_ltc_count = gk20a_readl(g, top_num_ltcs_r()); |
65 | g->ltc_count = gk20a_readl(g, pri_ringmaster_enum_ltc_r()); | 64 | g->ltc_count = g->ops.priv_ring.enum_ltc(g); |
66 | nvgpu_log_info(g, "%u ltcs out of %u", g->ltc_count, g->max_ltc_count); | 65 | nvgpu_log_info(g, "%u ltcs out of %u", g->ltc_count, g->max_ltc_count); |
67 | 66 | ||
68 | reg = gk20a_readl(g, ltc_ltcs_ltss_cbc_param_r()); | 67 | reg = gk20a_readl(g, ltc_ltcs_ltss_cbc_param_r()); |