Remove an errant return in the middle of the check function as well as check for success in the start function. (v2) Add return check to smu_load_fw() Signed-off-by: Tom St Denis <tom.stdenis at amd.com> --- drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c index 87c023e518ab..688264fbd884 100644 --- a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c +++ b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c @@ -195,9 +195,6 @@ static int cz_check_fw_load_finish(struct pp_smumgr *smumgr, if (smumgr == NULL || smumgr->device == NULL) return -EINVAL; - return cgs_read_register(smumgr->device, - mmSMU_MP1_SRBM2P_ARG_0); - cgs_write_register(smumgr->device, mmMP0PUB_IND_INDEX, index); for (i = 0; i < smumgr->usec_timeout; i++) { @@ -275,8 +272,15 @@ static int cz_start_smu(struct pp_smumgr *smumgr) if (smumgr->chip_id == CHIP_STONEY) fw_to_check &= ~(UCODE_ID_SDMA1_MASK | UCODE_ID_CP_MEC_JT2_MASK); - cz_request_smu_load_fw(smumgr); - cz_check_fw_load_finish(smumgr, fw_to_check); + ret = cz_request_smu_load_fw(smumgr); + if (ret) { + printk(KERN_ERR "[ powerplay] SMU firmware load failed\n"); + return ret; + } + + ret = cz_check_fw_load_finish(smumgr, fw_to_check); + if (ret) + return ret; ret = cz_load_mec_firmware(smumgr); if (ret) -- 2.9.3