<Ping> Thanks, Lijo On 9/24/2024 11:26 AM, Lijo Lazar wrote: > This series adds supports for dynamic NPS switch on GC v9.4.3/9.4.4 SOC > variants. > > In order to do dynamic NPS switch a sysfs interface is provided to request a new > NPS mode. If the device is part of a hive, all hive devices are required to be > in the same NPS mode. Hence a hive device request is saved in a hive variable. > For individual device, it's saved in a gmc block variable. > > In order to do a NPS mode switch, the workflow is - > > 1) User places a requests through sysfs node. > 2) User unloads the driver > 3) During unload, driver checks for any pending NPS switch request. If any > request is pending, it places the request to PSP FW. > 4) For a hive, request is placed in one-go for all devices in the hive. If > one of the requests fails, a request is placed again to revert to current NPS > mode on the successful devices. > 5) User reloads the driver. > 6) On reload, driver checks if NPS switch is pending and initiates a mode-1 > reset. > 7) During resume after a reset, NPS ranges are read again from discovery table. > 8) Driver detects the new NPS mode and makes a compatible compute partition mode > switch if required. > > Lijo Lazar (7): > drm/amdgpu: Add option to refresh NPS data > drm/amdgpu: Add PSP interface for NPS switch > drm/amdgpu: Add gmc interface to request NPS mode > drm/amdgpu: Add sysfs interfaces for NPS mode > drm/amdgpu: Place NPS mode request on unload > drm/amdgpu: Check gmc requirement for reset on init > drm/amdgpu: Add NPS switch support for GC 9.4.3 > > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 68 +++++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 190 ++++++++++++++++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 19 ++ > drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 25 +++ > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 39 ++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.h | 5 + > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 44 ++++ > drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c | 12 ++ > drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 14 +- > drivers/gpu/drm/amd/amdgpu/soc15.c | 2 + > 14 files changed, 387 insertions(+), 36 deletions(-) >