mutex_lock(&bus_freq_mutex);
if (event == PM_SUSPEND_PREPARE) {
+ if (cpu_is_imx7d() && imx_src_is_m4_enabled())
+ imx_mu_lpm_ready(false);
high_bus_count++;
set_high_bus_freq(1);
busfreq_suspended = 1;
} else if (event == PM_POST_SUSPEND) {
busfreq_suspended = 0;
high_bus_count--;
+ if (cpu_is_imx7d() && imx_src_is_m4_enabled())
+ imx_mu_lpm_ready(true);
schedule_delayed_work(&bus_freq_daemon,
usecs_to_jiffies(5000000));
}
high_bus_count++;
}
- if (cpu_is_imx7d() && imx_src_is_m4_enabled())
+ if (cpu_is_imx7d() && imx_src_is_m4_enabled()) {
high_bus_count++;
+ imx_mu_lpm_ready(true);
+ }
if (err) {
dev_err(busfreq_dev, "Busfreq init of ddr controller failed\n");
/* enable the bit26(RIE1) of MU_ACR */
writel_relaxed(readl_relaxed(mu_base + MU_ACR) |
BIT(26) | BIT(27), mu_base + MU_ACR);
- imx_mu_lpm_ready(true);
} else {
INIT_DELAYED_WORK(&mu_work, mu_work_handler);
/* restore M4 to run mode */
imx_mu_set_m4_run_mode();
/* gpc wakeup */
- imx_mu_lpm_ready(true);
}
}
/* clear LPSR resume address */