summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
diff options
context:
space:
mode:
authorKevin Wang2018-12-10 06:31:56 +0100
committerAlex Deucher2019-03-19 21:03:55 +0100
commit7b0031b6ea2b31f945eb32ae9f3191d8e8b15e1b (patch)
treeac31b869f99d66ccb70cc7e7632321df5e80949a /drivers/gpu/drm/amd/powerplay/smu_v11_0.c
parentdrm/amd/powerplay: implement smu send message functions for smu11 (v3) (diff)
downloadkernel-qcow2-linux-7b0031b6ea2b31f945eb32ae9f3191d8e8b15e1b.tar.gz
kernel-qcow2-linux-7b0031b6ea2b31f945eb32ae9f3191d8e8b15e1b.tar.xz
kernel-qcow2-linux-7b0031b6ea2b31f945eb32ae9f3191d8e8b15e1b.zip
drm/amd/powerplay: implement check_fw_status function for smu11
Add function of check firmware status funtions for smu11 Signed-off-by: Kevin Wang <Kevin1.Wang@amd.com> Reviewed-by: Huang Rui <ray.huang@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/smu_v11_0.c')
-rw-r--r--drivers/gpu/drm/amd/powerplay/smu_v11_0.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
index feee3e8329fc..142ad1da5690 100644
--- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
@@ -168,7 +168,18 @@ static int smu_v11_0_load_microcode(struct smu_context *smu)
static int smu_v11_0_check_fw_status(struct smu_context *smu)
{
- return 0;
+ struct amdgpu_device *adev = smu->adev;
+ uint32_t mp1_fw_flags;
+
+ WREG32_SOC15(NBIF, 0, mmPCIE_INDEX2,
+ (MP1_Public | (smnMP1_FIRMWARE_FLAGS & 0xffffffff)));
+
+ mp1_fw_flags = RREG32_SOC15(NBIF, 0, mmPCIE_DATA2);
+
+ if ((mp1_fw_flags & MP1_FIRMWARE_FLAGS__INTERRUPTS_ENABLED_MASK) >>
+ MP1_FIRMWARE_FLAGS__INTERRUPTS_ENABLED__SHIFT)
+ return 0;
+ return -EIO;
}
static const struct smu_funcs smu_v11_0_funcs = {