<html data-lt-installed="true"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="padding-bottom: 1px;">
<p>Series is Reviewed-by: Feifei Xu <a class="moz-txt-link-rfc2396E" href="mailto:Feifei.Xu@amd.com"><Feifei.Xu@amd.com></a><br>
</p>
<div class="moz-cite-prefix">On 9/27/2024 12:52 PM, Lijo Lazar
wrote:<br>
</div>
<blockquote type="cite" cite="mid:20240927045305.2718867-1-lijo.lazar@amd.com">
<pre class="moz-quote-pre" wrap="">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.
v2:
Move NPS request check ahead of TOS reload requirement check (Feifei)
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(-)
</pre>
</blockquote>
</body>
<lt-container></lt-container>
</html>