mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: Implement clk_good and pll_lock check
Add clk_good and pll_lock check as a part of fmon polling. This will poll for any clock related faults at FTTI interval. Add new function to poll for vbios init completion. NVGPU-4967 Bug 2849506 Bug 200564937 Change-Id: I5bc885329981e07376824e148edabe9be4120e1c Signed-off-by: Abdul Salam <absalam@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2305782 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Alex Waterman
parent
b8a3e54dda
commit
4f5bd9e633
@@ -26,6 +26,7 @@
|
||||
#include <nvgpu/string.h>
|
||||
#include <nvgpu/soc.h>
|
||||
#include <nvgpu/static_analysis.h>
|
||||
#include <nvgpu/timers.h>
|
||||
|
||||
#include "bios_sw_gv100.h"
|
||||
#include "bios_sw_tu104.h"
|
||||
@@ -833,3 +834,31 @@ u32 nvgpu_bios_read_u32(struct gk20a *g, u32 offset)
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NVGPU_DGPU
|
||||
bool nvgpu_bios_wait_for_init_done(struct gk20a *g)
|
||||
{
|
||||
struct nvgpu_timeout timeout;
|
||||
int err;
|
||||
|
||||
err = nvgpu_timeout_init(g, &timeout,
|
||||
NVGPU_BIOS_DEVINIT_VERIFY_TIMEOUT_MS, NVGPU_TIMER_CPU_TIMER);
|
||||
if (err != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Wait till vbios is completed */
|
||||
do {
|
||||
if (g->bios_is_init == true) {
|
||||
return true;
|
||||
}
|
||||
nvgpu_msleep(NVGPU_BIOS_DEVINIT_VERIFY_COMPLETION_MS);
|
||||
} while (nvgpu_timeout_expired(&timeout) == 0);
|
||||
|
||||
if (g->bios_is_init == true) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user