if ARCH_OMAP
 source "drivers/cbus/Kconfig"
+source "drivers/dsp/dspgateway/Kconfig"
 endif
 
 endmenu
 
 }
 EXPORT_SYMBOL_GPL(dsp_mem_usecount_clear);
 
+void omap_mmu_itack(struct omap_mmu *mmu)
+{
+       omap_mmu_write_reg(mmu, OMAP_MMU_IT_ACK_IT_ACK, OMAP_MMU_IT_ACK);
+}
+EXPORT_SYMBOL(omap_mmu_itack);
+
 static int omap1_mmu_mem_enable(struct omap_mmu *mmu, void *addr)
 {
        int ret = 0;
 
        (ent)->ap       = OMAP_MMU_RAM_L_AP_FA;         \
 } while (0)
 
-extern struct omap_mmu_ops omap1_mmu_ops;
-
 struct omap_mmu_tlb_entry {
        unsigned long va;
        unsigned long pa;
        __raw_writew(val, mmu->base + reg);
 }
 
-static inline void omap_mmu_itack(struct omap_mmu *mmu)
-{
-       omap_mmu_write_reg(mmu, OMAP_MMU_IT_ACK_IT_ACK, OMAP_MMU_IT_ACK);
-}
-
 #endif /* __MACH_OMAP1_MMU_H */
 
        (ent)->mixed    = 0;                                    \
 } while (0)
 
-extern struct omap_mmu_ops omap2_mmu_ops;
-
 struct omap_mmu_tlb_entry {
        unsigned long va;
        unsigned long pa;
 {
        __raw_writel(val, mmu->base + reg);
 }
-static inline void omap_mmu_itack(struct omap_mmu *mmu)
-{
-}
+
 #endif /* __MACH_OMAP2_MMU_H */
 
          to data on the serial RX line. This allows you to wake the
          system from serial console.
 
-source "arch/arm/plat-omap/dsp/Kconfig"
-
 endmenu
 
 endif
 
 # OMAP mailbox framework
 obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
 
-# DSP subsystem
-obj-y += dsp/
-obj-$(CONFIG_OMAP_DSP) += mailbox.o
 
 obj-y                          += base/ block/ misc/ mfd/ net/ media/ cbus/
 obj-$(CONFIG_I2C)              += i2c/
 obj-y                          += cbus/
+obj-y                          += dsp/dspgateway/
 obj-$(CONFIG_NUBUS)            += nubus/
 obj-$(CONFIG_ATM)              += atm/
 obj-y                          += macintosh/
 
 
 
 #ifdef CONFIG_ARCH_OMAP2
-#include "../../mach-omap2/prm.h"
-#include "../../mach-omap2/prm_regbits_24xx.h"
-#include "../../mach-omap2/cm.h"
-#include "../../mach-omap2/cm_regbits_24xx.h"
+#include "../../../arch/arm/mach-omap2/prm.h"
+#include "../../../arch/arm/mach-omap2/prm_regbits_24xx.h"
+#include "../../../arch/arm/mach-omap2/cm.h"
+#include "../../../arch/arm/mach-omap2/cm_regbits_24xx.h"
 #endif
 
 /*
 
 #include "dsp.h"
 #include "ipbuf.h"
 
+#if 0
 #if defined(CONFIG_ARCH_OMAP1)
 #include "../../mach-omap1/mmu.h"
 #elif defined(CONFIG_ARCH_OMAP2)
 #include "../../mach-omap2/mmu.h"
 #endif
+#endif
 
 #include "mmu.h"
 
 
 struct omap_mmu;
 struct omap_mmu_tlb_entry;
 
+#ifdef CONFIG_ARCH_OMAP1
+extern struct omap_mmu_ops omap1_mmu_ops;
+extern void omap_mmu_itack(struct omap_mmu *mmu);
+#elif defined(CONFIG_ARCH_OMAP2)
+extern struct omap_mmu_ops omap2_mmu_ops;
+static inline void omap_mmu_itack(struct omap_mmu *mmu)
+{
+}
+#endif
+
 struct omap_mmu_ops {
        int (*startup)(struct omap_mmu *mmu);
        void (*shutdown)(struct omap_mmu *mmu);