ARM: OMAP: Fix omap1 McBSP without CONFIG_OMAP_DSP
As some of the McBSP clocks come from DSP side, DSP needs
to be initialized even without CONFIG_OMAP_DSP.
This feature got broken with recent DSP updates.
Signed-off-by: Tony Lindgren <tony@atomide.com>
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index 992a17d..adae4f8 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -63,7 +63,7 @@
#if defined(CONFIG_OMAP_DSP)
-#if defined(CONFIG_ARCH_OMAP1510)
+#if defined(CONFIG_ARCH_OMAP15XX)
# define OMAP1_MBOX_SIZE 0x23
# define INT_DSP_MAILBOX1 INT_1510_DSP_MAILBOX1
#elif defined(CONFIG_ARCH_OMAP16XX)
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
index e49bef8..8759383 100644
--- a/arch/arm/plat-omap/Makefile
+++ b/arch/arm/plat-omap/Makefile
@@ -26,4 +26,5 @@
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o
# DSP subsystem
-obj-$(CONFIG_OMAP_DSP) += dsp/ mailbox.o
+obj-y += dsp/
+obj-$(CONFIG_OMAP_DSP) += mailbox.o
diff --git a/arch/arm/plat-omap/dsp/dsp_common.c b/arch/arm/plat-omap/dsp/dsp_common.c
index 873509b..087971a 100644
--- a/arch/arm/plat-omap/dsp/dsp_common.c
+++ b/arch/arm/plat-omap/dsp/dsp_common.c
@@ -43,6 +43,8 @@
#define dsp_boot_config(mode) writel((mode), DSP_IPI_DSPBOOTCONFIG)
#endif
+struct omap_dsp *omap_dsp;
+
#if defined(CONFIG_ARCH_OMAP1)
struct clk *dsp_ck_handle;
struct clk *api_ck_handle;
@@ -371,7 +373,8 @@
__dsp_core_enable();
#endif
cpustat.stat = CPUSTAT_RUN;
- enable_irq(omap_dsp->mmu_irq);
+ if (omap_dsp != NULL)
+ enable_irq(omap_dsp->mmu_irq);
}
return;
}
@@ -379,7 +382,8 @@
/* cpustat.req < CPUSTAT_RUN */
if (cpustat.stat == CPUSTAT_RUN) {
- disable_irq(omap_dsp->mmu_irq);
+ if (omap_dsp != NULL)
+ disable_irq(omap_dsp->mmu_irq);
#ifdef CONFIG_ARCH_OMAP1
clk_disable(api_ck_handle);
#endif
diff --git a/arch/arm/plat-omap/dsp/dsp_core.c b/arch/arm/plat-omap/dsp/dsp_core.c
index ab3b921..ceeb5e5 100644
--- a/arch/arm/plat-omap/dsp/dsp_core.c
+++ b/arch/arm/plat-omap/dsp/dsp_core.c
@@ -40,7 +40,6 @@
MODULE_DESCRIPTION("OMAP DSP driver module");
MODULE_LICENSE("GPL");
-struct omap_dsp *omap_dsp;
static struct sync_seq *mbseq;
static u16 mbseq_expect_tmp;
static u16 *mbseq_expect = &mbseq_expect_tmp;