Commit b42dc44a authored by Dima Zavin's avatar Dima Zavin Committed by Daniel Walker

arm: msm: correctly signal the apps-to-modem irq in smd/proc_comm

Signed-off-by: default avatarDima Zavin <dima@android.com>
Signed-off-by: default avatarDaniel Walker <dwalker@codeaurora.org>
parent 636eb9cb
...@@ -130,4 +130,10 @@ ...@@ -130,4 +130,10 @@
#define MSM_AD5_SIZE (SZ_1M*13) #define MSM_AD5_SIZE (SZ_1M*13)
#if defined(CONFIG_ARCH_MSM7X30)
#define MSM_GCC_BASE IOMEM(0xF8009000)
#define MSM_GCC_PHYS 0xC0182000
#define MSM_GCC_SIZE SZ_4K
#endif
#endif #endif
...@@ -44,6 +44,9 @@ static struct map_desc msm_io_desc[] __initdata = { ...@@ -44,6 +44,9 @@ static struct map_desc msm_io_desc[] __initdata = {
MSM_DEVICE(CLK_CTL), MSM_DEVICE(CLK_CTL),
#ifdef CONFIG_MSM_DEBUG_UART #ifdef CONFIG_MSM_DEBUG_UART
MSM_DEVICE(DEBUG_UART), MSM_DEVICE(DEBUG_UART),
#endif
#ifdef CONFIG_ARCH_MSM7X30
MSM_DEVICE(GCC),
#endif #endif
{ {
.virtual = (unsigned long) MSM_SHARED_RAM_BASE, .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
......
...@@ -23,11 +23,18 @@ ...@@ -23,11 +23,18 @@
#include "proc_comm.h" #include "proc_comm.h"
#define MSM_A2M_INT(n) (MSM_CSR_BASE + 0x400 + (n) * 4) static inline void msm_a2m_int(uint32_t irq)
{
#if defined(CONFIG_ARCH_MSM7X30)
writel(1 << irq, MSM_GCC_BASE + 0x8);
#else
writel(1, MSM_CSR_BASE + 0x400 + (irq * 4));
#endif
}
static inline void notify_other_proc_comm(void) static inline void notify_other_proc_comm(void)
{ {
writel(1, MSM_A2M_INT(6)); msm_a2m_int(6);
} }
#define APP_COMMAND 0x00 #define APP_COMMAND 0x00
......
...@@ -69,24 +69,32 @@ static void smd_diag(void); ...@@ -69,24 +69,32 @@ static void smd_diag(void);
static unsigned last_heap_free = 0xffffffff; static unsigned last_heap_free = 0xffffffff;
#define MSM_A2M_INT(n) (MSM_CSR_BASE + 0x400 + (n) * 4) static inline void msm_a2m_int(uint32_t irq)
{
#if defined(CONFIG_ARCH_MSM7X30)
writel(1 << irq, MSM_GCC_BASE + 0x8);
#else
writel(1, MSM_CSR_BASE + 0x400 + (irq * 4));
#endif
}
static inline void notify_other_smsm(void) static inline void notify_other_smsm(void)
{ {
writel(1, MSM_A2M_INT(5)); msm_a2m_int(5);
#ifdef CONFIG_QDSP6 #ifdef CONFIG_QDSP6
writel(1, MSM_A2M_INT(8)); msm_a2m_int(8);
#endif #endif
} }
static inline void notify_modem_smd(void) static inline void notify_modem_smd(void)
{ {
writel(1, MSM_A2M_INT(0)); msm_a2m_int(0);
} }
static inline void notify_dsp_smd(void) static inline void notify_dsp_smd(void)
{ {
writel(1, MSM_A2M_INT(8)); msm_a2m_int(8);
} }
static void smd_diag(void) static void smd_diag(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment