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(-) -- 2.25.1