drm/amdgpu: enable support for psp 13.0.4 block
authorXiaojian Du <Xiaojian.Du@amd.com>
Wed, 27 Jul 2022 07:52:33 +0000 (15:52 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 29 Jul 2022 19:24:38 +0000 (15:24 -0400)
This patch will enable support for psp 13.0.4 blcok.

Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
Reviewed-by: Tim Huang <Tim.Huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/Makefile
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h

index c7d0cd15b5ef6e33d1d2402f374d6df5c65f089c..5a283d12f8e1aeee54d0dc634bebd24cda65f526 100644 (file)
@@ -115,7 +115,8 @@ amdgpu-y += \
        psp_v11_0.o \
        psp_v11_0_8.o \
        psp_v12_0.o \
-       psp_v13_0.o
+       psp_v13_0.o \
+       psp_v13_0_4.o
 
 # add DCE block
 amdgpu-y += \
index 242d1847c4aa561ce1d7eb1475707bb970aad944..95d34590cad1aa9b49e980a4f94e9919e12370be 100644 (file)
@@ -1630,12 +1630,14 @@ static int amdgpu_discovery_set_psp_ip_blocks(struct amdgpu_device *adev)
        case IP_VERSION(13, 0, 1):
        case IP_VERSION(13, 0, 2):
        case IP_VERSION(13, 0, 3):
-       case IP_VERSION(13, 0, 4):
        case IP_VERSION(13, 0, 5):
        case IP_VERSION(13, 0, 7):
        case IP_VERSION(13, 0, 8):
                amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block);
                break;
+       case IP_VERSION(13, 0, 4):
+               amdgpu_device_ip_block_add(adev, &psp_v13_0_4_ip_block);
+               break;
        default:
                dev_err(adev->dev,
                        "Failed to add psp ip block(MP0_HWIP:0x%x)\n",
index 6c23e89366bffd4c09e4ae281025c22ae72c82f6..b067ce45d2264aa107a5d268f07963c329400dbb 100644 (file)
@@ -37,6 +37,7 @@
 #include "psp_v11_0_8.h"
 #include "psp_v12_0.h"
 #include "psp_v13_0.h"
+#include "psp_v13_0_4.h"
 
 #include "amdgpu_ras.h"
 #include "amdgpu_securedisplay.h"
@@ -151,6 +152,10 @@ static int psp_early_init(void *handle)
                psp_v13_0_set_psp_funcs(psp);
                psp->autoload_supported = true;
                break;
+       case IP_VERSION(13, 0, 4):
+               psp_v13_0_4_set_psp_funcs(psp);
+               psp->autoload_supported = true;
+               break;
        default:
                return -EINVAL;
        }
@@ -3694,3 +3699,11 @@ const struct amdgpu_ip_block_version psp_v13_0_ip_block = {
        .rev = 0,
        .funcs = &psp_ip_funcs,
 };
+
+const struct amdgpu_ip_block_version psp_v13_0_4_ip_block = {
+       .type = AMD_IP_BLOCK_TYPE_PSP,
+       .major = 13,
+       .minor = 0,
+       .rev = 4,
+       .funcs = &psp_ip_funcs,
+};
index 180634616b0fcbcddac73103e4a8ead92134c3c7..c32b74bd970fc53ecb0dc6c3bc833cdf4ac0bc50 100644 (file)
@@ -439,6 +439,7 @@ extern const struct amdgpu_ip_block_version psp_v11_0_ip_block;
 extern const struct amdgpu_ip_block_version psp_v11_0_8_ip_block;
 extern const struct amdgpu_ip_block_version psp_v12_0_ip_block;
 extern const struct amdgpu_ip_block_version psp_v13_0_ip_block;
+extern const struct amdgpu_ip_block_version psp_v13_0_4_ip_block;
 
 extern int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
                        uint32_t field_val, uint32_t mask, bool check_changed);