diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c
index 66fe6fdf05029dab7a5a53e7430ecdbd16519b77..edddd559be0264c53f5a6477436081828f22fca5 100644
--- a/arch/arm/mach-sa1100/shannon.c
+++ b/arch/arm/mach-sa1100/shannon.c
@@ -2,15 +2,17 @@
  * linux/arch/arm/mach-sa1100/shannon.c
  */
 
+#include <linux/config.h>
 #include <linux/init.h>
+#include <linux/device.h>
 #include <linux/kernel.h>
 #include <linux/tty.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 
 #include <asm/hardware.h>
+#include <asm/mach-types.h>
 #include <asm/setup.h>
-#include <asm/irq.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/flash.h>
@@ -52,7 +54,7 @@ static struct resource shannon_flash_resource = {
 
 static void __init shannon_init(void)
 {
-	sa11x0_set_flash_data(&shannon_flash_data, shannon_flash_resource, 1);
+	sa11x0_set_flash_data(&shannon_flash_data, &shannon_flash_resource, 1);
 }
 
 static void __init shannon_map_io(void)