From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Hiroshi Doyu <hdoyu@nvidia.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
Joerg Roedel <joerg.roedel@amd.com>,
Arnd Bergmann <arnd@arndb.de>,
"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
Krishna Reddy <vdumpa@nvidia.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"minchan@kernel.org" <minchan@kernel.org>,
"chunsang.jeong@linaro.org" <chunsang.jeong@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"subashrp@gmail.com" <subashrp@gmail.com>,
"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"pullip.cho@samsung.com" <pullip.cho@samsung.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradea>
Subject: Re: How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely)
Date: Mon, 24 Sep 2012 13:28:01 +0400 [thread overview]
Message-ID: <1348478881.2467.27.camel@dabdike> (raw)
In-Reply-To: <20120924120415.8e6929a34c422185a98d3f82@nvidia.com>
On Mon, 2012-09-24 at 12:04 +0300, Hiroshi Doyu wrote:
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index a1a7225..9eae3be 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -21,6 +21,8 @@
> #include <linux/slab.h>
> #include <linux/pm_runtime.h>
>
> +#include <asm/dma-iommu.h>
> +
> #include "base.h"
>
> #define to_platform_driver(drv) (container_of((drv), struct
> platform_driver, \
> @@ -305,8 +307,19 @@ int platform_device_add(struct platform_device
> *pdev)
> dev_name(&pdev->dev), dev_name(pdev->dev.parent));
>
> ret = device_add(&pdev->dev);
> - if (ret == 0)
> - return ret;
> + if (ret)
> + goto failed;
> +
> +#ifdef CONFIG_PLATFORM_ENABLE_IOMMU
> + if (platform_bus_type.map && !pdev->dev.archdata.mapping) {
> + ret = arm_iommu_attach_device(&pdev->dev,
> + platform_bus_type.map);
> + if (ret)
> + goto failed;
This is horrible ... you're adding an architecture specific callback
into our generic code; that's really a no-no. If the concept of
CONFIG_PLATFORM_ENABE_IOMMU is useful to more than just arm, then this
could become a generic callback.
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: James.Bottomley@HansenPartnership.com (James Bottomley)
To: linux-arm-kernel@lists.infradead.org
Subject: How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely)
Date: Mon, 24 Sep 2012 13:28:01 +0400 [thread overview]
Message-ID: <1348478881.2467.27.camel@dabdike> (raw)
In-Reply-To: <20120924120415.8e6929a34c422185a98d3f82@nvidia.com>
On Mon, 2012-09-24 at 12:04 +0300, Hiroshi Doyu wrote:
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index a1a7225..9eae3be 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -21,6 +21,8 @@
> #include <linux/slab.h>
> #include <linux/pm_runtime.h>
>
> +#include <asm/dma-iommu.h>
> +
> #include "base.h"
>
> #define to_platform_driver(drv) (container_of((drv), struct
> platform_driver, \
> @@ -305,8 +307,19 @@ int platform_device_add(struct platform_device
> *pdev)
> dev_name(&pdev->dev), dev_name(pdev->dev.parent));
>
> ret = device_add(&pdev->dev);
> - if (ret == 0)
> - return ret;
> + if (ret)
> + goto failed;
> +
> +#ifdef CONFIG_PLATFORM_ENABLE_IOMMU
> + if (platform_bus_type.map && !pdev->dev.archdata.mapping) {
> + ret = arm_iommu_attach_device(&pdev->dev,
> + platform_bus_type.map);
> + if (ret)
> + goto failed;
This is horrible ... you're adding an architecture specific callback
into our generic code; that's really a no-no. If the concept of
CONFIG_PLATFORM_ENABE_IOMMU is useful to more than just arm, then this
could become a generic callback.
James
WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Hiroshi Doyu <hdoyu@nvidia.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
Joerg Roedel <joerg.roedel@amd.com>,
Arnd Bergmann <arnd@arndb.de>,
"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
Krishna Reddy <vdumpa@nvidia.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"minchan@kernel.org" <minchan@kernel.org>,
"chunsang.jeong@linaro.org" <chunsang.jeong@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"subashrp@gmail.com" <subashrp@gmail.com>,
"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"pullip.cho@samsung.com" <pullip.cho@samsung.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely)
Date: Mon, 24 Sep 2012 13:28:01 +0400 [thread overview]
Message-ID: <1348478881.2467.27.camel@dabdike> (raw)
In-Reply-To: <20120924120415.8e6929a34c422185a98d3f82@nvidia.com>
On Mon, 2012-09-24 at 12:04 +0300, Hiroshi Doyu wrote:
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index a1a7225..9eae3be 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -21,6 +21,8 @@
> #include <linux/slab.h>
> #include <linux/pm_runtime.h>
>
> +#include <asm/dma-iommu.h>
> +
> #include "base.h"
>
> #define to_platform_driver(drv) (container_of((drv), struct
> platform_driver, \
> @@ -305,8 +307,19 @@ int platform_device_add(struct platform_device
> *pdev)
> dev_name(&pdev->dev), dev_name(pdev->dev.parent));
>
> ret = device_add(&pdev->dev);
> - if (ret == 0)
> - return ret;
> + if (ret)
> + goto failed;
> +
> +#ifdef CONFIG_PLATFORM_ENABLE_IOMMU
> + if (platform_bus_type.map && !pdev->dev.archdata.mapping) {
> + ret = arm_iommu_attach_device(&pdev->dev,
> + platform_bus_type.map);
> + if (ret)
> + goto failed;
This is horrible ... you're adding an architecture specific callback
into our generic code; that's really a no-no. If the concept of
CONFIG_PLATFORM_ENABE_IOMMU is useful to more than just arm, then this
could become a generic callback.
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Hiroshi Doyu <hdoyu@nvidia.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
Joerg Roedel <joerg.roedel@amd.com>,
Arnd Bergmann <arnd@arndb.de>,
"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
Krishna Reddy <vdumpa@nvidia.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"minchan@kernel.org" <minchan@kernel.org>,
"chunsang.jeong@linaro.org" <chunsang.jeong@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"subashrp@gmail.com" <subashrp@gmail.com>,
"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"pullip.cho@samsung.com" <pullip.cho@samsung.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely)
Date: Mon, 24 Sep 2012 13:28:01 +0400 [thread overview]
Message-ID: <1348478881.2467.27.camel@dabdike> (raw)
In-Reply-To: <20120924120415.8e6929a34c422185a98d3f82@nvidia.com>
On Mon, 2012-09-24 at 12:04 +0300, Hiroshi Doyu wrote:
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index a1a7225..9eae3be 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -21,6 +21,8 @@
> #include <linux/slab.h>
> #include <linux/pm_runtime.h>
>
> +#include <asm/dma-iommu.h>
> +
> #include "base.h"
>
> #define to_platform_driver(drv) (container_of((drv), struct
> platform_driver, \
> @@ -305,8 +307,19 @@ int platform_device_add(struct platform_device
> *pdev)
> dev_name(&pdev->dev), dev_name(pdev->dev.parent));
>
> ret = device_add(&pdev->dev);
> - if (ret == 0)
> - return ret;
> + if (ret)
> + goto failed;
> +
> +#ifdef CONFIG_PLATFORM_ENABLE_IOMMU
> + if (platform_bus_type.map && !pdev->dev.archdata.mapping) {
> + ret = arm_iommu_attach_device(&pdev->dev,
> + platform_bus_type.map);
> + if (ret)
> + goto failed;
This is horrible ... you're adding an architecture specific callback
into our generic code; that's really a no-no. If the concept of
CONFIG_PLATFORM_ENABE_IOMMU is useful to more than just arm, then this
could become a generic callback.
James
next prev parent reply other threads:[~2012-09-24 9:28 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-29 6:55 [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` [RFC 1/5] ARM: dma-mapping: New dma_map_ops->iova_get_free_{total,max} functions Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` [RFC 1/5] ARM: dma-mapping: New dma_map_ops->iova_get_free_{total, max} functions Hiroshi Doyu
2012-08-29 6:55 ` [RFC 3/5] ARM: dma-mapping: New dma_map_ops->iova_alloc*_at* function Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` [RFC 4/5] ARM: dma-mapping: New dma_map_ops->map_page*_at* function Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
[not found] ` <1346223335-31455-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-08-29 6:55 ` [RFC 2/5] ARM: dma-mapping: New dma_map_ops->iova_{alloc, free}() functions Hiroshi Doyu
2012-08-29 6:55 ` [RFC 2/5] ARM: dma-mapping: New dma_map_ops->iova_{alloc,free}() functions Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` [RFC 2/5] ARM: dma-mapping: New dma_map_ops->iova_{alloc, free}() functions Hiroshi Doyu
2012-08-29 6:55 ` [RFC 5/5] ARM: dma-mapping: Introduce dma_map_linear_attrs() for IOVA linear map Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-08-29 6:55 ` Hiroshi Doyu
2012-09-18 12:49 ` [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely Joerg Roedel
2012-09-18 12:49 ` Joerg Roedel
2012-09-18 12:49 ` Joerg Roedel
2012-09-18 12:49 ` Joerg Roedel
2012-09-19 6:58 ` Hiroshi Doyu
2012-09-19 6:58 ` Hiroshi Doyu
2012-09-19 6:58 ` Hiroshi Doyu
[not found] ` <20120919095843.d1db155e0f085f4fcf64ea32-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-09-19 7:59 ` Arnd Bergmann
2012-09-19 7:59 ` Arnd Bergmann
2012-09-19 7:59 ` Arnd Bergmann
2012-09-19 7:59 ` Arnd Bergmann
[not found] ` <201209190759.46174.arnd-r2nGTMty4D4@public.gmane.org>
2012-09-19 11:41 ` Hiroshi Doyu
2012-09-19 11:41 ` Hiroshi Doyu
2012-09-19 11:41 ` Hiroshi Doyu
2012-09-19 11:41 ` Hiroshi Doyu
2012-09-19 12:50 ` Joerg Roedel
2012-09-19 12:50 ` Joerg Roedel
2012-09-19 12:50 ` Joerg Roedel
2012-09-19 12:50 ` Joerg Roedel
[not found] ` <20120919125020.GQ2505-5C7GfCeVMHo@public.gmane.org>
2012-09-20 1:44 ` Krishna Reddy
2012-09-20 1:44 ` Krishna Reddy
2012-09-20 1:44 ` Krishna Reddy
2012-09-20 1:44 ` Krishna Reddy
[not found] ` <401E54CE964CD94BAE1EB4A729C7087E379FDC1EEB-wAPRp6hVlRhDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-09-20 2:21 ` Stephen Warren
2012-09-20 2:21 ` Stephen Warren
2012-09-20 2:21 ` Stephen Warren
2012-09-20 2:21 ` Stephen Warren
[not found] ` <505A7DB4.4090902-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-09-20 6:40 ` Krishna Reddy
2012-09-20 6:40 ` Krishna Reddy
2012-09-20 6:40 ` Krishna Reddy
2012-09-20 6:40 ` Krishna Reddy
[not found] ` <401E54CE964CD94BAE1EB4A729C7087E379FDC1F2D-wAPRp6hVlRhDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-09-20 15:27 ` Stephen Warren
2012-09-20 15:27 ` Stephen Warren
2012-09-20 15:27 ` Stephen Warren
2012-09-20 15:27 ` Stephen Warren
[not found] ` <505B35F7.2080201-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-09-21 18:16 ` Krishna Reddy
2012-09-21 18:16 ` Krishna Reddy
2012-09-21 18:16 ` Krishna Reddy
2012-09-21 18:16 ` Krishna Reddy
2012-09-24 9:04 ` How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely) Hiroshi Doyu
2012-09-24 9:04 ` Hiroshi Doyu
2012-09-24 9:04 ` Hiroshi Doyu
2012-09-24 9:04 ` Hiroshi Doyu
2012-09-24 9:04 ` Hiroshi Doyu
2012-09-24 9:28 ` James Bottomley [this message]
2012-09-24 9:28 ` James Bottomley
2012-09-24 9:28 ` James Bottomley
2012-09-24 9:28 ` James Bottomley
2012-09-24 9:44 ` Hiroshi Doyu
2012-09-24 9:44 ` Hiroshi Doyu
2012-09-24 9:44 ` Hiroshi Doyu
2012-09-24 9:44 ` Hiroshi Doyu
[not found] ` <20120924124452.41070ed2ee9944d930cffffc-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-09-24 11:14 ` Marek Szyprowski
2012-09-24 11:14 ` Marek Szyprowski
2012-09-24 11:14 ` Marek Szyprowski
2012-09-24 11:14 ` Marek Szyprowski
2012-09-24 11:50 ` How to specify IOMMU'able devices in DT Hiroshi Doyu
2012-09-24 11:50 ` Hiroshi Doyu
2012-09-24 11:50 ` Hiroshi Doyu
2012-09-24 11:50 ` Hiroshi Doyu
[not found] ` <20120924.145014.1452596970914043018.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-28 13:48 ` [PATCH 1/1] ARM: tegra: bus_notifier registers IOMMU devices(was: How to specify IOMMU'able devices in DT) Hiroshi Doyu
2012-11-28 13:48 ` Hiroshi Doyu
2012-11-28 13:48 ` Hiroshi Doyu
2012-11-28 13:48 ` Hiroshi Doyu
2012-11-28 13:48 ` Hiroshi Doyu
[not found] ` <20121128.154832.539666140149950229.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-28 18:07 ` Stephen Warren
2012-11-28 18:07 ` Stephen Warren
2012-11-28 18:07 ` Stephen Warren
2012-11-28 18:07 ` Stephen Warren
2012-11-29 6:45 ` Hiroshi Doyu
2012-11-29 6:45 ` Hiroshi Doyu
2012-11-29 6:45 ` Hiroshi Doyu
2012-11-29 6:45 ` Hiroshi Doyu
2012-11-29 10:17 ` Thierry Reding
2012-11-29 10:17 ` Thierry Reding
2012-11-29 10:17 ` Thierry Reding
2012-11-30 4:59 ` Mark Zhang
2012-11-30 4:59 ` Mark Zhang
2012-11-30 4:59 ` Mark Zhang
2012-11-30 4:59 ` Mark Zhang
2012-11-30 8:06 ` [PATCH 1/1] ARM: tegra: bus_notifier registers IOMMU devices Hiroshi Doyu
2012-11-30 8:06 ` Hiroshi Doyu
2012-11-30 8:06 ` Hiroshi Doyu
2012-11-30 8:06 ` Hiroshi Doyu
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=1348478881.2467.27.camel@dabdike \
--to=james.bottomley@hansenpartnership.com \
--cc=arnd@arndb.de \
--cc=chunsang.jeong@linaro.org \
--cc=hdoyu@nvidia.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joerg.roedel@amd.com \
--cc=kyungmin.park@samsung.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradea \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=minchan@kernel.org \
--cc=pullip.cho@samsung.com \
--cc=subashrp@gmail.com \
--cc=swarren@wwwdotorg.org \
--cc=vdumpa@nvidia.com \
/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.