Skip to content

Commit

Permalink
arm: msm: correctly signal the apps-to-modem irq in smd/proc_comm
Browse files Browse the repository at this point in the history
Signed-off-by: Dima Zavin <dima@android.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
  • Loading branch information
Dima Zavin authored and Daniel Walker committed May 12, 2010
1 parent 636eb9c commit b42dc44
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 7 deletions.
6 changes: 6 additions & 0 deletions arch/arm/mach-msm/include/mach/msm_iomap.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,10 @@
#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
3 changes: 3 additions & 0 deletions arch/arm/mach-msm/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ static struct map_desc msm_io_desc[] __initdata = {
MSM_DEVICE(CLK_CTL),
#ifdef CONFIG_MSM_DEBUG_UART
MSM_DEVICE(DEBUG_UART),
#endif
#ifdef CONFIG_ARCH_MSM7X30
MSM_DEVICE(GCC),
#endif
{
.virtual = (unsigned long) MSM_SHARED_RAM_BASE,
Expand Down
11 changes: 9 additions & 2 deletions arch/arm/mach-msm/proc_comm.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,18 @@

#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)
{
writel(1, MSM_A2M_INT(6));
msm_a2m_int(6);
}

#define APP_COMMAND 0x00
Expand Down
18 changes: 13 additions & 5 deletions arch/arm/mach-msm/smd.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,24 +69,32 @@ static void smd_diag(void);

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)
{
writel(1, MSM_A2M_INT(5));
msm_a2m_int(5);
#ifdef CONFIG_QDSP6
writel(1, MSM_A2M_INT(8));
msm_a2m_int(8);
#endif
}

static inline void notify_modem_smd(void)
{
writel(1, MSM_A2M_INT(0));
msm_a2m_int(0);
}

static inline void notify_dsp_smd(void)
{
writel(1, MSM_A2M_INT(8));
msm_a2m_int(8);
}

static void smd_diag(void)
Expand Down

0 comments on commit b42dc44

Please sign in to comment.