From: Le Ma <[email protected]>

Add support for new psp 13_0_12 version

Signed-off-by: Le Ma <[email protected]>
Reviewed-by: Lijo Lazar <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c       | 3 +++
 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c        | 3 +++
 drivers/gpu/drm/amd/amdgpu/soc15.c            | 1 +
 4 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index 57b36cae64546..37a55f6434828 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -2015,6 +2015,7 @@ static int amdgpu_discovery_set_psp_ip_blocks(struct 
amdgpu_device *adev)
        case IP_VERSION(13, 0, 8):
        case IP_VERSION(13, 0, 10):
        case IP_VERSION(13, 0, 11):
+       case IP_VERSION(13, 0, 12):
        case IP_VERSION(13, 0, 14):
        case IP_VERSION(14, 0, 0):
        case IP_VERSION(14, 0, 1):
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 26de60dbc9f17..87b368cf0e4e1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -208,6 +208,7 @@ static int psp_early_init(struct amdgpu_ip_block *ip_block)
                psp->boot_time_tmr = false;
                fallthrough;
        case IP_VERSION(13, 0, 6):
+       case IP_VERSION(13, 0, 12):
        case IP_VERSION(13, 0, 14):
                psp_v13_0_set_psp_funcs(psp);
                psp->autoload_supported = false;
@@ -359,6 +360,7 @@ static bool psp_get_runtime_db_entry(struct amdgpu_device 
*adev,
        int i;
 
        if (amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) ||
+           amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) ||
            amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 14))
                return false;
 
@@ -870,6 +872,7 @@ static bool psp_skip_tmr(struct psp_context *psp)
        case IP_VERSION(13, 0, 2):
        case IP_VERSION(13, 0, 6):
        case IP_VERSION(13, 0, 10):
+       case IP_VERSION(13, 0, 12):
        case IP_VERSION(13, 0, 14):
                return true;
        default:
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c 
b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
index c4b775aaee9fe..3c665ccfca642 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
@@ -122,6 +122,7 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
        case IP_VERSION(13, 0, 6):
        case IP_VERSION(13, 0, 7):
        case IP_VERSION(13, 0, 10):
+       case IP_VERSION(13, 0, 12):
        case IP_VERSION(13, 0, 14):
                err = psp_init_sos_microcode(psp, ucode_prefix);
                if (err)
@@ -177,6 +178,7 @@ static int psp_v13_0_wait_for_bootloader(struct psp_context 
*psp)
 
        retry_cnt =
                ((amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) 
||
+                 amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) 
||
                  amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 
14))) ?
                        PSP_VMBX_POLLING_LIMIT :
                        10;
@@ -203,6 +205,7 @@ static int 
psp_v13_0_wait_for_bootloader_steady_state(struct psp_context *psp)
        int ret;
 
        if (amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6) ||
+           amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 12) ||
            amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 14)) {
                ret = psp_v13_0_wait_for_vmbx_ready(psp);
                if (ret)
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c 
b/drivers/gpu/drm/amd/amdgpu/soc15.c
index 8fad6b02c8df9..68bdd91f0a630 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -1454,6 +1454,7 @@ static void soc15_common_get_clockgating_state(void 
*handle, u64 *flags)
 
        if ((amdgpu_ip_version(adev, MP0_HWIP, 0) != IP_VERSION(13, 0, 2)) &&
            (amdgpu_ip_version(adev, MP0_HWIP, 0) != IP_VERSION(13, 0, 6)) &&
+           (amdgpu_ip_version(adev, MP0_HWIP, 0) != IP_VERSION(13, 0, 12)) &&
            (amdgpu_ip_version(adev, MP0_HWIP, 0) != IP_VERSION(13, 0, 14))) {
                /* AMD_CG_SUPPORT_DRM_MGCG */
                data = RREG32(SOC15_REG_OFFSET(MP0, 0, mmMP0_MISC_CGTT_CTRL0));
-- 
2.47.0

Reply via email to