Loading drivers/gpu/msm/adreno.c +20 −2 Original line number Diff line number Diff line Loading @@ -1901,6 +1901,17 @@ static int _adreno_start(struct adreno_device *adreno_dev) if (regulator_left_on) _soft_reset(adreno_dev); /* * During adreno_stop, GBIF halt is asserted to ensure * no further transaction can go through GPU before GPU * headswitch is turned off. * * This halt is deasserted once headswitch goes off but * incase headswitch doesn't goes off clear GBIF halt * here to ensure GPU wake-up doesn't fail because of * halted GPU transactions. */ adreno_deassert_gbif_halt(adreno_dev); adreno_ringbuffer_set_global(adreno_dev, 0); Loading Loading @@ -2223,7 +2234,14 @@ static int adreno_stop(struct kgsl_device *device) adreno_clear_pending_transactions(device); /* The halt is not cleared in the above function if we have GBIF */ /* * The halt is not cleared in the above function if we have GBIF. * Clear it here if GMU is enabled as GMU stop needs access to * system memory to stop. For non-GMU targets, we don't need to * clear it as it will get cleared automatically once headswitch * goes OFF immediately after adreno_stop. */ if (gmu_core_gpmu_isenabled(device)) adreno_deassert_gbif_halt(adreno_dev); kgsl_mmu_stop(&device->mmu); Loading Loading
drivers/gpu/msm/adreno.c +20 −2 Original line number Diff line number Diff line Loading @@ -1901,6 +1901,17 @@ static int _adreno_start(struct adreno_device *adreno_dev) if (regulator_left_on) _soft_reset(adreno_dev); /* * During adreno_stop, GBIF halt is asserted to ensure * no further transaction can go through GPU before GPU * headswitch is turned off. * * This halt is deasserted once headswitch goes off but * incase headswitch doesn't goes off clear GBIF halt * here to ensure GPU wake-up doesn't fail because of * halted GPU transactions. */ adreno_deassert_gbif_halt(adreno_dev); adreno_ringbuffer_set_global(adreno_dev, 0); Loading Loading @@ -2223,7 +2234,14 @@ static int adreno_stop(struct kgsl_device *device) adreno_clear_pending_transactions(device); /* The halt is not cleared in the above function if we have GBIF */ /* * The halt is not cleared in the above function if we have GBIF. * Clear it here if GMU is enabled as GMU stop needs access to * system memory to stop. For non-GMU targets, we don't need to * clear it as it will get cleared automatically once headswitch * goes OFF immediately after adreno_stop. */ if (gmu_core_gpmu_isenabled(device)) adreno_deassert_gbif_halt(adreno_dev); kgsl_mmu_stop(&device->mmu); Loading