Merge "msm: kgsl: Enable BCL only after first boot is done"

This commit is contained in:
qctecmdr
2022-06-24 03:50:51 -07:00
committed by Gerrit - the friendly Code Review server
3 changed files with 33 additions and 9 deletions

View File

@@ -2317,9 +2317,6 @@ static int a6xx_gmu_first_boot(struct adreno_device *adreno_dev)
device->gmu_fault = false;
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
kgsl_pwrctrl_set_state(device, KGSL_STATE_AWARE);
return 0;
@@ -3187,6 +3184,17 @@ static int a6xx_first_boot(struct adreno_device *adreno_dev)
set_bit(GMU_PRIV_FIRST_BOOT_DONE, &gmu->flags);
set_bit(GMU_PRIV_GPU_STARTED, &gmu->flags);
/*
* BCL needs respective Central Broadcast register to
* be programed from TZ. This programing happens only
* when zap shader firmware load is successful. Zap firmware
* load can fail in boot up path hence enable BCL only after we
* successfully complete first boot to ensure that Central
* Broadcast register was programed before enabling BCL.
*/
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
/*
* There is a possible deadlock scenario during kgsl firmware reading
* (request_firmware) and devfreq update calls. During first boot, kgsl

View File

@@ -1648,9 +1648,6 @@ static int gen7_gmu_first_boot(struct adreno_device *adreno_dev)
device->gmu_fault = false;
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
kgsl_pwrctrl_set_state(device, KGSL_STATE_AWARE);
return 0;
@@ -2486,6 +2483,17 @@ static int gen7_first_boot(struct adreno_device *adreno_dev)
set_bit(GMU_PRIV_FIRST_BOOT_DONE, &gmu->flags);
set_bit(GMU_PRIV_GPU_STARTED, &gmu->flags);
/*
* BCL needs respective Central Broadcast register to
* be programed from TZ. This programing happens only
* when zap shader firmware load is successful. Zap firmware
* load can fail in boot up path hence enable BCL only after we
* successfully complete first boot to ensure that Central
* Broadcast register was programed before enabling BCL.
*/
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
/*
* There is a possible deadlock scenario during kgsl firmware reading
* (request_firmware) and devfreq update calls. During first boot, kgsl

View File

@@ -310,9 +310,6 @@ static int gen7_hwsched_gmu_first_boot(struct adreno_device *adreno_dev)
device->gmu_fault = false;
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
trace_kgsl_pwr_set_state(device, KGSL_STATE_AWARE);
return 0;
@@ -698,6 +695,17 @@ static int gen7_hwsched_first_boot(struct adreno_device *adreno_dev)
set_bit(GMU_PRIV_FIRST_BOOT_DONE, &gmu->flags);
set_bit(GMU_PRIV_GPU_STARTED, &gmu->flags);
/*
* BCL needs respective Central Broadcast register to
* be programed from TZ. This programing happens only
* when zap shader firmware load is successful. Zap firmware
* load can fail in boot up path hence enable BCL only after we
* successfully complete first boot to ensure that Central
* Broadcast register was programed before enabling BCL.
*/
if (ADRENO_FEATURE(adreno_dev, ADRENO_BCL))
adreno_dev->bcl_enabled = true;
/*
* There is a possible deadlock scenario during kgsl firmware reading
* (request_firmware) and devfreq update calls. During first boot, kgsl