From a4d9f96efae76b32ed054b76c12520be2bbcad26 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Fri, 31 Jan 2014 12:57:48 +0200 Subject: video: tegra: host: gm20b: Implement gr ops Implement gm20b specific gr ops. Bug 1387211 Change-Id: I4523311f1c155ba2d3403dcf222769f6817b2450 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/362415 Reviewed-by: Kevin Huang (Eng-SW) --- drivers/gpu/nvgpu/gk20a/gk20a.c | 3 +++ drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 3 +++ drivers/gpu/nvgpu/gk20a/hal.c | 4 ++++ drivers/gpu/nvgpu/gk20a/ltc_common.c | 5 +++++ 4 files changed, 15 insertions(+) (limited to 'drivers/gpu/nvgpu') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 5eab4ba0..67f6ad8a 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -872,6 +872,9 @@ static int gk20a_pm_finalize_poweron(struct device *dev) goto done; } + if (g->ops.ltc.init_fs_state) + g->ops.ltc.init_fs_state(g); + err = gk20a_init_mm_support(g); if (err) { gk20a_err(dev, "failed to init gk20a mm"); diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 63dfc12d..5eaa4d64 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -4211,6 +4211,9 @@ static int gk20a_init_gr_setup_hw(struct gk20a *g) gk20a_dbg_fn(""); + if (g->ops.gr.init_gpc_mmu) + g->ops.gr.init_gpc_mmu(g); + /* slcg prod values */ g->ops.clock_gating.slcg_gr_load_gating_prod(g, g->slcg_enabled); g->ops.clock_gating.slcg_perf_load_gating_prod(g, g->slcg_enabled); diff --git a/drivers/gpu/nvgpu/gk20a/hal.c b/drivers/gpu/nvgpu/gk20a/hal.c index dea740c2..1aae0304 100644 --- a/drivers/gpu/nvgpu/gk20a/hal.c +++ b/drivers/gpu/nvgpu/gk20a/hal.c @@ -15,6 +15,7 @@ #include "gk20a.h" #include "hal_gk20a.h" +#include "gm20b/hal_gm20b.h" int gpu_init_hal(struct gk20a *g) { @@ -24,6 +25,9 @@ int gpu_init_hal(struct gk20a *g) gk20a_dbg_info("gk20a detected"); gk20a_init_hal(&g->ops); break; + case GK20A_GPUID_GM20B: + gm20b_init_hal(&g->ops); + break; default: gk20a_err(&g->dev->dev, "no support for %x", ver); return -ENODEV; diff --git a/drivers/gpu/nvgpu/gk20a/ltc_common.c b/drivers/gpu/nvgpu/gk20a/ltc_common.c index cd6faacf..463c5cf8 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_common.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_common.c @@ -66,6 +66,11 @@ static int gk20a_determine_L2_size_bytes(struct gk20a *g) bytes_per_line = 128; break; + case GK20A_GPUID_GM20B: + lts_per_ltc = 2; + bytes_per_line = 128; + break; + default: dev_err(dev_from_gk20a(g), "Unknown GPU id 0x%02x\n", (unsigned)gpuid); -- cgit v1.2.2