linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] iova: Allow compiling the library without IOMMU support
@ 2019-01-02 21:16 Sakari Ailus
  2019-01-02 22:52 ` Laurent Pinchart
  2019-01-11 11:27 ` Joerg Roedel
  0 siblings, 2 replies; 5+ messages in thread
From: Sakari Ailus @ 2019-01-02 21:16 UTC (permalink / raw)
  To: Joerg Roedel
  Cc: yong.zhi, iommu, linux-media, tfiga, rajmohan.mani, hans.verkuil,
	mchehab, laurent.pinchart, bingbu.cao, tian.shu.qiu

Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
the device's own virtual address space while not implementing the IOMMU
API. Currently the IOVA library is only compiled if the IOMMU support is
enabled, resulting into a failure during linking due to missing symbols.

Fix this by defining IOVA library Kconfig bits independently of IOMMU
support configuration, and descending to the iommu directory
unconditionally during the build.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/Makefile      | 2 +-
 drivers/iommu/Kconfig | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/Makefile b/drivers/Makefile
index 578f469f72fb..d9c469983592 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -56,7 +56,7 @@ obj-y				+= tty/
 obj-y				+= char/
 
 # iommu/ comes before gpu as gpu are using iommu controllers
-obj-$(CONFIG_IOMMU_SUPPORT)	+= iommu/
+obj-y				+= iommu/
 
 # gpu/ comes after char for AGP vs DRM startup and after iommu
 obj-y				+= gpu/
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index d9a25715650e..d2c83e62873d 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -1,3 +1,7 @@
+# The IOVA library may also be used by non-IOMMU_API users
+config IOMMU_IOVA
+	tristate
+
 # IOMMU_API always gets selected by whoever wants it.
 config IOMMU_API
 	bool
@@ -81,9 +85,6 @@ config IOMMU_DEFAULT_PASSTHROUGH
 
 	  If unsure, say N here.
 
-config IOMMU_IOVA
-	tristate
-
 config OF_IOMMU
        def_bool y
        depends on OF && IOMMU_API
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] iova: Allow compiling the library without IOMMU support
  2019-01-02 21:16 [PATCH 1/1] iova: Allow compiling the library without IOMMU support Sakari Ailus
@ 2019-01-02 22:52 ` Laurent Pinchart
  2019-01-03 20:11   ` Sakari Ailus
  2019-01-11 11:27 ` Joerg Roedel
  1 sibling, 1 reply; 5+ messages in thread
From: Laurent Pinchart @ 2019-01-02 22:52 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: Joerg Roedel, yong.zhi, iommu, linux-media, tfiga, rajmohan.mani,
	hans.verkuil, mchehab, bingbu.cao, tian.shu.qiu

Hi Sakari,

Thank you for the patch.

On Wednesday, 2 January 2019 23:16:57 EET Sakari Ailus wrote:
> Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
> the device's own virtual address space while not implementing the IOMMU
> API.

Why is that ? Could the IPU3 IOMMU be implemented as an IOMMU driver ?

> Currently the IOVA library is only compiled if the IOMMU support is
> enabled, resulting into a failure during linking due to missing symbols.
> 
> Fix this by defining IOVA library Kconfig bits independently of IOMMU
> support configuration, and descending to the iommu directory
> unconditionally during the build.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
>  drivers/Makefile      | 2 +-
>  drivers/iommu/Kconfig | 7 ++++---
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 578f469f72fb..d9c469983592 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -56,7 +56,7 @@ obj-y				+= tty/
>  obj-y				+= char/
> 
>  # iommu/ comes before gpu as gpu are using iommu controllers
> -obj-$(CONFIG_IOMMU_SUPPORT)	+= iommu/
> +obj-y				+= iommu/
> 
>  # gpu/ comes after char for AGP vs DRM startup and after iommu
>  obj-y				+= gpu/
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index d9a25715650e..d2c83e62873d 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -1,3 +1,7 @@
> +# The IOVA library may also be used by non-IOMMU_API users
> +config IOMMU_IOVA
> +	tristate
> +
>  # IOMMU_API always gets selected by whoever wants it.
>  config IOMMU_API
>  	bool
> @@ -81,9 +85,6 @@ config IOMMU_DEFAULT_PASSTHROUGH
> 
>  	  If unsure, say N here.
> 
> -config IOMMU_IOVA
> -	tristate
> -
>  config OF_IOMMU
>         def_bool y
>         depends on OF && IOMMU_API


-- 
Regards,

Laurent Pinchart




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] iova: Allow compiling the library without IOMMU support
  2019-01-02 22:52 ` Laurent Pinchart
@ 2019-01-03 20:11   ` Sakari Ailus
  2019-01-03 21:33     ` Aaron Sierra
  0 siblings, 1 reply; 5+ messages in thread
From: Sakari Ailus @ 2019-01-03 20:11 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Joerg Roedel, yong.zhi, iommu, linux-media, tfiga, rajmohan.mani,
	hans.verkuil, mchehab, bingbu.cao, tian.shu.qiu

Hi Laurent,

On Thu, Jan 03, 2019 at 12:52:00AM +0200, Laurent Pinchart wrote:
> Hi Sakari,
> 
> Thank you for the patch.
> 
> On Wednesday, 2 January 2019 23:16:57 EET Sakari Ailus wrote:
> > Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
> > the device's own virtual address space while not implementing the IOMMU
> > API.
> 
> Why is that ? Could the IPU3 IOMMU be implemented as an IOMMU driver ?

You could do that, but:

- it's a single PCI device so there's no advantage in doing so and

