On Fri, Nov 22, 2024 at 04:57:09AM -0800, Zhi Wang wrote: > To support the maximum vGPUs on the device that support SRIOV, a larger > WPR2 heap size is required. > > Support WPR2 heap size override when initializing the WPR2 heap memory > layout. If zero, use the default WRP2 heap size. > > No functional change is intended. > > Signed-off-by: Zhi Wang <zhiw@xxxxxxxxxx> > --- > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ad102.c | 2 +- > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h | 2 +- > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 7 ++++--- > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c | 2 +- > 4 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ad102.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ad102.c > index 596ccd758e66..3ba67eab08d7 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ad102.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ad102.c > @@ -60,7 +60,7 @@ ad102_gsp_init_fw_heap(struct nvkm_gsp *gsp) > { > int ret; > > - nvkm_gsp_init_fw_heap(gsp); > + nvkm_gsp_init_fw_heap(gsp, 0); > > if (gsp->fb.wpr2.heap.size <= SZ_256M) > return 0; > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h > index fe56ced9b369..fe2ad4753d5e 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h > @@ -63,7 +63,7 @@ int ga102_gsp_booter_ctor(struct nvkm_gsp *, const char *, const struct firmware > int ga102_gsp_reset(struct nvkm_gsp *); > > void r535_gsp_dtor(struct nvkm_gsp *); > -void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp); > +void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp, u64 wpr2_heap_size); > int r535_gsp_oneinit(struct nvkm_gsp *); > int r535_gsp_init(struct nvkm_gsp *); > int r535_gsp_fini(struct nvkm_gsp *, bool suspend); > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > index d5d6d0df863e..5a47201bf0c4 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c > @@ -2519,7 +2519,7 @@ r535_gsp_dtor(struct nvkm_gsp *gsp) > nvkm_gsp_mem_dtor(gsp, &gsp->logrm); > } > > -void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp) > +void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp, u64 wpr2_heap_size) > { > /* Calculate FB layout. */ > gsp->fb.wpr2.frts.size = 0x100000; > @@ -2533,7 +2533,7 @@ void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp) > gsp->fb.wpr2.elf.addr = ALIGN_DOWN(gsp->fb.wpr2.boot.addr - gsp->fb.wpr2.elf.size, > 0x10000); > > - { > + if (!wpr2_heap_size) { > u32 fb_size_gb = DIV_ROUND_UP_ULL(gsp->fb.size, 1 << 30); > > gsp->fb.wpr2.heap.size = > @@ -2543,7 +2543,8 @@ void nvkm_gsp_init_fw_heap(struct nvkm_gsp *gsp) > ALIGN(GSP_FW_HEAP_PARAM_CLIENT_ALLOC_SIZE, 1 << 20); > > gsp->fb.wpr2.heap.size = max(gsp->fb.wpr2.heap.size, gsp->func->wpr_heap.min_size); > - } > + } else > + gsp->fb.wpr2.heap.size = wpr2_heap_size; If the if block has braces, the else block should have them too. checkpatch.pl should also tell you when using --strict. > > gsp->fb.wpr2.heap.addr = ALIGN_DOWN(gsp->fb.wpr2.elf.addr - gsp->fb.wpr2.heap.size, > 0x100000); > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c > index e279a322704a..eb6081946c13 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c > @@ -79,7 +79,7 @@ tu102_gsp_booter_ctor(struct nvkm_gsp *gsp, const char *name, const struct firmw > int > tu102_gsp_init_fw_heap(struct nvkm_gsp *gsp) > { > - nvkm_gsp_init_fw_heap(gsp); > + nvkm_gsp_init_fw_heap(gsp, 0); > > return 0; > } > -- > 2.34.1 >