aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLikun Gao <[email protected]>2021-06-30 17:54:30 +0800
committerAlex Deucher <[email protected]>2022-05-04 09:55:27 -0400
commit911a75043f9e062fe232eb9fb428948afd80219b (patch)
tree971149095b3817336dd1e54ceae6929610914d96
parente995e2ecdf35c19dd5772f6ac62e38221fdfa9ab (diff)
drm/amdgpu: support psp v13_0_0 microcode init
Support psp v13_0_0 microcode init. Signed-off-by: Likun Gao <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/psp_v13_0.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index ccb7106b2f27..5aba4cb9338a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -82,6 +82,7 @@ static void psp_check_pmfw_centralized_cstate_management(struct psp_context *psp
case IP_VERSION(11, 0, 11):
case IP_VERSION(11, 0, 12):
case IP_VERSION(11, 0, 13):
+ case IP_VERSION(13, 0, 0):
case IP_VERSION(13, 0, 2):
psp->pmfw_centralized_cstate_management = true;
break;
@@ -142,6 +143,10 @@ static int psp_early_init(void *handle)
psp->autoload_supported = false;
}
break;
+ case IP_VERSION(13, 0, 0):
+ psp_v13_0_set_psp_funcs(psp);
+ psp->autoload_supported = true;
+ break;
default:
return -EINVAL;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
index f951dbf21af6..024853eb1cd7 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
@@ -41,6 +41,7 @@ MODULE_FIRMWARE("amdgpu/psp_13_0_5_ta.bin");
MODULE_FIRMWARE("amdgpu/psp_13_0_8_asd.bin");
MODULE_FIRMWARE("amdgpu/psp_13_0_8_toc.bin");
MODULE_FIRMWARE("amdgpu/psp_13_0_8_ta.bin");
+MODULE_FIRMWARE("amdgpu/psp_13_0_0_sos.bin");
/* For large FW files the time to complete can be very long */
#define USBC_PD_POLLING_LIMIT_S 240
@@ -68,6 +69,9 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
case IP_VERSION(13, 0, 8):
chip_name = "psp_13_0_8";
break;
+ case IP_VERSION(13, 0, 0):
+ chip_name = "psp_13_0_0";
+ break;
default:
BUG();
}
@@ -94,6 +98,11 @@ static int psp_v13_0_init_microcode(struct psp_context *psp)
if (err)
return err;
break;
+ case IP_VERSION(13, 0, 0):
+ err = psp_init_sos_microcode(psp, chip_name);
+ if (err)
+ return err;
+ break;
default:
BUG();
}