- doing that would render the device inoperable if an IOMMU is enabled in
  the system, as chaining IOMMUs is not supported in the IOMMU framework
  AFAIK.

> 
> > Currently the IOVA library is only compiled if the IOMMU support is
> > enabled, resulting into a failure during linking due to missing symbols.
> > 
> > Fix this by defining IOVA library Kconfig bits independently of IOMMU
> > support configuration, and descending to the iommu directory
> > unconditionally during the build.
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
> >  drivers/Makefile      | 2 +-
> >  drivers/iommu/Kconfig | 7 ++++---
> >  2 files changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/Makefile b/drivers/Makefile
> > index 578f469f72fb..d9c469983592 100644
> > --- a/drivers/Makefile
> > +++ b/drivers/Makefile
> > @@ -56,7 +56,7 @@ obj-y				+= tty/
> >  obj-y				+= char/
> > 
> >  # iommu/ comes before gpu as gpu are using iommu controllers
> > -obj-$(CONFIG_IOMMU_SUPPORT)	+= iommu/
> > +obj-y				+= iommu/
> > 
> >  # gpu/ comes after char for AGP vs DRM startup and after iommu
> >  obj-y				+= gpu/
> > diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> > index d9a25715650e..d2c83e62873d 100644
> > --- a/drivers/iommu/Kconfig
> > +++ b/drivers/iommu/Kconfig
> > @@ -1,3 +1,7 @@
> > +# The IOVA library may also be used by non-IOMMU_API users
> > +config IOMMU_IOVA
> > +	tristate
> > +
> >  # IOMMU_API always gets selected by whoever wants it.
> >  config IOMMU_API
> >  	bool
> > @@ -81,9 +85,6 @@ config IOMMU_DEFAULT_PASSTHROUGH
> > 
> >  	  If unsure, say N here.
> > 
> > -config IOMMU_IOVA
> > -	tristate
> > -
> >  config OF_IOMMU
> >         def_bool y
> >         depends on OF && IOMMU_API
> 
> 
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> 
> 

-- 
Sakari Ailus
sakari.ailus@linux.intel.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] iova: Allow compiling the library without IOMMU support
  2019-01-03 20:11   ` Sakari Ailus
@ 2019-01-03 21:33     ` Aaron Sierra
  0 siblings, 0 replies; 5+ messages in thread
From: Aaron Sierra @ 2019-01-03 21:33 UTC (permalink / raw)
  To: Sakari Ailus, Laurent Pinchart
  Cc: mchehab, iommu, hans verkuil, bingbu cao, rajmohan mani,
	yong zhi, tian shu qiu, linux-media

----- Original Message -----
> From: "Sakari Ailus" <sakari.ailus@linux.intel.com>
> Sent: Thursday, January 3, 2019 2:11:27 PM

Hi Laurent and Sakari,

I don't have much else to offer here, but wanted to second Sakari's
use case below.

> Hi Laurent,
> 
> On Thu, Jan 03, 2019 at 12:52:00AM +0200, Laurent Pinchart wrote:
>> Hi Sakari,
>> 
>> Thank you for the patch.
>> 
>> On Wednesday, 2 January 2019 23:16:57 EET Sakari Ailus wrote:
>> > Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
>> > the device's own virtual address space while not implementing the IOMMU
>> > API.
>> 
>> Why is that ? Could the IPU3 IOMMU be implemented as an IOMMU driver ?
> 
> You could do that, but:
> 
> - it's a single PCI device so there's no advantage in doing so and

I also use the IOVA library for a PCI device (PCIe-VME bridge) that has
IOMMU features, but isn't a general purpose IOMMU. I am eagerly following
along.

-Aaron

> - doing that would render the device inoperable if an IOMMU is enabled in
>  the system, as chaining IOMMUs is not supported in the IOMMU framework
>  AFAIK.
> 
>> 
>> > Currently the IOVA library is only compiled if the IOMMU support is
>> > enabled, resulting into a failure during linking due to missing symbols.
>> > 
>> > Fix this by defining IOVA library Kconfig bits independently of IOMMU
>> > support configuration, and descending to the iommu directory
>> > unconditionally during the build.
>> > 
>> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] iova: Allow compiling the library without IOMMU support
  2019-01-02 21:16 [PATCH 1/1] iova: Allow compiling the library without IOMMU support Sakari Ailus
  2019-01-02 22:52 ` Laurent Pinchart
@ 2019-01-11 11:27 ` Joerg Roedel
  1 sibling, 0 replies; 5+ messages in thread
From: Joerg Roedel @ 2019-01-11 11:27 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: yong.zhi, iommu, linux-media, tfiga, rajmohan.mani, hans.verkuil,
	mchehab, laurent.pinchart, bingbu.cao, tian.shu.qiu

On Wed, Jan 02, 2019 at 11:16:57PM +0200, Sakari Ailus wrote:
> Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
> the device's own virtual address space while not implementing the IOMMU
> API. Currently the IOVA library is only compiled if the IOMMU support is
> enabled, resulting into a failure during linking due to missing symbols.
> 
> Fix this by defining IOVA library Kconfig bits independently of IOMMU
> support configuration, and descending to the iommu directory
> unconditionally during the build.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-01-11 11:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-02 21:16 [PATCH 1/1] iova: Allow compiling the library without IOMMU support Sakari Ailus
2019-01-02 22:52 ` Laurent Pinchart
2019-01-03 20:11   ` Sakari Ailus
2019-01-03 21:33     ` Aaron Sierra
2019-01-11 11:27 ` Joerg Roedel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).