Commit 1a51a0ce174ddc0b0c11b6a0dbd179d95020e80b

Authored by Ohad Ben-Cohen
Committed by Joerg Roedel
1 parent f93ea73387

ARM: OMAP3: fix build on !CONFIG_IOMMU_API

omap3isp depends on CONFIG_IOMMU_API, so avoid registering its
device (and defining its configuration structs) on !CONFIG_IOMMU_API.

This is generally nice to have, but more importantly, it fixes:

arch/arm/plat-omap/include/plat/iommu.h: In function 'dev_to_omap_iommu':
arch/arm/plat-omap/include/plat/iommu.h:135: error: 'struct
dev_archdata' has no member named 'iommu'
arch/arm/mach-omap2/devices.c: In function 'omap3_init_camera':
arch/arm/mach-omap2/devices.c:222: error: 'struct dev_archdata' has no
member named 'iommu'
make[1]: *** [arch/arm/mach-omap2/devices.o] Error 1
make: *** [arch/arm/mach-omap2] Error 2

Which happens because while setting up the omap3isp device we try
to access the (now nonexistent) iommu member of dev_archdata.

Compile tested with omap2plus_defconfig on today's:

commit e343a895a9f342f239c5e3c5ffc6c0b1707e6244
Merge: 06792c4 193a667
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jan 10 18:04:27 2012 -0800

    Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

Reported-by: Govindraj Raja <govindraj.raja@ti.com>
Reported-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Joerg Roedel <Joerg.Roedel@amd.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>

Showing 1 changed file with 13 additions and 1 deletions Side-by-side Diff

arch/arm/mach-omap2/devices.c
... ... @@ -28,7 +28,6 @@
28 28 #include <plat/board.h>
29 29 #include <plat/mcbsp.h>
30 30 #include <plat/mmc.h>
31   -#include <plat/iommu.h>
32 31 #include <plat/dma.h>
33 32 #include <plat/omap_hwmod.h>
34 33 #include <plat/omap_device.h>
... ... @@ -128,6 +127,10 @@
128 127 };
129 128 #endif
130 129  
  130 +#if defined(CONFIG_IOMMU_API)
  131 +
  132 +#include <plat/iommu.h>
  133 +
131 134 static struct resource omap3isp_resources[] = {
132 135 {
133 136 .start = OMAP3430_ISP_BASE,
... ... @@ -223,6 +226,15 @@
223 226  
224 227 return platform_device_register(&omap3isp_device);
225 228 }
  229 +
  230 +#else /* !CONFIG_IOMMU_API */
  231 +
  232 +int omap3_init_camera(struct isp_platform_data *pdata)
  233 +{
  234 + return 0;
  235 +}
  236 +
  237 +#endif
226 238  
227 239 static inline void omap_init_camera(void)
228 240 {