All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>,
	Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Matthias Brugger
	<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH 1/2] iommu/mediatek: select ARM_DMA_USE_IOMMU
Date: Mon, 29 Feb 2016 10:37:40 +0000	[thread overview]
Message-ID: <56D41F74.8010408@arm.com> (raw)
In-Reply-To: <1456737553-496245-1-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>

Hi Arnd,

On 29/02/16 09:19, Arnd Bergmann wrote:
> The newly added Mediatek IOMMU driver uses the IOMMU_DMA infrastructure,
> but unlike other such drivers, it does not select 'ARM_DMA_USE_IOMMU',
> which is a prerequisite, leading to a link error:
>
> warning: (MTK_IOMMU) selects IOMMU_DMA which has unmet direct dependencies (IOMMU_SUPPORT && NEED_SG_DMA_LENGTH)

Going off on a tangent, is it actually right for that to depend on a 
NEED_* symbol, or should that really be a select instead?

> drivers/iommu/built-in.o: In function `iommu_put_dma_cookie':
> mtk_iommu.c:(.text+0x11fe): undefined reference to `put_iova_domain'
> drivers/iommu/built-in.o: In function `iommu_dma_init_domain':
> mtk_iommu.c:(.text+0x1316): undefined reference to `init_iova_domain'
> drivers/iommu/built-in.o: In function `__iommu_dma_unmap':
> mtk_iommu.c:(.text+0x1380): undefined reference to `find_iova'
>
> This adds the same select that the other drivers have. On a related
> note, I wonder if we should just always select ARM_DMA_USE_IOMMU
> whenever any IOMMU driver is enabled. Are there any cases where
> we would enable an IOMMU but not use it?

You could use one solely for VFIO without caring about DMA ops - I think 
that's mostly how ARM SMMUs are being used in practice at the moment - 
but DMA-focused 'media' IOMMUs vastly outnumber 'virtualisation' IOMMUs 
on ARM, so it would probably make sense. We already have the equivalent 
"select IOMMU_DMA if IOMMU_SUPPORT" on arm64.

> Signed-off-by: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
> Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver")
> ---
>   drivers/iommu/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index b325954cf8f8..ea0998921702 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -341,6 +341,7 @@ config MTK_IOMMU
>   	bool "MTK IOMMU Support"
>   	depends on ARM || ARM64
>   	depends on ARCH_MEDIATEK || COMPILE_TEST
> +	select ARM_DMA_USE_IOMMU

If going down this route, I'd be inclined to add an "if ARM" there, just 
for clarity.

>   	select IOMMU_API
>   	select IOMMU_DMA

As above, this is already selected on arm64, and isn't used on 32-bit*, 
so could probably just be removed, especially if it leads to build issues.

Robin.

*yet, of course. I need to have a proper look over Marek's RFC ;)

>   	select IOMMU_IO_PGTABLE_ARMV7S
>

WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] iommu/mediatek: select ARM_DMA_USE_IOMMU
Date: Mon, 29 Feb 2016 10:37:40 +0000	[thread overview]
Message-ID: <56D41F74.8010408@arm.com> (raw)
In-Reply-To: <1456737553-496245-1-git-send-email-arnd@arndb.de>

Hi Arnd,

On 29/02/16 09:19, Arnd Bergmann wrote:
> The newly added Mediatek IOMMU driver uses the IOMMU_DMA infrastructure,
> but unlike other such drivers, it does not select 'ARM_DMA_USE_IOMMU',
> which is a prerequisite, leading to a link error:
>
> warning: (MTK_IOMMU) selects IOMMU_DMA which has unmet direct dependencies (IOMMU_SUPPORT && NEED_SG_DMA_LENGTH)

Going off on a tangent, is it actually right for that to depend on a 
NEED_* symbol, or should that really be a select instead?

> drivers/iommu/built-in.o: In function `iommu_put_dma_cookie':
> mtk_iommu.c:(.text+0x11fe): undefined reference to `put_iova_domain'
> drivers/iommu/built-in.o: In function `iommu_dma_init_domain':
> mtk_iommu.c:(.text+0x1316): undefined reference to `init_iova_domain'
> drivers/iommu/built-in.o: In function `__iommu_dma_unmap':
> mtk_iommu.c:(.text+0x1380): undefined reference to `find_iova'
>
> This adds the same select that the other drivers have. On a related
> note, I wonder if we should just always select ARM_DMA_USE_IOMMU
> whenever any IOMMU driver is enabled. Are there any cases where
> we would enable an IOMMU but not use it?

You could use one solely for VFIO without caring about DMA ops - I think 
that's mostly how ARM SMMUs are being used in practice at the moment - 
but DMA-focused 'media' IOMMUs vastly outnumber 'virtualisation' IOMMUs 
on ARM, so it would probably make sense. We already have the equivalent 
"select IOMMU_DMA if IOMMU_SUPPORT" on arm64.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver")
> ---
>   drivers/iommu/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index b325954cf8f8..ea0998921702 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -341,6 +341,7 @@ config MTK_IOMMU
>   	bool "MTK IOMMU Support"
>   	depends on ARM || ARM64
>   	depends on ARCH_MEDIATEK || COMPILE_TEST
> +	select ARM_DMA_USE_IOMMU

If going down this route, I'd be inclined to add an "if ARM" there, just 
for clarity.

>   	select IOMMU_API
>   	select IOMMU_DMA

As above, this is already selected on arm64, and isn't used on 32-bit*, 
so could probably just be removed, especially if it leads to build issues.

Robin.

