diff --git a/userspace/units/fifo/tsg/nvgpu-tsg.c b/userspace/units/fifo/tsg/nvgpu-tsg.c index 80e6eae0a..b86e3d92d 100644 --- a/userspace/units/fifo/tsg/nvgpu-tsg.c +++ b/userspace/units/fifo/tsg/nvgpu-tsg.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "hal/fifo/tsg_gk20a.h" @@ -52,6 +53,24 @@ static u32 test_gv11b_gr_init_get_no_of_sm(struct gk20a *g) return 8; } +#ifdef NVGPU_USERD +static int stub_userd_setup_sw(struct gk20a *g) +{ + struct nvgpu_fifo *f = &g->fifo; + int err; + + f->userd_entry_size = g->ops.userd.entry_size(g); + + err = nvgpu_userd_init_slabs(g); + if (err != 0) { + nvgpu_err(g, "failed to init userd support"); + return err; + } + + return 0; +} +#endif + static int test_fifo_init_support(struct unit_module *m, struct gk20a *g, void *args) { @@ -76,6 +95,15 @@ static int test_fifo_init_support(struct unit_module *m, g->ops.fifo.init_fifo_setup_hw = NULL; nvgpu_set_enabled(g, NVGPU_IS_FMODEL, false); +#ifdef NVGPU_USERD + /* + * Regular USERD init requires bar1.vm to be initialized + * Use a stub in unit tests, since it will be disabled in + * safety build anyway. + */ + g->ops.userd.setup_sw = stub_userd_setup_sw; +#endif + err = nvgpu_fifo_init_support(g); if (err != 0) { test_fifo_cleanup_gv11b_reg_space(m, g);