From 449d29fb0f6a694b6b640178fa063abf02747eb6 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 5 Aug 2020 22:41:31 +0800 Subject: [PATCH] msm: kgsl: Fix HFI start failed on SA8155 In current code GMU can't startup properly on SA8155, because of HFI start failure, we can fix this by moving load pdc and rsc before HFI start. Fixes: 90da593e71d2 ("msm: kgsl: Create a6xx gmu power ops") Change-Id: Ie373cb89a54e88b3eedd62df65153e0c931b019b Signed-off-by: Hui Li --- drivers/gpu/msm/adreno_a6xx_gmu.c | 17 +++++++++-------- drivers/gpu/msm/adreno_a6xx_gmu.h | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.c b/drivers/gpu/msm/adreno_a6xx_gmu.c index a68a0d7a9e56..8d15faea010e 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.c +++ b/drivers/gpu/msm/adreno_a6xx_gmu.c @@ -2197,6 +2197,15 @@ static int a6xx_gmu_first_boot(struct adreno_device *adreno_dev) goto err; } + if (!test_bit(GMU_PRIV_PDC_RSC_LOADED, &gmu->flags)) { + ret = a6xx_load_pdc_ucode(adreno_dev); + if (ret) + goto err; + + a6xx_load_rsc_ucode(adreno_dev); + set_bit(GMU_PRIV_PDC_RSC_LOADED, &gmu->flags); + } + ret = a6xx_gmu_hfi_start(adreno_dev); if (ret) goto err; @@ -2985,14 +2994,6 @@ static int a6xx_first_boot(struct adreno_device *adreno_dev) if (ret) return ret; - ret = a6xx_load_pdc_ucode(adreno_dev); - if (ret) { - a6xx_gmu_power_off(adreno_dev); - return ret; - } - - a6xx_load_rsc_ucode(adreno_dev); - adreno_get_bus_counters(adreno_dev); adreno_dev->cooperative_reset = ADRENO_FEATURE(adreno_dev, diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.h b/drivers/gpu/msm/adreno_a6xx_gmu.h index e6bdc5f49d60..2c3286ec4c09 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.h +++ b/drivers/gpu/msm/adreno_a6xx_gmu.h @@ -137,6 +137,7 @@ enum { GMU_PRIV_HFI_STARTED, GMU_PRIV_RSCC_SLEEP_DONE, GMU_PRIV_PM_SUSPEND, + GMU_PRIV_PDC_RSC_LOADED, }; /**