mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 10:04:26 +00:00
Merge pull request #1051 from Kevin-WangTao/fix_suspend_issue
Hikey960: fix PSCI suspend stuck issue
This commit is contained in:
commit
5ae4dab2b8
1 changed files with 5 additions and 0 deletions
|
@ -250,6 +250,7 @@ static void
|
||||||
hikey960_pwr_domain_suspend_finish(const psci_power_state_t *target_state)
|
hikey960_pwr_domain_suspend_finish(const psci_power_state_t *target_state)
|
||||||
{
|
{
|
||||||
unsigned long mpidr = read_mpidr_el1();
|
unsigned long mpidr = read_mpidr_el1();
|
||||||
|
unsigned int core = mpidr & MPIDR_CPU_MASK;
|
||||||
unsigned int cluster =
|
unsigned int cluster =
|
||||||
(mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS;
|
(mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS;
|
||||||
|
|
||||||
|
@ -257,6 +258,10 @@ hikey960_pwr_domain_suspend_finish(const psci_power_state_t *target_state)
|
||||||
if (CORE_PWR_STATE(target_state) != PLAT_MAX_OFF_STATE)
|
if (CORE_PWR_STATE(target_state) != PLAT_MAX_OFF_STATE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
hisi_cpuidle_lock(cluster, core);
|
||||||
|
hisi_clear_cpuidle_flag(cluster, core);
|
||||||
|
hisi_cpuidle_unlock(cluster, core);
|
||||||
|
|
||||||
if (hisi_test_ap_suspend_flag(cluster)) {
|
if (hisi_test_ap_suspend_flag(cluster)) {
|
||||||
hikey960_sr_dma_reinit();
|
hikey960_sr_dma_reinit();
|
||||||
gicv2_cpuif_enable();
|
gicv2_cpuif_enable();
|
||||||
|
|
Loading…
Add table
Reference in a new issue