*yet, of course. I need to have a proper look over Marek's RFC ;)

>   	select IOMMU_IO_PGTABLE_ARMV7S
>

WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: Arnd Bergmann <arnd@arndb.de>, Joerg Roedel <jroedel@suse.de>,
	Joerg Roedel <joro@8bytes.org>
Cc: linux-arm-kernel@lists.infradead.org,
	Yong Wu <yong.wu@mediatek.com>,
	iommu@lists.linux-foundation.org,
	linux-mediatek@lists.infradead.org,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] iommu/mediatek: select ARM_DMA_USE_IOMMU
Date: Mon, 29 Feb 2016 10:37:40 +0000	[thread overview]
Message-ID: <56D41F74.8010408@arm.com> (raw)
In-Reply-To: <1456737553-496245-1-git-send-email-arnd@arndb.de>

Hi Arnd,

On 29/02/16 09:19, Arnd Bergmann wrote:
> The newly added Mediatek IOMMU driver uses the IOMMU_DMA infrastructure,
> but unlike other such drivers, it does not select 'ARM_DMA_USE_IOMMU',
> which is a prerequisite, leading to a link error:
>
> warning: (MTK_IOMMU) selects IOMMU_DMA which has unmet direct dependencies (IOMMU_SUPPORT && NEED_SG_DMA_LENGTH)

Going off on a tangent, is it actually right for that to depend on a 
NEED_* symbol, or should that really be a select instead?

> drivers/iommu/built-in.o: In function `iommu_put_dma_cookie':
> mtk_iommu.c:(.text+0x11fe): undefined reference to `put_iova_domain'
> drivers/iommu/built-in.o: In function `iommu_dma_init_domain':
> mtk_iommu.c:(.text+0x1316): undefined reference to `init_iova_domain'
> drivers/iommu/built-in.o: In function `__iommu_dma_unmap':
> mtk_iommu.c:(.text+0x1380): undefined reference to `find_iova'
>
> This adds the same select that the other drivers have. On a related
> note, I wonder if we should just always select ARM_DMA_USE_IOMMU
> whenever any IOMMU driver is enabled. Are there any cases where
> we would enable an IOMMU but not use it?

You could use one solely for VFIO without caring about DMA ops - I think 
that's mostly how ARM SMMUs are being used in practice at the moment - 
but DMA-focused 'media' IOMMUs vastly outnumber 'virtualisation' IOMMUs 
on ARM, so it would probably make sense. We already have the equivalent 
"select IOMMU_DMA if IOMMU_SUPPORT" on arm64.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver")
> ---
>   drivers/iommu/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index b325954cf8f8..ea0998921702 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -341,6 +341,7 @@ config MTK_IOMMU
>   	bool "MTK IOMMU Support"
>   	depends on ARM || ARM64
>   	depends on ARCH_MEDIATEK || COMPILE_TEST
> +	select ARM_DMA_USE_IOMMU

If going down this route, I'd be inclined to add an "if ARM" there, just 
for clarity.

>   	select IOMMU_API
>   	select IOMMU_DMA

As above, this is already selected on arm64, and isn't used on 32-bit*, 
so could probably just be removed, especially if it leads to build issues.

Robin.

*yet, of course. I need to have a proper look over Marek's RFC ;)

>   	select IOMMU_IO_PGTABLE_ARMV7S
>

  parent reply	other threads:[~2016-02-29 10:37 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29  9:19 [PATCH 1/2] iommu/mediatek: select ARM_DMA_USE_IOMMU Arnd Bergmann
2016-02-29  9:19 ` Arnd Bergmann
2016-02-29  9:19 ` Arnd Bergmann
     [not found] ` <1456737553-496245-1-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2016-02-29  9:19   ` [PATCH 2/2] iommu/mediatek: mark PM functions as __maybe_unused Arnd Bergmann
2016-02-29  9:19     ` Arnd Bergmann
2016-02-29  9:19     ` Arnd Bergmann
2016-02-29 21:04     ` Yong Wu
2016-02-29 21:04       ` Yong Wu
2016-02-29 21:04       ` Yong Wu
2016-02-29 10:37   ` Robin Murphy [this message]
2016-02-29 10:37     ` [PATCH 1/2] iommu/mediatek: select ARM_DMA_USE_IOMMU Robin Murphy
2016-02-29 10:37     ` Robin Murphy
     [not found]     ` <56D41F74.8010408-5wv7dgnIgG8@public.gmane.org>
2016-02-29 10:53       ` Arnd Bergmann
2016-02-29 10:53         ` Arnd Bergmann
2016-02-29 10:53         ` Arnd Bergmann
2016-02-29 11:22         ` Robin Murphy
2016-02-29 11:22           ` Robin Murphy
2016-02-29 11:22           ` Robin Murphy
     [not found]           ` <56D429F0.7010409-5wv7dgnIgG8@public.gmane.org>
2016-02-29 11:29             ` Arnd Bergmann
2016-02-29 11:29               ` Arnd Bergmann
2016-02-29 11:29               ` Arnd Bergmann
2016-02-29 11:47               ` Robin Murphy
2016-02-29 11:47                 ` Robin Murphy
2016-02-29 11:47                 ` Robin Murphy
2016-02-29 15:48   ` Joerg Roedel
2016-02-29 15:48     ` Joerg Roedel
2016-02-29 15:48     ` Joerg Roedel

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=56D41F74.8010408@arm.com \
    --to=robin.murphy-5wv7dgnigg8@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
    --cc=jroedel-l3A5Bk7waGM@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.