From 26cd7b3d822b0b759468300777ff6e43cb5f0f7e Mon Sep 17 00:00:00 2001 From: seshendra Gadagottu Date: Fri, 3 Mar 2017 11:59:29 -0800 Subject: gpu: nvgpu: gv11b: ltc related changes There is no peermem access for gv11b nvlink. So no need to enable peermem access through l2. Implemented gv11b specific ltc_cbc_fix_config function to read correct num_active_ltcs. JIRA GV11B-71 Change-Id: I348ce3bbf42e864341494e386b6f33478badb3a8 Signed-off-by: seshendra Gadagottu Reviewed-on: http://git-master/r/1315148 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gv11b/ltc_gv11b.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'drivers/gpu/nvgpu/gv11b/ltc_gv11b.c') diff --git a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c index 70919f24..daad8718 100644 --- a/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/ltc_gv11b.c @@ -53,8 +53,7 @@ static void gv11b_ltc_init_fs_state(struct gk20a *g) gk20a_dbg_info("%u ltcs out of %u", g->ltc_count, g->max_ltc_count); reg = gk20a_readl(g, ltc_ltcs_ltss_cbc_num_active_ltcs_r()); - reg |= ltc_ltcs_ltss_cbc_num_active_ltcs_nvlink_peer_through_l2_f(true) - | ltc_ltcs_ltss_cbc_num_active_ltcs_serialize_f(true); + reg |= ltc_ltcs_ltss_cbc_num_active_ltcs_serialize_f(true); gk20a_writel(g, ltc_ltcs_ltss_cbc_num_active_ltcs_r(), reg); gk20a_writel(g, ltc_ltcs_ltss_dstg_cfg0_r(), @@ -75,10 +74,24 @@ static void gv11b_ltc_init_fs_state(struct gk20a *g) ltc_intr); } +u32 gv11b_ltc_cbc_fix_config(struct gk20a *g, int base) +{ + u32 val = gk20a_readl(g, ltc_ltcs_ltss_cbc_num_active_ltcs_r()); + + if (ltc_ltcs_ltss_cbc_num_active_ltcs__v(val) == 2) + return base * 2; + else if (ltc_ltcs_ltss_cbc_num_active_ltcs__v(val) != 1) { + gk20a_err(dev_from_gk20a(g), + "Invalid number of active ltcs: %08x\n", val); + } + return base; +} + void gv11b_init_ltc(struct gpu_ops *gops) { gp10b_init_ltc(gops); gops->ltc.set_zbc_s_entry = gv11b_ltc_set_zbc_stencil_entry; gops->ltc.init_fs_state = gv11b_ltc_init_fs_state; + gops->ltc.cbc_fix_config = gv11b_ltc_cbc_fix_config; } -- cgit v1.2.2