diff options
| -rw-r--r-- | drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c index 2c190f599ff8..45504ac3a31d 100644 --- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c +++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c @@ -141,12 +141,16 @@ int smu7_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg) ret = PHM_READ_FIELD(hwmgr->device, SMC_RESP_0, SMC_RESP); - if (ret == 0xFE) + switch (ret) { + case 1: + return 0; + case 0xFE: dev_dbg(adev->dev, "SMU message %#x was not supported\n", msg); - else if (ret != 1) + return -EOPNOTSUPP; + default: dev_info(adev->dev, "SMU message %#x failed: response is %d\n", msg, ret); - - return 0; + return ret != 0xFFFF ? -EIO : -ENXIO; + } } int smu7_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr, uint16_t msg, uint32_t parameter) |
