From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Mauro Carvalho Chehab <mchehab@infradead.org>,
Hans Verkuil <hans.verkuil@cisco.com>,
Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Benjamin Gaignard <benjamin.gaignard@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Subject: Re: [PATCH 02/16] media: omap3isp: allow it to build with COMPILE_TEST
Date: Mon, 9 Apr 2018 06:48:01 -0300 [thread overview]
Message-ID: <20180409064801.335def4f@vento.lan> (raw)
In-Reply-To: <CAK8P3a0_AQaYFyUog0sV9hjq6yOzohnCbD9=AK-HGxWt-P_hEA@mail.gmail.com>
HI Arnd,
Em Mon, 9 Apr 2018 10:50:13 +0200
Arnd Bergmann <arnd@arndb.de> escreveu:
> >> > That hardly seems to be an arch-specific iommu solution, but, instead, some
> >> > hack used by only three drivers or some legacy iommu binding.
> >>
> >> It's more complex than that. There are multiple IOMMU-related APIs on ARM, so
> >> more recent than others, with different feature sets. While I agree that
> >> drivers should move away from arm_iommu_create_mapping(), doing so requires
> >> coordination between the IOMMU driver and the bus master driver (for instance
> >> the omap3isp driver). It's not a trivial matter, but I'd love if someone
> >> submitted patches :-)
> >
> > If someone steps up to do that, it would be really helpful, but we
> > should not trust that this will happen. OMAP3 is an old hardware,
> > and not many developers are working on improving its support.
>
> Considering its age, I still see a lot of changes on the arch/arm side of
> it, so I wouldn't give up the hope yet.
Yeah, someone might still work on such fix.
> > Arnd,
> >
> > What do you think?
>
> I think including a foreign architecture header is worse than your
> earlier patch, I'd rather see a local hack in the driver.
>
> I haven't tried it, but how about something simpler like what
> I have below.
Actually, another #ifdef was needed, before include arch-specifi
header :-)
>
> Arnd
>
> (in case it works and you want to pick it up with a proper
> changelog):
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Sounds a reasonable approach. Instead of using CONFIG_ARM, I would,
instead check for CONFIG_ARM_DMA_USE_IOMMU, with is the actual
dependency for such code, as otherwise it could cause some
compilation breakages on ARM with COMPILE_TEST and some randconfig.
An advantage is that it properly annotates the part of the code
that depends on ARM_DMA_USE_IOMMU.
Thanks,
Mauro
From: Arnd Bergmann <arnd@arndb.de>
media: omap3isp: allow it to build with COMPILE_TEST
There aren't much things required for it to build with COMPILE_TEST.
It just needs to not compile the code that depends on arm-specific
iommu implementation.
Co-developed-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index 1ee915b794c0..2757b621091c 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -63,12 +63,10 @@ config VIDEO_MUX
config VIDEO_OMAP3
tristate "OMAP 3 Camera support"
depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
- depends on ARCH_OMAP3 || COMPILE_TEST
- depends on ARM
+ depends on ((ARCH_OMAP3 && OMAP_IOMMU) || COMPILE_TEST)
depends on COMMON_CLK
depends on HAS_DMA && OF
- depends on OMAP_IOMMU
- select ARM_DMA_USE_IOMMU
+ select ARM_DMA_USE_IOMMU if OMAP_IOMMU
select VIDEOBUF2_DMA_CONTIG
select MFD_SYSCON
select V4L2_FWNODE
diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
index 16c50099cccd..b8c8761a76b6 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -61,7 +61,9 @@
#include <linux/sched.h>
#include <linux/vmalloc.h>
+#ifdef CONFIG_ARM_DMA_USE_IOMMU
#include <asm/dma-iommu.h>
+#endif
#include <media/v4l2-common.h>
#include <media/v4l2-fwnode.h>
@@ -1938,12 +1940,15 @@ static int isp_initialize_modules(struct isp_device *isp)
static void isp_detach_iommu(struct isp_device *isp)
{
+#ifdef CONFIG_ARM_DMA_USE_IOMMU
arm_iommu_release_mapping(isp->mapping);
isp->mapping = NULL;
+#endif
}
static int isp_attach_iommu(struct isp_device *isp)
{
+#ifdef CONFIG_ARM_DMA_USE_IOMMU
struct dma_iommu_mapping *mapping;
int ret;
@@ -1972,6 +1977,9 @@ static int isp_attach_iommu(struct isp_device *isp)
error:
isp_detach_iommu(isp);
return ret;
+#else
+ return -ENODEV;
+#endif
}
/*
next prev parent reply other threads:[~2018-04-09 9:48 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-05 17:54 [PATCH 00/16] Make all drivers under drivers/media to build with COMPILE_TEST Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 01/16] omap: omap-iommu.h: allow building drivers " Mauro Carvalho Chehab
2018-04-08 10:12 ` Matthias Schwarzott
2018-04-17 8:52 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 02/16] media: omap3isp: allow it to build " Mauro Carvalho Chehab
2018-04-05 18:30 ` Laurent Pinchart
2018-04-05 19:44 ` Mauro Carvalho Chehab
2018-04-07 11:56 ` Laurent Pinchart
2018-04-07 13:14 ` Mauro Carvalho Chehab
2018-04-09 8:50 ` Arnd Bergmann
2018-04-09 9:48 ` Mauro Carvalho Chehab [this message]
2018-04-07 5:23 ` kbuild test robot
2018-04-05 17:54 ` [PATCH 03/16] media: omap3isp/isp: remove an unused static var Mauro Carvalho Chehab
2018-04-05 18:34 ` Laurent Pinchart
2018-04-05 17:54 ` [PATCH 04/16] media: fsl-viu: mark static functions as such Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 05/16] media: fsl-viu: allow building it with COMPILE_TEST Mauro Carvalho Chehab
2018-04-05 21:35 ` Arnd Bergmann
2018-04-06 9:47 ` Mauro Carvalho Chehab
2018-04-06 9:51 ` Arnd Bergmann
2018-04-06 14:15 ` Mauro Carvalho Chehab
2018-04-06 14:16 ` Arnd Bergmann
2018-04-06 14:26 ` Mauro Carvalho Chehab
2018-04-06 14:37 ` Arnd Bergmann
2018-04-06 14:47 ` Mauro Carvalho Chehab
2018-04-06 19:15 ` kbuild test robot
2018-04-05 17:54 ` [PATCH 06/16] media: cec_gpio: allow building CEC_GPIO " Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 07/16] media: exymos4-is: allow compile test for EXYNOS FIMC-LITE Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-09 9:49 ` Sylwester Nawrocki
2018-04-09 9:49 ` Sylwester Nawrocki
2018-04-05 17:54 ` [PATCH 08/16] media: mmp-camera.h: add missing platform data Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 09/16] media: marvel-ccic: re-enable mmp-driver build Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 10/16] media: mmp-driver: make two functions static Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 11/16] media: davinci: allow building isif code Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 12/16] media: davinci: allow build vpbe_display with COMPILE_TEST Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 13/16] media: vpbe_venc: don't store return codes if they won't be used Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 14/16] media: davinci: get rid of lots of kernel-doc warnings Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 15/16] media: omapfb_dss.h: add stubs to build with COMPILE_TEST Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` Mauro Carvalho Chehab
2018-04-05 18:41 ` Laurent Pinchart
2018-04-05 18:41 ` Laurent Pinchart
2018-04-05 18:41 ` Laurent Pinchart
2018-04-05 19:32 ` Mauro Carvalho Chehab
2018-04-05 19:32 ` Mauro Carvalho Chehab
2018-04-05 19:32 ` Mauro Carvalho Chehab
2018-04-05 17:54 ` [PATCH 16/16] media: omap: allow building it " Mauro Carvalho Chehab
2018-04-05 18:15 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180409064801.335def4f@vento.lan \
--to=mchehab@s-opensource.com \
--cc=arnd@arndb.de \
--cc=benjamin.gaignard@linaro.org \
--cc=hans.verkuil@cisco.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@infradead.org \
--cc=p.zabel@pengutronix.de \
--cc=ramesh.shanmugasundaram@bp.renesas.com \
--cc=stanimir.varbanov@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.