summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2014-10-31 16:33:56 +0800
committerAnson Huang <b20788@freescale.com>2014-11-07 16:55:29 +0800
commita1cd44f66213cc385adc7ad5e12268c44d3ec5dc (patch)
tree973a50adf42c2cbad87f438f6d89c7b82895b0fb /include
parent8c77b47ceef14f425d5338a46d2c0d600f201706 (diff)
MLK-9799 arm: imx: improve M4-A9 wakeup source mechanism for low power mode
1. Enable MU as wakeup source always: as when M4 is busy, A9 suspend only enters WAIT mode, when M4 is from busy to idle, it will send A9 a message via MU, so we need to make sure MU message can wake up A9 and provide chance for A9 to enter DSM mode; 2. Make sure MU is disabled when last message is NOT handled: as we use delay work to handle MU message, and this message maybe over written if there is another MU message coming, to make it more robust, disable MU receive interrupt until last message has been handled; 3. Make MU interrupt as early resume source to speed up MU message handle and avoid message over written issue during resume process; 4. Enable GIC interrupt of those wakeup soucres from M4: this is to cover the cornor case of suspend, when there is wakeup source of M4 enabled in GPC but NOT in GIC, but it is pending before suspend, CCM will NOT enter low power mode, and A9 is in wfi, to make sure this interrupt can wake up A9 from wfi, make sure it is also enabled in GIC and create a dummy action to handle this interrupt, only for those modules that are NOT enabled in A9. Signed-off-by: Anson Huang <b20788@freescale.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mcc_imx6sx.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mcc_imx6sx.h b/include/linux/mcc_imx6sx.h
index 931d670d7484..624866faa84d 100644
--- a/include/linux/mcc_imx6sx.h
+++ b/include/linux/mcc_imx6sx.h
@@ -56,5 +56,6 @@ void mcc_triger_cpu_to_cpu_interrupt(void);
unsigned int mcc_get_mu_irq(void);
unsigned int mcc_handle_mu_receive_irq(void);
void mcc_handle_mu_send_irq(void);
+void mcc_enable_receive_irq(unsigned int enable);
int imx_mcc_bsp_int_disable(unsigned int vector_number);
int imx_mcc_bsp_int_enable(unsigned int vector_number);