mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 02:22:34 +03:00
nvgpu: gpu: Support multiple tpc-pg masks.
- TPC powergating should be done before
calling gk20a_enable_gr_hw.
gk20a_enable_gr_hw() issues a GR engine reset.
Without this fix, enabling 1 TPC from each PES
causes ctxsw timeout error while running GFX Benchmark.
- Adds valid tpc-pg mask for 1/2/3/4 active TPC configs.
TPC Config - TPC-MASK
4 TPC configuration - 0x0
3 TPC configuration - 0x1/0x2/0x4/0x8
2 TPC configuration - 0x5/0x9/0x6/0xa
- We should not write to gr_fe_tpc_pesmask_r()
as part of TPC-PG sequence. This register is for
debug purpose only.
Bug 200442360
Change-Id: I6fbe1ad8fbc836ace8cbaf00ec3d21a12c73e0bd
Signed-off-by: Deepak Goyal <dgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1809772
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
991179f29c
commit
34732a14b2
@@ -135,6 +135,7 @@ static void nvgpu_init_timeslice(struct gk20a *g)
|
||||
static void nvgpu_init_pm_vars(struct gk20a *g)
|
||||
{
|
||||
struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
|
||||
u32 i = 0;
|
||||
|
||||
/*
|
||||
* Set up initial power settings. For non-slicon platforms, disable
|
||||
@@ -172,7 +173,10 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
|
||||
g->support_pmu = support_gk20a_pmu(dev_from_gk20a(g));
|
||||
__nvgpu_set_enabled(g, NVGPU_CAN_RAILGATE, platform->can_railgate_init);
|
||||
g->can_tpc_powergate = platform->can_tpc_powergate;
|
||||
g->valid_tpc_mask = platform->valid_tpc_mask;
|
||||
|
||||
for (i = 0; i < MAX_TPC_PG_CONFIGS; i++)
|
||||
g->valid_tpc_mask[i] = platform->valid_tpc_mask[i];
|
||||
|
||||
g->ldiv_slowdown_factor = platform->ldiv_slowdown_factor_init;
|
||||
/* if default delay is not set, set default delay to 500msec */
|
||||
if (platform->railgate_delay_init)
|
||||
|
||||
Reference in New Issue
Block a user