summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/pmu/pmu.c
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2019-11-15 04:29:31 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2020-02-19 13:41:27 -0500
commite45e7b5cf87eaf94cf22e631c906170890233d8e (patch)
tree880fc3d736a3b8a0f595f097dd6f94ffbb0de9e9 /drivers/gpu/nvgpu/common/pmu/pmu.c
parent380e6b2c0c5e03f35aed68b836f64c907070e297 (diff)
gpu: nvgpu: move cg_enable after pmu_init is complete
This patch help resolve the boot time failures happening with pmu_exterr for porg. cg_enable can race with pmu_init thread, cg_enable is moved post pmu init thread to avoid the above race. Bug 200565050 Change-Id: I2192053eff8767847ea012ca20b3607d2f6cd26f Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2239959 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Sagar Kamble <skamble@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/common/pmu/pmu.c')
-rw-r--r--drivers/gpu/nvgpu/common/pmu/pmu.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/pmu/pmu.c b/drivers/gpu/nvgpu/common/pmu/pmu.c
index 8d051e5a..59d38277 100644
--- a/drivers/gpu/nvgpu/common/pmu/pmu.c
+++ b/drivers/gpu/nvgpu/common/pmu/pmu.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a 4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"), 5 * copy of this software and associated documentation files (the "Software"),
@@ -526,6 +526,13 @@ static int nvgpu_pg_init_task(void *arg)
526 nvgpu_pmu_dbg(g, "loaded zbc"); 526 nvgpu_pmu_dbg(g, "loaded zbc");
527 pmu_setup_hw_enable_elpg(g); 527 pmu_setup_hw_enable_elpg(g);
528 nvgpu_pmu_dbg(g, "PMU booted, thread exiting"); 528 nvgpu_pmu_dbg(g, "PMU booted, thread exiting");
529
530 gk20a_gr_wait_initialized(g);
531
532 nvgpu_cg_blcg_enable_no_wait(g);
533
534 nvgpu_cg_elcg_enable_no_wait(g);
535
529 return 0; 536 return 0;
530 default: 537 default:
531 nvgpu_pmu_dbg(g, "invalid state"); 538 nvgpu_pmu_dbg(g, "invalid state");