diff --git a/arch/mn10300/Makefile b/arch/mn10300/Makefile
index 6673a28ec07adbffdffe1fb602a9f2f61c4f1d5e..dd0c8ff52a682b6c622bdc3cd9be939760c0b561 100644
--- a/arch/mn10300/Makefile
+++ b/arch/mn10300/Makefile
@@ -94,42 +94,8 @@ ifdef CONFIG_DEBUG_INFO
 KBUILD_AFLAGS	+= -Wa,--gdwarf2
 endif
 
-###################################################################################################
 #
-# juggle some symlinks in the MN10300 asm include dir
+# include the appropriate processor- and unit-specific headers
 #
-#	Update machine proc and unit symlinks if something which affects
-#	them changed.  We use .proc / .unit to indicate when they were
-#	updated last, otherwise make uses the target directory mtime.
-#
-###################################################################################################
-
-# processor specific definitions
-include/asm-mn10300/.proc: $(wildcard include/config/proc/*.h) include/config/auto.conf
-	@echo '  SYMLINK include/asm-mn10300/proc -> include/asm-mn10300/proc-$(PROCESSOR)'
-ifneq ($(KBUILD_SRC),)
-	$(Q)mkdir -p include/asm-mn10300
-	$(Q)ln -fsn $(srctree)/include/asm-mn10300/proc-$(PROCESSOR) include/asm-mn10300/proc
-else
-	$(Q)ln -fsn proc-$(PROCESSOR) include/asm-mn10300/proc
-endif
-	@touch $@
-
-CLEAN_FILES += include/asm-mn10300/proc include/asm-mn10300/.proc
-
-prepare: include/asm-mn10300/.proc
-
-# unit specific definitions
-include/asm-mn10300/.unit: $(wildcard include/config/unit/*.h) include/config/auto.conf
-	@echo '  SYMLINK include/asm-mn10300/unit -> include/asm-mn10300/unit-$(UNIT)'
-ifneq ($(KBUILD_SRC),)
-	$(Q)mkdir -p include/asm-mn10300
-	$(Q)ln -fsn $(srctree)/include/asm-mn10300/unit-$(UNIT) include/asm-mn10300/unit
-else
-	$(Q)ln -fsn unit-$(UNIT) include/asm-mn10300/unit
-endif
-	@touch $@
-
-CLEAN_FILES += include/asm-mn10300/unit include/asm-mn10300/.unit
-
-prepare: include/asm-mn10300/.unit
+KBUILD_CPPFLAGS += -I$(srctree)/arch/mn10300/proc-$(PROCESSOR)/include
+KBUILD_CPPFLAGS += -I$(srctree)/arch/mn10300/unit-$(UNIT)/include
diff --git a/include/asm-mn10300/Kbuild b/arch/mn10300/include/asm/Kbuild
similarity index 100%
rename from include/asm-mn10300/Kbuild
rename to arch/mn10300/include/asm/Kbuild
diff --git a/include/asm-mn10300/atomic.h b/arch/mn10300/include/asm/atomic.h
similarity index 100%
rename from include/asm-mn10300/atomic.h
rename to arch/mn10300/include/asm/atomic.h
diff --git a/include/asm-mn10300/auxvec.h b/arch/mn10300/include/asm/auxvec.h
similarity index 100%
rename from include/asm-mn10300/auxvec.h
rename to arch/mn10300/include/asm/auxvec.h
diff --git a/include/asm-mn10300/bitops.h b/arch/mn10300/include/asm/bitops.h
similarity index 100%
rename from include/asm-mn10300/bitops.h
rename to arch/mn10300/include/asm/bitops.h
diff --git a/include/asm-mn10300/bug.h b/arch/mn10300/include/asm/bug.h
similarity index 100%
rename from include/asm-mn10300/bug.h
rename to arch/mn10300/include/asm/bug.h
diff --git a/include/asm-mn10300/bugs.h b/arch/mn10300/include/asm/bugs.h
similarity index 100%
rename from include/asm-mn10300/bugs.h
rename to arch/mn10300/include/asm/bugs.h
diff --git a/include/asm-mn10300/busctl-regs.h b/arch/mn10300/include/asm/busctl-regs.h
similarity index 100%
rename from include/asm-mn10300/busctl-regs.h
rename to arch/mn10300/include/asm/busctl-regs.h
diff --git a/include/asm-mn10300/byteorder.h b/arch/mn10300/include/asm/byteorder.h
similarity index 100%
rename from include/asm-mn10300/byteorder.h
rename to arch/mn10300/include/asm/byteorder.h
diff --git a/include/asm-mn10300/cache.h b/arch/mn10300/include/asm/cache.h
similarity index 98%
rename from include/asm-mn10300/cache.h
rename to arch/mn10300/include/asm/cache.h
index 9e01122208a93fe497e48cf2398699b11874c2dc..e03cfa2e997e7299e1215a3a8c25a516d19d6751 100644
--- a/include/asm-mn10300/cache.h
+++ b/arch/mn10300/include/asm/cache.h
@@ -13,7 +13,7 @@
 #define _ASM_CACHE_H
 
 #include <asm/cpu-regs.h>
-#include <asm/proc/cache.h>
+#include <proc/cache.h>
 
 #ifndef __ASSEMBLY__
 #define L1_CACHE_DISPARITY	(L1_CACHE_NENTRIES * L1_CACHE_BYTES)
diff --git a/include/asm-mn10300/cacheflush.h b/arch/mn10300/include/asm/cacheflush.h
similarity index 100%
rename from include/asm-mn10300/cacheflush.h
rename to arch/mn10300/include/asm/cacheflush.h
diff --git a/include/asm-mn10300/checksum.h b/arch/mn10300/include/asm/checksum.h
similarity index 100%
rename from include/asm-mn10300/checksum.h
rename to arch/mn10300/include/asm/checksum.h
diff --git a/include/asm-mn10300/cpu-regs.h b/arch/mn10300/include/asm/cpu-regs.h
similarity index 100%
rename from include/asm-mn10300/cpu-regs.h
rename to arch/mn10300/include/asm/cpu-regs.h
diff --git a/include/asm-mn10300/cputime.h b/arch/mn10300/include/asm/cputime.h
similarity index 100%
rename from include/asm-mn10300/cputime.h
rename to arch/mn10300/include/asm/cputime.h
diff --git a/include/asm-mn10300/current.h b/arch/mn10300/include/asm/current.h
similarity index 100%
rename from include/asm-mn10300/current.h
rename to arch/mn10300/include/asm/current.h
diff --git a/include/asm-mn10300/delay.h b/arch/mn10300/include/asm/delay.h
similarity index 100%
rename from include/asm-mn10300/delay.h
rename to arch/mn10300/include/asm/delay.h
diff --git a/include/asm-mn10300/device.h b/arch/mn10300/include/asm/device.h
similarity index 100%
rename from include/asm-mn10300/device.h
rename to arch/mn10300/include/asm/device.h
diff --git a/include/asm-mn10300/div64.h b/arch/mn10300/include/asm/div64.h
similarity index 100%
rename from include/asm-mn10300/div64.h
rename to arch/mn10300/include/asm/div64.h
diff --git a/include/asm-mn10300/dma-mapping.h b/arch/mn10300/include/asm/dma-mapping.h
similarity index 100%
rename from include/asm-mn10300/dma-mapping.h
rename to arch/mn10300/include/asm/dma-mapping.h
diff --git a/include/asm-mn10300/dma.h b/arch/mn10300/include/asm/dma.h
similarity index 100%
rename from include/asm-mn10300/dma.h
rename to arch/mn10300/include/asm/dma.h
diff --git a/include/asm-mn10300/dmactl-regs.h b/arch/mn10300/include/asm/dmactl-regs.h
similarity index 100%
rename from include/asm-mn10300/dmactl-regs.h
rename to arch/mn10300/include/asm/dmactl-regs.h
diff --git a/include/asm-mn10300/elf.h b/arch/mn10300/include/asm/elf.h
similarity index 100%
rename from include/asm-mn10300/elf.h
rename to arch/mn10300/include/asm/elf.h
diff --git a/include/asm-mn10300/emergency-restart.h b/arch/mn10300/include/asm/emergency-restart.h
similarity index 100%
rename from include/asm-mn10300/emergency-restart.h
rename to arch/mn10300/include/asm/emergency-restart.h
diff --git a/include/asm-mn10300/errno.h b/arch/mn10300/include/asm/errno.h
similarity index 100%
rename from include/asm-mn10300/errno.h
rename to arch/mn10300/include/asm/errno.h
diff --git a/include/asm-mn10300/exceptions.h b/arch/mn10300/include/asm/exceptions.h
similarity index 100%
rename from include/asm-mn10300/exceptions.h
rename to arch/mn10300/include/asm/exceptions.h
diff --git a/include/asm-mn10300/fb.h b/arch/mn10300/include/asm/fb.h
similarity index 100%
rename from include/asm-mn10300/fb.h
rename to arch/mn10300/include/asm/fb.h
diff --git a/include/asm-mn10300/fcntl.h b/arch/mn10300/include/asm/fcntl.h
similarity index 100%
rename from include/asm-mn10300/fcntl.h
rename to arch/mn10300/include/asm/fcntl.h
diff --git a/include/asm-mn10300/fpu.h b/arch/mn10300/include/asm/fpu.h
similarity index 100%
rename from include/asm-mn10300/fpu.h
rename to arch/mn10300/include/asm/fpu.h
diff --git a/include/asm-mn10300/frame.inc b/arch/mn10300/include/asm/frame.inc
similarity index 100%
rename from include/asm-mn10300/frame.inc
rename to arch/mn10300/include/asm/frame.inc
diff --git a/include/asm-mn10300/ftrace.h b/arch/mn10300/include/asm/ftrace.h
similarity index 100%
rename from include/asm-mn10300/ftrace.h
rename to arch/mn10300/include/asm/ftrace.h
diff --git a/include/asm-mn10300/futex.h b/arch/mn10300/include/asm/futex.h
similarity index 100%
rename from include/asm-mn10300/futex.h
rename to arch/mn10300/include/asm/futex.h
diff --git a/include/asm-mn10300/gdb-stub.h b/arch/mn10300/include/asm/gdb-stub.h
similarity index 100%
rename from include/asm-mn10300/gdb-stub.h
rename to arch/mn10300/include/asm/gdb-stub.h
diff --git a/include/asm-mn10300/hardirq.h b/arch/mn10300/include/asm/hardirq.h
similarity index 100%
rename from include/asm-mn10300/hardirq.h
rename to arch/mn10300/include/asm/hardirq.h
diff --git a/include/asm-mn10300/highmem.h b/arch/mn10300/include/asm/highmem.h
similarity index 100%
rename from include/asm-mn10300/highmem.h
rename to arch/mn10300/include/asm/highmem.h
diff --git a/include/asm-mn10300/hw_irq.h b/arch/mn10300/include/asm/hw_irq.h
similarity index 100%
rename from include/asm-mn10300/hw_irq.h
rename to arch/mn10300/include/asm/hw_irq.h
diff --git a/include/asm-mn10300/intctl-regs.h b/arch/mn10300/include/asm/intctl-regs.h
similarity index 100%
rename from include/asm-mn10300/intctl-regs.h
rename to arch/mn10300/include/asm/intctl-regs.h
diff --git a/include/asm-mn10300/io.h b/arch/mn10300/include/asm/io.h
similarity index 100%
rename from include/asm-mn10300/io.h
rename to arch/mn10300/include/asm/io.h
diff --git a/include/asm-mn10300/ioctl.h b/arch/mn10300/include/asm/ioctl.h
similarity index 100%
rename from include/asm-mn10300/ioctl.h
rename to arch/mn10300/include/asm/ioctl.h
diff --git a/include/asm-mn10300/ioctls.h b/arch/mn10300/include/asm/ioctls.h
similarity index 100%
rename from include/asm-mn10300/ioctls.h
rename to arch/mn10300/include/asm/ioctls.h
diff --git a/include/asm-mn10300/ipc.h b/arch/mn10300/include/asm/ipc.h
similarity index 100%
rename from include/asm-mn10300/ipc.h
rename to arch/mn10300/include/asm/ipc.h
diff --git a/include/asm-mn10300/ipcbuf.h b/arch/mn10300/include/asm/ipcbuf.h
similarity index 100%
rename from include/asm-mn10300/ipcbuf.h
rename to arch/mn10300/include/asm/ipcbuf.h
diff --git a/include/asm-mn10300/irq.h b/arch/mn10300/include/asm/irq.h
similarity index 97%
rename from include/asm-mn10300/irq.h
rename to arch/mn10300/include/asm/irq.h
index 53b380116901941719268873414c2302b6648b80..25c045d16d1c49fd2d85be264429c3f2549ccfd9 100644
--- a/include/asm-mn10300/irq.h
+++ b/arch/mn10300/include/asm/irq.h
@@ -16,7 +16,7 @@
 
 #include <asm/intctl-regs.h>
 #include <asm/reset-regs.h>
-#include <asm/proc/irq.h>
+#include <proc/irq.h>
 
 /* this number is used when no interrupt has been assigned */
 #define NO_IRQ		INT_MAX
diff --git a/include/asm-mn10300/irq_regs.h b/arch/mn10300/include/asm/irq_regs.h
similarity index 100%
rename from include/asm-mn10300/irq_regs.h
rename to arch/mn10300/include/asm/irq_regs.h
diff --git a/include/asm-mn10300/kdebug.h b/arch/mn10300/include/asm/kdebug.h
similarity index 100%
rename from include/asm-mn10300/kdebug.h
rename to arch/mn10300/include/asm/kdebug.h
diff --git a/include/asm-mn10300/kmap_types.h b/arch/mn10300/include/asm/kmap_types.h
similarity index 100%
rename from include/asm-mn10300/kmap_types.h
rename to arch/mn10300/include/asm/kmap_types.h
diff --git a/include/asm-mn10300/kprobes.h b/arch/mn10300/include/asm/kprobes.h
similarity index 100%
rename from include/asm-mn10300/kprobes.h
rename to arch/mn10300/include/asm/kprobes.h
diff --git a/include/asm-mn10300/linkage.h b/arch/mn10300/include/asm/linkage.h
similarity index 100%
rename from include/asm-mn10300/linkage.h
rename to arch/mn10300/include/asm/linkage.h
diff --git a/include/asm-mn10300/local.h b/arch/mn10300/include/asm/local.h
similarity index 100%
rename from include/asm-mn10300/local.h
rename to arch/mn10300/include/asm/local.h
diff --git a/include/asm-mn10300/mc146818rtc.h b/arch/mn10300/include/asm/mc146818rtc.h
similarity index 100%
rename from include/asm-mn10300/mc146818rtc.h
rename to arch/mn10300/include/asm/mc146818rtc.h
diff --git a/include/asm-mn10300/mman.h b/arch/mn10300/include/asm/mman.h
similarity index 100%
rename from include/asm-mn10300/mman.h
rename to arch/mn10300/include/asm/mman.h
diff --git a/include/asm-mn10300/mmu.h b/arch/mn10300/include/asm/mmu.h
similarity index 100%
rename from include/asm-mn10300/mmu.h
rename to arch/mn10300/include/asm/mmu.h
diff --git a/include/asm-mn10300/mmu_context.h b/arch/mn10300/include/asm/mmu_context.h
similarity index 100%
rename from include/asm-mn10300/mmu_context.h
rename to arch/mn10300/include/asm/mmu_context.h
diff --git a/include/asm-mn10300/module.h b/arch/mn10300/include/asm/module.h
similarity index 100%
rename from include/asm-mn10300/module.h
rename to arch/mn10300/include/asm/module.h
diff --git a/include/asm-mn10300/msgbuf.h b/arch/mn10300/include/asm/msgbuf.h
similarity index 100%
rename from include/asm-mn10300/msgbuf.h
rename to arch/mn10300/include/asm/msgbuf.h
diff --git a/include/asm-mn10300/mutex.h b/arch/mn10300/include/asm/mutex.h
similarity index 100%
rename from include/asm-mn10300/mutex.h
rename to arch/mn10300/include/asm/mutex.h
diff --git a/include/asm-mn10300/nmi.h b/arch/mn10300/include/asm/nmi.h
similarity index 100%
rename from include/asm-mn10300/nmi.h
rename to arch/mn10300/include/asm/nmi.h
diff --git a/include/asm-mn10300/page.h b/arch/mn10300/include/asm/page.h
similarity index 100%
rename from include/asm-mn10300/page.h
rename to arch/mn10300/include/asm/page.h
diff --git a/include/asm-mn10300/page_offset.h b/arch/mn10300/include/asm/page_offset.h
similarity index 100%
rename from include/asm-mn10300/page_offset.h
rename to arch/mn10300/include/asm/page_offset.h
diff --git a/include/asm-mn10300/param.h b/arch/mn10300/include/asm/param.h
similarity index 100%
rename from include/asm-mn10300/param.h
rename to arch/mn10300/include/asm/param.h
diff --git a/include/asm-mn10300/pci.h b/arch/mn10300/include/asm/pci.h
similarity index 100%
rename from include/asm-mn10300/pci.h
rename to arch/mn10300/include/asm/pci.h
diff --git a/include/asm-mn10300/percpu.h b/arch/mn10300/include/asm/percpu.h
similarity index 100%
rename from include/asm-mn10300/percpu.h
rename to arch/mn10300/include/asm/percpu.h
diff --git a/include/asm-mn10300/pgalloc.h b/arch/mn10300/include/asm/pgalloc.h
similarity index 100%
rename from include/asm-mn10300/pgalloc.h
rename to arch/mn10300/include/asm/pgalloc.h
diff --git a/include/asm-mn10300/pgtable.h b/arch/mn10300/include/asm/pgtable.h
similarity index 100%
rename from include/asm-mn10300/pgtable.h
rename to arch/mn10300/include/asm/pgtable.h
diff --git a/include/asm-mn10300/pio-regs.h b/arch/mn10300/include/asm/pio-regs.h
similarity index 100%
rename from include/asm-mn10300/pio-regs.h
rename to arch/mn10300/include/asm/pio-regs.h
diff --git a/include/asm-mn10300/poll.h b/arch/mn10300/include/asm/poll.h
similarity index 100%
rename from include/asm-mn10300/poll.h
rename to arch/mn10300/include/asm/poll.h
diff --git a/include/asm-mn10300/posix_types.h b/arch/mn10300/include/asm/posix_types.h
similarity index 100%
rename from include/asm-mn10300/posix_types.h
rename to arch/mn10300/include/asm/posix_types.h
diff --git a/include/asm-mn10300/processor.h b/arch/mn10300/include/asm/processor.h
similarity index 100%
rename from include/asm-mn10300/processor.h
rename to arch/mn10300/include/asm/processor.h
diff --git a/include/asm-mn10300/ptrace.h b/arch/mn10300/include/asm/ptrace.h
similarity index 100%
rename from include/asm-mn10300/ptrace.h
rename to arch/mn10300/include/asm/ptrace.h
diff --git a/include/asm-mn10300/reset-regs.h b/arch/mn10300/include/asm/reset-regs.h
similarity index 100%
rename from include/asm-mn10300/reset-regs.h
rename to arch/mn10300/include/asm/reset-regs.h
diff --git a/include/asm-mn10300/resource.h b/arch/mn10300/include/asm/resource.h
similarity index 100%
rename from include/asm-mn10300/resource.h
rename to arch/mn10300/include/asm/resource.h
diff --git a/include/asm-mn10300/rtc-regs.h b/arch/mn10300/include/asm/rtc-regs.h
similarity index 100%
rename from include/asm-mn10300/rtc-regs.h
rename to arch/mn10300/include/asm/rtc-regs.h
diff --git a/include/asm-mn10300/rtc.h b/arch/mn10300/include/asm/rtc.h
similarity index 100%
rename from include/asm-mn10300/rtc.h
rename to arch/mn10300/include/asm/rtc.h
diff --git a/include/asm-mn10300/scatterlist.h b/arch/mn10300/include/asm/scatterlist.h
similarity index 100%
rename from include/asm-mn10300/scatterlist.h
rename to arch/mn10300/include/asm/scatterlist.h
diff --git a/include/asm-mn10300/sections.h b/arch/mn10300/include/asm/sections.h
similarity index 100%
rename from include/asm-mn10300/sections.h
rename to arch/mn10300/include/asm/sections.h
diff --git a/include/asm-mn10300/sembuf.h b/arch/mn10300/include/asm/sembuf.h
similarity index 100%
rename from include/asm-mn10300/sembuf.h
rename to arch/mn10300/include/asm/sembuf.h
diff --git a/include/asm-mn10300/serial-regs.h b/arch/mn10300/include/asm/serial-regs.h
similarity index 100%
rename from include/asm-mn10300/serial-regs.h
rename to arch/mn10300/include/asm/serial-regs.h
diff --git a/include/asm-mn10300/serial.h b/arch/mn10300/include/asm/serial.h
similarity index 97%
rename from include/asm-mn10300/serial.h
rename to arch/mn10300/include/asm/serial.h
index 99785a9deadbb2600f04c56f4d0b6a4b216a49d8..a29445cddd6fc559f631ba9a571aa4fcbbd0dde6 100644
--- a/include/asm-mn10300/serial.h
+++ b/arch/mn10300/include/asm/serial.h
@@ -33,4 +33,4 @@
 #define RS_TABLE_SIZE
 #endif
 
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
diff --git a/include/asm-mn10300/setup.h b/arch/mn10300/include/asm/setup.h
similarity index 100%
rename from include/asm-mn10300/setup.h
rename to arch/mn10300/include/asm/setup.h
diff --git a/include/asm-mn10300/shmbuf.h b/arch/mn10300/include/asm/shmbuf.h
similarity index 100%
rename from include/asm-mn10300/shmbuf.h
rename to arch/mn10300/include/asm/shmbuf.h
diff --git a/include/asm-mn10300/shmparam.h b/arch/mn10300/include/asm/shmparam.h
similarity index 100%
rename from include/asm-mn10300/shmparam.h
rename to arch/mn10300/include/asm/shmparam.h
diff --git a/include/asm-mn10300/sigcontext.h b/arch/mn10300/include/asm/sigcontext.h
similarity index 100%
rename from include/asm-mn10300/sigcontext.h
rename to arch/mn10300/include/asm/sigcontext.h
diff --git a/include/asm-mn10300/siginfo.h b/arch/mn10300/include/asm/siginfo.h
similarity index 100%
rename from include/asm-mn10300/siginfo.h
rename to arch/mn10300/include/asm/siginfo.h
diff --git a/include/asm-mn10300/signal.h b/arch/mn10300/include/asm/signal.h
similarity index 100%
rename from include/asm-mn10300/signal.h
rename to arch/mn10300/include/asm/signal.h
diff --git a/include/asm-mn10300/smp.h b/arch/mn10300/include/asm/smp.h
similarity index 100%
rename from include/asm-mn10300/smp.h
rename to arch/mn10300/include/asm/smp.h
diff --git a/include/asm-mn10300/socket.h b/arch/mn10300/include/asm/socket.h
similarity index 100%
rename from include/asm-mn10300/socket.h
rename to arch/mn10300/include/asm/socket.h
diff --git a/include/asm-mn10300/sockios.h b/arch/mn10300/include/asm/sockios.h
similarity index 100%
rename from include/asm-mn10300/sockios.h
rename to arch/mn10300/include/asm/sockios.h
diff --git a/include/asm-mn10300/spinlock.h b/arch/mn10300/include/asm/spinlock.h
similarity index 100%
rename from include/asm-mn10300/spinlock.h
rename to arch/mn10300/include/asm/spinlock.h
diff --git a/include/asm-mn10300/stat.h b/arch/mn10300/include/asm/stat.h
similarity index 100%
rename from include/asm-mn10300/stat.h
rename to arch/mn10300/include/asm/stat.h
diff --git a/include/asm-mn10300/statfs.h b/arch/mn10300/include/asm/statfs.h
similarity index 100%
rename from include/asm-mn10300/statfs.h
rename to arch/mn10300/include/asm/statfs.h
diff --git a/include/asm-mn10300/string.h b/arch/mn10300/include/asm/string.h
similarity index 100%
rename from include/asm-mn10300/string.h
rename to arch/mn10300/include/asm/string.h
diff --git a/include/asm-mn10300/swab.h b/arch/mn10300/include/asm/swab.h
similarity index 100%
rename from include/asm-mn10300/swab.h
rename to arch/mn10300/include/asm/swab.h
diff --git a/include/asm-mn10300/system.h b/arch/mn10300/include/asm/system.h
similarity index 100%
rename from include/asm-mn10300/system.h
rename to arch/mn10300/include/asm/system.h
diff --git a/include/asm-mn10300/termbits.h b/arch/mn10300/include/asm/termbits.h
similarity index 100%
rename from include/asm-mn10300/termbits.h
rename to arch/mn10300/include/asm/termbits.h
diff --git a/include/asm-mn10300/termios.h b/arch/mn10300/include/asm/termios.h
similarity index 100%
rename from include/asm-mn10300/termios.h
rename to arch/mn10300/include/asm/termios.h
diff --git a/include/asm-mn10300/thread_info.h b/arch/mn10300/include/asm/thread_info.h
similarity index 100%
rename from include/asm-mn10300/thread_info.h
rename to arch/mn10300/include/asm/thread_info.h
diff --git a/include/asm-mn10300/timer-regs.h b/arch/mn10300/include/asm/timer-regs.h
similarity index 100%
rename from include/asm-mn10300/timer-regs.h
rename to arch/mn10300/include/asm/timer-regs.h
diff --git a/include/asm-mn10300/timex.h b/arch/mn10300/include/asm/timex.h
similarity index 96%
rename from include/asm-mn10300/timex.h
rename to arch/mn10300/include/asm/timex.h
index 3944277dab67f48654d12d7f52b206f73a29322c..8d031f9e117d7db554bf3802cd357d36bbbb110b 100644
--- a/include/asm-mn10300/timex.h
+++ b/arch/mn10300/include/asm/timex.h
@@ -12,7 +12,7 @@
 #define _ASM_TIMEX_H
 
 #include <asm/hardirq.h>
-#include <asm/unit/timex.h>
+#include <unit/timex.h>
 
 #define TICK_SIZE (tick_nsec / 1000)
 
diff --git a/include/asm-mn10300/tlb.h b/arch/mn10300/include/asm/tlb.h
similarity index 100%
rename from include/asm-mn10300/tlb.h
rename to arch/mn10300/include/asm/tlb.h
diff --git a/include/asm-mn10300/tlbflush.h b/arch/mn10300/include/asm/tlbflush.h
similarity index 100%
rename from include/asm-mn10300/tlbflush.h
rename to arch/mn10300/include/asm/tlbflush.h
diff --git a/include/asm-mn10300/topology.h b/arch/mn10300/include/asm/topology.h
similarity index 100%
rename from include/asm-mn10300/topology.h
rename to arch/mn10300/include/asm/topology.h
diff --git a/include/asm-mn10300/types.h b/arch/mn10300/include/asm/types.h
similarity index 100%
rename from include/asm-mn10300/types.h
rename to arch/mn10300/include/asm/types.h
diff --git a/include/asm-mn10300/uaccess.h b/arch/mn10300/include/asm/uaccess.h
similarity index 100%
rename from include/asm-mn10300/uaccess.h
rename to arch/mn10300/include/asm/uaccess.h
diff --git a/include/asm-mn10300/ucontext.h b/arch/mn10300/include/asm/ucontext.h
similarity index 100%
rename from include/asm-mn10300/ucontext.h
rename to arch/mn10300/include/asm/ucontext.h
diff --git a/include/asm-mn10300/unaligned.h b/arch/mn10300/include/asm/unaligned.h
similarity index 100%
rename from include/asm-mn10300/unaligned.h
rename to arch/mn10300/include/asm/unaligned.h
diff --git a/include/asm-mn10300/unistd.h b/arch/mn10300/include/asm/unistd.h
similarity index 100%
rename from include/asm-mn10300/unistd.h
rename to arch/mn10300/include/asm/unistd.h
diff --git a/include/asm-mn10300/user.h b/arch/mn10300/include/asm/user.h
similarity index 100%
rename from include/asm-mn10300/user.h
rename to arch/mn10300/include/asm/user.h
diff --git a/include/asm-mn10300/vga.h b/arch/mn10300/include/asm/vga.h
similarity index 100%
rename from include/asm-mn10300/vga.h
rename to arch/mn10300/include/asm/vga.h
diff --git a/include/asm-mn10300/xor.h b/arch/mn10300/include/asm/xor.h
similarity index 100%
rename from include/asm-mn10300/xor.h
rename to arch/mn10300/include/asm/xor.h
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index ceeaaaa359e231431838c003c5d8cc20f56f7918..34ab5a293153b2eb8637d738faa880dde2a5aeea 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -20,7 +20,7 @@
 #include <asm/intctl-regs.h>
 #include <asm/busctl-regs.h>
 #include <asm/timer-regs.h>
-#include <asm/unit/leds.h>
+#include <unit/leds.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/errno.h>
diff --git a/arch/mn10300/kernel/gdb-io-serial-low.S b/arch/mn10300/kernel/gdb-io-serial-low.S
index c68dcd05220101e91877c05f6825386824bf4b4b..4998b24f5d3a4e2081e3983b3b0e43cdf86bc670 100644
--- a/arch/mn10300/kernel/gdb-io-serial-low.S
+++ b/arch/mn10300/kernel/gdb-io-serial-low.S
@@ -18,7 +18,7 @@
 #include <asm/thread_info.h>
 #include <asm/frame.inc>
 #include <asm/intctl-regs.h>
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
 
 	.text
 
diff --git a/arch/mn10300/kernel/gdb-io-serial.c b/arch/mn10300/kernel/gdb-io-serial.c
index 11584c51acd93669dfe587cd2983ca81663397b5..ae663dc717e94ab807fbeb3169955e8fbaebd04b 100644
--- a/arch/mn10300/kernel/gdb-io-serial.c
+++ b/arch/mn10300/kernel/gdb-io-serial.c
@@ -22,7 +22,7 @@
 #include <asm/gdb-stub.h>
 #include <asm/exceptions.h>
 #include <asm/serial-regs.h>
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
 
 /*
  * initialise the GDB stub
diff --git a/arch/mn10300/kernel/gdb-io-ttysm-low.S b/arch/mn10300/kernel/gdb-io-ttysm-low.S
index 677c7876307ca1abdc2a6dedbe829882894bc599..060b7cca735ddb70291d10d116668a3000a85de7 100644
--- a/arch/mn10300/kernel/gdb-io-ttysm-low.S
+++ b/arch/mn10300/kernel/gdb-io-ttysm-low.S
@@ -18,7 +18,7 @@
 #include <asm/cpu-regs.h>
 #include <asm/frame.inc>
 #include <asm/intctl-regs.h>
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
 #include "mn10300-serial.h"
 
 	.text
diff --git a/arch/mn10300/kernel/gdb-io-ttysm.c b/arch/mn10300/kernel/gdb-io-ttysm.c
index e94c25e8ca058e47d077060a76c3d12c7db7e910..a560bbc3137d3c93fd2a14eddbb79ed5b8abc23f 100644
--- a/arch/mn10300/kernel/gdb-io-ttysm.c
+++ b/arch/mn10300/kernel/gdb-io-ttysm.c
@@ -20,7 +20,7 @@
 #include <asm/system.h>
 #include <asm/gdb-stub.h>
 #include <asm/exceptions.h>
-#include <asm/unit/clock.h>
+#include <unit/clock.h>
 #include "mn10300-serial.h"
 
 #if defined(CONFIG_GDBSTUB_ON_TTYSM0)
diff --git a/arch/mn10300/kernel/gdb-stub.c b/arch/mn10300/kernel/gdb-stub.c
index 0ea7482c1522712d73af221a199f8fa7c0b78738..41b11706c8ed1ee70f0742bec2d9ac301187aea1 100644
--- a/arch/mn10300/kernel/gdb-stub.c
+++ b/arch/mn10300/kernel/gdb-stub.c
@@ -136,8 +136,8 @@
 #include <asm/cacheflush.h>
 #include <asm/serial-regs.h>
 #include <asm/busctl-regs.h>
-#include <asm/unit/leds.h>
-#include <asm/unit/serial.h>
+#include <unit/leds.h>
+#include <unit/serial.h>
 
 /* define to use F7F7 rather than FF which is subverted by JTAG debugger */
 #undef GDBSTUB_USE_F7F7_AS_BREAKPOINT
diff --git a/arch/mn10300/kernel/head.S b/arch/mn10300/kernel/head.S
index 606bd8c6758d011be7ba26039f4039728a095e30..8a8309fbe3c4de9db158920e472ec9a68df7527a 100644
--- a/arch/mn10300/kernel/head.S
+++ b/arch/mn10300/kernel/head.S
@@ -17,7 +17,7 @@
 #include <asm/pgtable.h>
 #include <asm/frame.inc>
 #include <asm/param.h>
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
 
 	.section .text.head,"ax"
 
diff --git a/arch/mn10300/kernel/mn10300-serial-low.S b/arch/mn10300/kernel/mn10300-serial-low.S
index ef3f4c1df2a4cb88fab88a56225f295a751dc0c5..2244853882283a1070e844e8a8ddc088af19e632 100644
--- a/arch/mn10300/kernel/mn10300-serial-low.S
+++ b/arch/mn10300/kernel/mn10300-serial-low.S
@@ -18,8 +18,8 @@
 #include <asm/cpu-regs.h>
 #include <asm/frame.inc>
 #include <asm/timer-regs.h>
-#include <asm/proc/cache.h>
-#include <asm/unit/timex.h>
+#include <proc/cache.h>
+#include <unit/timex.h>
 #include "mn10300-serial.h"
 
 #define	SCxCTR	0x00
diff --git a/arch/mn10300/kernel/mn10300-serial.c b/arch/mn10300/kernel/mn10300-serial.c
index 59b9c4bf9583a67e8e1467576d6e7fc49125eca7..2fd59664d00ab1b60cd782ab31d4647a559387d6 100644
--- a/arch/mn10300/kernel/mn10300-serial.c
+++ b/arch/mn10300/kernel/mn10300-serial.c
@@ -41,7 +41,7 @@ static const char serial_revdate[] = "2007-11-06";
 #include <asm/irq.h>
 #include <asm/bitops.h>
 #include <asm/serial-regs.h>
-#include <asm/unit/timex.h>
+#include <unit/timex.h>
 #include "mn10300-serial.h"
 
 static inline __attribute__((format(printf, 1, 2)))
diff --git a/arch/mn10300/kernel/mn10300-watchdog.c b/arch/mn10300/kernel/mn10300-watchdog.c
index 2e370d88a87a22d7302f6dd386bf85a7dbe2ae97..f362d9d138f1ad90012d5fa5e69f1f8b387dbcba 100644
--- a/arch/mn10300/kernel/mn10300-watchdog.c
+++ b/arch/mn10300/kernel/mn10300-watchdog.c
@@ -25,7 +25,7 @@
 #include <asm/div64.h>
 #include <asm/smp.h>
 #include <asm/gdb-stub.h>
-#include <asm/proc/clock.h>
+#include <proc/clock.h>
 
 static DEFINE_SPINLOCK(watchdog_print_lock);
 static unsigned int watchdog;
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c
index e1d88ab51008896ce6fa423d6e8e1fd1ce5b3672..71414e19fd166441198cd789feaddcbb47c6961a 100644
--- a/arch/mn10300/kernel/setup.c
+++ b/arch/mn10300/kernel/setup.c
@@ -30,7 +30,7 @@
 #include <asm/setup.h>
 #include <asm/io.h>
 #include <asm/smp.h>
-#include <asm/proc/proc.h>
+#include <proc/proc.h>
 #include <asm/busctl-regs.h>
 #include <asm/fpu.h>
 #include <asm/sections.h>
diff --git a/arch/mn10300/kernel/traps.c b/arch/mn10300/kernel/traps.c
index fcb9a03d46a8a33212b852354b9928b9c575a6e0..681ad8c9e4fb68b59eebd992a7ee32f8be747e18 100644
--- a/arch/mn10300/kernel/traps.c
+++ b/arch/mn10300/kernel/traps.c
@@ -37,7 +37,7 @@
 #include <asm/cacheflush.h>
 #include <asm/cpu-regs.h>
 #include <asm/busctl-regs.h>
-#include <asm/unit/leds.h>
+#include <unit/leds.h>
 #include <asm/fpu.h>
 #include <asm/gdb-stub.h>
 #include <asm/sections.h>
diff --git a/include/asm-mn10300/proc-mn103e010/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
similarity index 100%
rename from include/asm-mn10300/proc-mn103e010/cache.h
rename to arch/mn10300/proc-mn103e010/include/proc/cache.h
diff --git a/include/asm-mn10300/proc-mn103e010/clock.h b/arch/mn10300/proc-mn103e010/include/proc/clock.h
similarity index 94%
rename from include/asm-mn10300/proc-mn103e010/clock.h
rename to arch/mn10300/proc-mn103e010/include/proc/clock.h
index caf9983506338882d943768f87a348861bd29775..aa23e147d620f3d1d3b3fbce9641862d2dcb7e95 100644
--- a/include/asm-mn10300/proc-mn103e010/clock.h
+++ b/arch/mn10300/proc-mn103e010/include/proc/clock.h
@@ -11,7 +11,7 @@
 #ifndef _ASM_PROC_CLOCK_H
 #define _ASM_PROC_CLOCK_H
 
-#include <asm/unit/clock.h>
+#include <unit/clock.h>
 
 #define MN10300_WDCLK		MN10300_IOCLK
 
diff --git a/include/asm-mn10300/proc-mn103e010/irq.h b/arch/mn10300/proc-mn103e010/include/proc/irq.h
similarity index 100%
rename from include/asm-mn10300/proc-mn103e010/irq.h
rename to arch/mn10300/proc-mn103e010/include/proc/irq.h
diff --git a/include/asm-mn10300/proc-mn103e010/proc.h b/arch/mn10300/proc-mn103e010/include/proc/proc.h
similarity index 100%
rename from include/asm-mn10300/proc-mn103e010/proc.h
rename to arch/mn10300/proc-mn103e010/include/proc/proc.h
diff --git a/include/asm-mn10300/unit-asb2303/clock.h b/arch/mn10300/unit-asb2303/include/unit/clock.h
similarity index 100%
rename from include/asm-mn10300/unit-asb2303/clock.h
rename to arch/mn10300/unit-asb2303/include/unit/clock.h
diff --git a/include/asm-mn10300/unit-asb2303/leds.h b/arch/mn10300/unit-asb2303/include/unit/leds.h
similarity index 100%
rename from include/asm-mn10300/unit-asb2303/leds.h
rename to arch/mn10300/unit-asb2303/include/unit/leds.h
diff --git a/include/asm-mn10300/unit-asb2303/serial.h b/arch/mn10300/unit-asb2303/include/unit/serial.h
similarity index 99%
rename from include/asm-mn10300/unit-asb2303/serial.h
rename to arch/mn10300/unit-asb2303/include/unit/serial.h
index 0d55cf5896ac3912bfeee4bb479b0951e9c4a804..047566cd2e36d2677b33803c13384f906f17c0b7 100644
--- a/include/asm-mn10300/unit-asb2303/serial.h
+++ b/arch/mn10300/unit-asb2303/include/unit/serial.h
@@ -13,7 +13,7 @@
 #define _ASM_UNIT_SERIAL_H
 
 #include <asm/cpu-regs.h>
-#include <asm/proc/irq.h>
+#include <proc/irq.h>
 #include <linux/serial_reg.h>
 
 #define SERIAL_PORT0_BASE_ADDRESS	0xA6FB0000
diff --git a/include/asm-mn10300/unit-asb2303/smc91111.h b/arch/mn10300/unit-asb2303/include/unit/smc91111.h
similarity index 100%
rename from include/asm-mn10300/unit-asb2303/smc91111.h
rename to arch/mn10300/unit-asb2303/include/unit/smc91111.h
diff --git a/include/asm-mn10300/unit-asb2303/timex.h b/arch/mn10300/unit-asb2303/include/unit/timex.h
similarity index 98%
rename from include/asm-mn10300/unit-asb2303/timex.h
rename to arch/mn10300/unit-asb2303/include/unit/timex.h
index 7e54b0cfdd0371d225d3ce639bb4fe7b0b660df4..f206b63c95b4f282114315870d12458a19c6a700 100644
--- a/include/asm-mn10300/unit-asb2303/timex.h
+++ b/arch/mn10300/unit-asb2303/include/unit/timex.h
@@ -16,7 +16,7 @@
 #endif /* __ASSEMBLY__ */
 
 #include <asm/timer-regs.h>
-#include <asm/unit/clock.h>
+#include <unit/clock.h>
 
 /*
  * jiffies counter specifications
diff --git a/arch/mn10300/unit-asb2303/leds.c b/arch/mn10300/unit-asb2303/leds.c
index cd4bc78ccfc819f83ebac006d67b93f25cb1ca08..c03839357a140e67ede804f1da357a5f7d0f42a0 100644
--- a/arch/mn10300/unit-asb2303/leds.c
+++ b/arch/mn10300/unit-asb2303/leds.c
@@ -16,7 +16,7 @@
 #include <asm/processor.h>
 #include <asm/intctl-regs.h>
 #include <asm/rtc-regs.h>
-#include <asm/unit/leds.h>
+#include <unit/leds.h>
 
 #if 0
 static const u8 asb2303_led_hex_tbl[16] = {
diff --git a/arch/mn10300/unit-asb2303/smc91111.c b/arch/mn10300/unit-asb2303/smc91111.c
index 30875dd65631859bc79e5aecd45801f4e3510138..43c246439413b8c5f70d9b50d79b733443e42882 100644
--- a/arch/mn10300/unit-asb2303/smc91111.c
+++ b/arch/mn10300/unit-asb2303/smc91111.c
@@ -18,7 +18,7 @@
 #include <asm/timex.h>
 #include <asm/processor.h>
 #include <asm/intctl-regs.h>
-#include <asm/unit/smc91111.h>
+#include <unit/smc91111.h>
 
 static struct resource smc91c111_resources[] = {
 	[0] = {
diff --git a/include/asm-mn10300/unit-asb2305/clock.h b/arch/mn10300/unit-asb2305/include/unit/clock.h
similarity index 100%
rename from include/asm-mn10300/unit-asb2305/clock.h
rename to arch/mn10300/unit-asb2305/include/unit/clock.h
diff --git a/include/asm-mn10300/unit-asb2305/leds.h b/arch/mn10300/unit-asb2305/include/unit/leds.h
similarity index 100%
rename from include/asm-mn10300/unit-asb2305/leds.h
rename to arch/mn10300/unit-asb2305/include/unit/leds.h
diff --git a/include/asm-mn10300/unit-asb2305/serial.h b/arch/mn10300/unit-asb2305/include/unit/serial.h
similarity index 99%
rename from include/asm-mn10300/unit-asb2305/serial.h
rename to arch/mn10300/unit-asb2305/include/unit/serial.h
index 73d31d67bb71f199903bf1f7285751c0b164cf12..3bfc909387873d0586a34a4a1a38541e83eb5dd5 100644
--- a/include/asm-mn10300/unit-asb2305/serial.h
+++ b/arch/mn10300/unit-asb2305/include/unit/serial.h
@@ -12,7 +12,7 @@
 #define _ASM_UNIT_SERIAL_H
 
 #include <asm/cpu/cpu-regs.h>
-#include <asm/proc/irq.h>
+#include <proc/irq.h>
 #include <linux/serial_reg.h>
 
 #define SERIAL_PORT0_BASE_ADDRESS	0xA6FB0000
diff --git a/include/asm-mn10300/unit-asb2305/timex.h b/arch/mn10300/unit-asb2305/include/unit/timex.h
similarity index 98%
rename from include/asm-mn10300/unit-asb2305/timex.h
rename to arch/mn10300/unit-asb2305/include/unit/timex.h
index 10e1bfe344632ee8e03de981bf9b68bbab34a233..a71c49aa85ebff419664b4db389788b8be5ad94f 100644
--- a/include/asm-mn10300/unit-asb2305/timex.h
+++ b/arch/mn10300/unit-asb2305/include/unit/timex.h
@@ -16,7 +16,7 @@
 #endif /* __ASSEMBLY__ */
 
 #include <asm/cpu/timer-regs.h>
-#include <asm/unit/clock.h>
+#include <unit/clock.h>
 
 /*
  * jiffies counter specifications
diff --git a/arch/mn10300/unit-asb2305/leds.c b/arch/mn10300/unit-asb2305/leds.c
index e99dcc9cee1ad072de134f02fe691377b9051df2..d345ff9042d5943853769b581af0301b7ae7936f 100644
--- a/arch/mn10300/unit-asb2305/leds.c
+++ b/arch/mn10300/unit-asb2305/leds.c
@@ -15,7 +15,7 @@
 #include <asm/processor.h>
 #include <asm/cpu/intctl-regs.h>
 #include <asm/cpu/rtc-regs.h>
-#include <asm/unit/leds.h>
+#include <unit/leds.h>
 
 static const u8 asb2305_led_hex_tbl[16] = {
 	0x80, 0xf2, 0x48, 0x60, 0x32, 0x24, 0x04, 0xf0,
diff --git a/arch/mn10300/unit-asb2305/unit-init.c b/arch/mn10300/unit-asb2305/unit-init.c
index 72812a9439ac0d26ea30f4cf2fc62099efc3735c..1c452cc3f6e99c783dd108df11e80ebabd3af4fc 100644
--- a/arch/mn10300/unit-asb2305/unit-init.c
+++ b/arch/mn10300/unit-asb2305/unit-init.c
@@ -18,7 +18,7 @@
 #include <asm/cpu/intctl-regs.h>
 #include <asm/cpu/rtc-regs.h>
 #include <asm/cpu/serial-regs.h>
-#include <asm/unit/serial.h>
+#include <unit/serial.h>
 
 /*
  * initialise some of the unit hardware before gdbstub is set up
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 912308eec8657ed9db7528dff8cb69f37c2f3772..329f890e2903075c23cea798acbb5f79e3f12196 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -369,7 +369,7 @@ static inline void LPD7_SMC_outsw (unsigned char* a, int r,
  * MN10300/AM33 configuration
  */
 
-#include <asm/unit/smc91111.h>
+#include <unit/smc91111.h>
 
 #else