linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Hiroshi Doyu <hdoyu@nvidia.com>
To: James Bottomley <James.Bottomley@HansenPartnership.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 12:44:52 +0300	[thread overview]
Message-ID: <20120924124452.41070ed2ee9944d930cffffc@nvidia.com> (raw)
In-Reply-To: <1348478881.2467.27.camel@dabdike>

Hi James,

On Mon, 24 Sep 2012 11:28:01 +0200
James Bottomley <James.Bottomley@HansenPartnership.com> wrote:

> 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.

As mentioned in the original, this is a heck to explain what is
needed. I am looking for some generic solution for how to specify
IOMMU info for each platform devices. I'm guessing that some other SoC
may have the similar requirements on the above. As you mentioned, this
solution should be a generic, not arch specific.

--
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>

  reply	other threads:[~2012-09-24  9:45 UTC|newest]

Thread overview: 27+ 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 ` [RFC 1/5] ARM: dma-mapping: New dma_map_ops->iova_get_free_{total,max} 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 ` [RFC 3/5] ARM: dma-mapping: New dma_map_ops->iova_alloc*_at* function 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 ` [RFC 5/5] ARM: dma-mapping: Introduce dma_map_linear_attrs() for IOVA linear map 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-19  6:58   ` Hiroshi Doyu
2012-09-19  7:59     ` Arnd Bergmann
2012-09-19 11:41       ` Hiroshi Doyu
2012-09-19 12:50       ` Joerg Roedel
2012-09-20  1:44         ` Krishna Reddy
2012-09-20  2:21           ` Stephen Warren
2012-09-20  6:40             ` Krishna Reddy
2012-09-20 15:27               ` Stephen Warren
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:28                     ` James Bottomley
2012-09-24  9:44                       ` Hiroshi Doyu [this message]
2012-09-24 11:14                         ` Marek Szyprowski
2012-09-24 11:50                           ` How to specify IOMMU'able devices in DT Hiroshi Doyu
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 18:07                               ` Stephen Warren
2012-11-29  6:45                                 ` Hiroshi Doyu
2012-11-29 10:17                               ` Thierry Reding
2012-11-30  4:59                               ` Mark Zhang
2012-11-30  8:06                                 ` [PATCH 1/1] ARM: tegra: bus_notifier registers IOMMU devices 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=20120924124452.41070ed2ee9944d930cffffc@nvidia.com \
    --to=hdoyu@nvidia.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=arnd@arndb.de \
    --cc=chunsang.jeong@linaro.org \
    --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.infradead.org \
    --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 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).