diff --git a/drivers/gpu/nvgpu/common/cic/mon/mon_init.c b/drivers/gpu/nvgpu/common/cic/mon/mon_init.c index a3560871f..af5ac3ae9 100644 --- a/drivers/gpu/nvgpu/common/cic/mon/mon_init.c +++ b/drivers/gpu/nvgpu/common/cic/mon/mon_init.c @@ -45,6 +45,21 @@ int nvgpu_cic_mon_setup(struct gk20a *g) g->cic_mon = cic_mon; + cic_dbg(g, "CIC_MON unit initialization done."); + return err; +} + +int nvgpu_cic_mon_init(struct gk20a *g) +{ + struct nvgpu_cic_mon *cic_mon; + int err = 0; + + cic_mon = g->cic_mon; + if (cic_mon == NULL) { + nvgpu_err(g, "CIC_MON setup pending"); + return -EINVAL; + } + #ifdef CONFIG_NVGPU_FSI_ERR_INJECTION if (g->ops.cic_mon.reg_errinj_cb != NULL) { err = g->ops.cic_mon.reg_errinj_cb(g); @@ -61,21 +76,6 @@ int nvgpu_cic_mon_setup(struct gk20a *g) } #endif - cic_dbg(g, "CIC_MON unit initialization done."); - return err; -} - -int nvgpu_cic_mon_init_lut(struct gk20a *g) -{ - struct nvgpu_cic_mon *cic_mon; - int err = 0; - - cic_mon = g->cic_mon; - if (cic_mon == NULL) { - nvgpu_err(g, "CIC_MON setup pending"); - return -EINVAL; - } - if (g->ops.cic_mon.init != NULL) { err = g->ops.cic_mon.init(g, cic_mon); if (err != 0) { @@ -101,21 +101,6 @@ int nvgpu_cic_mon_remove(struct gk20a *g) { struct nvgpu_cic_mon *cic_mon; -#ifdef CONFIG_NVGPU_FSI_ERR_INJECTION - if (g->ops.cic_mon.dereg_errinj_cb != NULL) { - int err = g->ops.cic_mon.dereg_errinj_cb(); - if (err != 0) { - nvgpu_err(g, - "Err inj callback de-registration failed: %d", - err); - /* Continue CIC remove despite err inj utility - * de-registration failure, as the err inj support - * is meant only for debug purposes. - */ - } - } -#endif - cic_mon = g->cic_mon; if (cic_mon == NULL) { @@ -148,6 +133,21 @@ int nvgpu_cic_mon_deinit_lut(struct gk20a *g) int nvgpu_cic_mon_deinit(struct gk20a *g) { +#ifdef CONFIG_NVGPU_FSI_ERR_INJECTION + if (g->ops.cic_mon.dereg_errinj_cb != NULL) { + int err = g->ops.cic_mon.dereg_errinj_cb(); + if (err != 0) { + nvgpu_err(g, + "Err inj callback de-registration failed: %d", + err); + /* Continue CIC mon deinit despite err inj utility + * de-registration failure, as the err inj support + * is meant only for debug purposes. + */ + } + } +#endif + /** More deinit calls might get added here as CIC grows. */ return nvgpu_cic_mon_deinit_lut(g); } diff --git a/drivers/gpu/nvgpu/common/init/nvgpu_init.c b/drivers/gpu/nvgpu/common/init/nvgpu_init.c index ba8fbb22f..37201e0b0 100644 --- a/drivers/gpu/nvgpu/common/init/nvgpu_init.c +++ b/drivers/gpu/nvgpu/common/init/nvgpu_init.c @@ -849,9 +849,9 @@ int nvgpu_early_poweron(struct gk20a *g) /* Initialize CIC early on before the interrupts are * enabled. */ - err = nvgpu_cic_mon_init_lut(g); + err = nvgpu_cic_mon_init(g); if (err != 0) { - nvgpu_err(g, "CIC LUT Initialization failed[%d]", err); + nvgpu_err(g, "CIC Mon Initialization failed[%d]", err); goto done; } done: diff --git a/drivers/gpu/nvgpu/include/nvgpu/cic_mon.h b/drivers/gpu/nvgpu/include/nvgpu/cic_mon.h index 6993681d2..e2e79a18d 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/cic_mon.h +++ b/drivers/gpu/nvgpu/include/nvgpu/cic_mon.h @@ -274,7 +274,7 @@ struct nvgpu_err_desc; */ int nvgpu_cic_mon_setup(struct gk20a *g); -int nvgpu_cic_mon_init_lut(struct gk20a *g); +int nvgpu_cic_mon_init(struct gk20a *g); /** * @brief De-initialize the CIC unit's data structures diff --git a/drivers/gpu/nvgpu/include/nvgpu/gops/cic_mon.h b/drivers/gpu/nvgpu/include/nvgpu/gops/cic_mon.h index 71154a41d..86c2dacc7 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gops/cic_mon.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gops/cic_mon.h @@ -59,6 +59,7 @@ struct gops_cic_mon { */ int (*report_err)(struct gk20a *g, u32 err_id); +#ifdef CONFIG_NVGPU_FSI_ERR_INJECTION /** * @brief Register error injection callback with error * injection utility. @@ -76,6 +77,7 @@ struct gops_cic_mon { * @return 0 in case of success, < 0 in case of failure. */ int (*dereg_errinj_cb)(void); +#endif }; #endif/*NVGPU_GOPS_CIC_MON_H*/ diff --git a/libs/dgpu/libnvgpu-drv-dgpu_safe.export b/libs/dgpu/libnvgpu-drv-dgpu_safe.export index 3b38c32e7..759df8f69 100644 --- a/libs/dgpu/libnvgpu-drv-dgpu_safe.export +++ b/libs/dgpu/libnvgpu-drv-dgpu_safe.export @@ -796,7 +796,7 @@ gk20a_bus_set_bar0_window nvgpu_pramin_ops_init nvgpu_dma_alloc_vid_at nvgpu_cic_mon_setup -nvgpu_cic_mon_init_lut +nvgpu_cic_mon_init nvgpu_cic_mon_deinit nvgpu_cic_mon_bound_check_hw_unit_id nvgpu_cic_mon_bound_check_err_id diff --git a/libs/igpu/libnvgpu-drv-igpu_safe.export b/libs/igpu/libnvgpu-drv-igpu_safe.export index 9198d9773..a13dedf5e 100644 --- a/libs/igpu/libnvgpu-drv-igpu_safe.export +++ b/libs/igpu/libnvgpu-drv-igpu_safe.export @@ -823,7 +823,7 @@ nvgpu_rc_ce_fault gp10b_priv_ring_isr_handle_0 gp10b_priv_ring_isr_handle_1 nvgpu_cic_mon_setup -nvgpu_cic_mon_init_lut +nvgpu_cic_mon_init nvgpu_cic_mon_deinit nvgpu_cic_mon_bound_check_hw_unit_id nvgpu_cic_mon_bound_check_err_id diff --git a/userspace/units/acr/nvgpu-acr.c b/userspace/units/acr/nvgpu-acr.c index 8532f9748..e2980931a 100644 --- a/userspace/units/acr/nvgpu-acr.c +++ b/userspace/units/acr/nvgpu-acr.c @@ -224,9 +224,9 @@ static int init_acr_falcon_test_env(struct unit_module *m, struct gk20a *g) unit_return_fail(m, "CIC init failed\n"); } - err = nvgpu_cic_mon_init_lut(g); + err = nvgpu_cic_mon_init(g); if (err != 0) { - unit_return_fail(m, "CIC LUT init failed\n"); + unit_return_fail(m, "CIC Mon init failed\n"); } /* diff --git a/userspace/units/bus/nvgpu-bus.c b/userspace/units/bus/nvgpu-bus.c index b448e3cb1..d188597d0 100644 --- a/userspace/units/bus/nvgpu-bus.c +++ b/userspace/units/bus/nvgpu-bus.c @@ -163,8 +163,8 @@ int test_bus_setup(struct unit_module *m, struct gk20a *g, void *args) return UNIT_FAIL; } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_err(m, "%s: Failed to initialize CIC LUT\n", + if (nvgpu_cic_mon_init(g) != 0) { + unit_err(m, "%s: Failed to initialize CIC Mon\n", __func__); return UNIT_FAIL; } diff --git a/userspace/units/ce/nvgpu-ce.c b/userspace/units/ce/nvgpu-ce.c index 6732989b5..36ae375e1 100644 --- a/userspace/units/ce/nvgpu-ce.c +++ b/userspace/units/ce/nvgpu-ce.c @@ -137,8 +137,8 @@ int test_ce_setup_env(struct unit_module *m, return UNIT_FAIL; } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_err(m, "%s: failed to initialize CIC LUT\n", + if (nvgpu_cic_mon_init(g) != 0) { + unit_err(m, "%s: failed to initialize CIC Mon\n", __func__); return UNIT_FAIL; } diff --git a/userspace/units/fb/fb_gv11b_fusa.c b/userspace/units/fb/fb_gv11b_fusa.c index 78e02fb74..909da72ee 100644 --- a/userspace/units/fb/fb_gv11b_fusa.c +++ b/userspace/units/fb/fb_gv11b_fusa.c @@ -81,8 +81,8 @@ int fb_gv11b_init_test(struct unit_module *m, struct gk20a *g, void *args) unit_return_fail(m, "CIC init failed\n"); } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_return_fail(m, "CIC LUT init failed\n"); + if (nvgpu_cic_mon_init(g) != 0) { + unit_return_fail(m, "CIC Mon init failed\n"); } g->ops.ecc.ecc_init_support(g); diff --git a/userspace/units/fifo/nvgpu-fifo-common.c b/userspace/units/fifo/nvgpu-fifo-common.c index 306e6b973..bb50bd328 100644 --- a/userspace/units/fifo/nvgpu-fifo-common.c +++ b/userspace/units/fifo/nvgpu-fifo-common.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2019-2022, NVIDIA CORPORATION. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -195,9 +195,9 @@ int test_fifo_init_support(struct unit_module *m, struct gk20a *g, void *args) return UNIT_FAIL; } - err = nvgpu_cic_mon_init_lut(g); + err = nvgpu_cic_mon_init(g); if (err != 0) { - unit_return_fail(m, "CIC LUT init failed\n"); + unit_return_fail(m, "CIC mon init failed\n"); } err = nvgpu_cic_rm_setup(g); diff --git a/userspace/units/gr/nvgpu-gr.c b/userspace/units/gr/nvgpu-gr.c index bafb12c35..12130f9f6 100644 --- a/userspace/units/gr/nvgpu-gr.c +++ b/userspace/units/gr/nvgpu-gr.c @@ -175,9 +175,9 @@ int test_gr_init_setup_ready(struct unit_module *m, unit_return_fail(m, "CIC init failed\n"); } - err = nvgpu_cic_mon_init_lut(g); + err = nvgpu_cic_mon_init(g); if (err != 0) { - unit_return_fail(m, "CIC LUT init failed\n"); + unit_return_fail(m, "CIC Mon init failed\n"); } err = nvgpu_cic_rm_setup(g); diff --git a/userspace/units/ltc/nvgpu-ltc.c b/userspace/units/ltc/nvgpu-ltc.c index 931c69002..af04cf6d4 100644 --- a/userspace/units/ltc/nvgpu-ltc.c +++ b/userspace/units/ltc/nvgpu-ltc.c @@ -142,9 +142,9 @@ int test_ltc_init_support(struct unit_module *m, unit_return_fail(m, "CIC init failed\n"); } - err = nvgpu_cic_mon_init_lut(g); + err = nvgpu_cic_mon_init(g); if (err != 0) { - unit_return_fail(m, "CIC LUT init failed\n"); + unit_return_fail(m, "CIC Mon init failed\n"); } /* diff --git a/userspace/units/mm/hal/mmu_fault/gv11b_fusa/mmu-fault-gv11b-fusa.c b/userspace/units/mm/hal/mmu_fault/gv11b_fusa/mmu-fault-gv11b-fusa.c index 0676bf41c..91abdd427 100644 --- a/userspace/units/mm/hal/mmu_fault/gv11b_fusa/mmu-fault-gv11b-fusa.c +++ b/userspace/units/mm/hal/mmu_fault/gv11b_fusa/mmu-fault-gv11b-fusa.c @@ -228,8 +228,8 @@ int test_env_init_mm_mmu_fault_gv11b_fusa(struct unit_module *m, unit_return_fail(m, "Failed to initialize CIC\n"); } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_return_fail(m, "Failed to initialize CIC LUT\n"); + if (nvgpu_cic_mon_init(g) != 0) { + unit_return_fail(m, "Failed to initialize CIC Mon\n"); } return UNIT_SUCCESS; diff --git a/userspace/units/priv_ring/nvgpu-priv_ring.c b/userspace/units/priv_ring/nvgpu-priv_ring.c index 8805c0295..3f4caa9cc 100644 --- a/userspace/units/priv_ring/nvgpu-priv_ring.c +++ b/userspace/units/priv_ring/nvgpu-priv_ring.c @@ -166,8 +166,8 @@ int test_priv_ring_setup(struct unit_module *m, struct gk20a *g, void *args) return UNIT_FAIL; } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_err(m, "%s: Failed to initialize CIC LUT\n", + if (nvgpu_cic_mon_init(g) != 0) { + unit_err(m, "%s: Failed to initialize CIC Mon\n", __func__); return UNIT_FAIL; } diff --git a/userspace/units/ptimer/nvgpu-ptimer.c b/userspace/units/ptimer/nvgpu-ptimer.c index 6c48595be..32628209a 100644 --- a/userspace/units/ptimer/nvgpu-ptimer.c +++ b/userspace/units/ptimer/nvgpu-ptimer.c @@ -106,8 +106,8 @@ int ptimer_test_setup_env(struct unit_module *m, return UNIT_FAIL; } - if (nvgpu_cic_mon_init_lut(g) != 0) { - unit_err(m, "%s: failed to initialize CIC LUT\n", + if (nvgpu_cic_mon_init(g) != 0) { + unit_err(m, "%s: failed to initialize CIC Mon\n", __func__); return UNIT_FAIL; }