devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: Mark Rutland <Mark.Rutland-5wv7dgnIgG8@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	"rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org"
	<rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
	<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCHv3 14/19] iommu/tegra: smmu: Get "nvidia,memory-clients" from DT
Date: Fri, 1 Nov 2013 16:34:04 +0000	[thread overview]
Message-ID: <20131101163404.GC2442@mudshark.cambridge.arm.com> (raw)
In-Reply-To: <5273D214.90106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

On Fri, Nov 01, 2013 at 04:08:52PM +0000, Stephen Warren wrote:
> On 10/31/2013 01:39 PM, Will Deacon wrote:
> > On Thu, Oct 31, 2013 at 07:25:25PM +0000, Stephen Warren wrote:
> >> On 10/31/2013 01:16 PM, Stephen Warren wrote:
> >>> Hmm. That's interesting. I see that the ARM SMMU has a list of the
> >>> clients it affects, whereas this Tegra series puts information into each
> >>> client device about the SMMU(s) that affect it. Is it better to flip the
> >>> Tegra binding around to match the style of the ARM SMMU?
> >>
> >> One question here: How do you ensure that the SMMU driver probe()s
> >> before probe() runs for devices affected by the SMMU?
> > 
> > I think we get away with this by virtue of nobody actually creating IOMMU
> > mappings from within drivers,
> 
> Where are the mapping set up? What prevents that action from happening
> before the IOMMU is set up and the various devices have their DMA ops
> hooked through the IOMMU? It's fairly clear how deferred probe of client
> devices could achieve that, but I'm quite unsure how some what other
> mechanism would ensure that.

This is the part where I start to struggle. If you look at a mainline
kernel, arm_iommu_create_mapping isn't really used, so it's difficult to
know at which point the IOMMU needs to be initialised across different ARM
SoCs.

For other architectures, it looks like the IOMMU initialisation hangs
directly off arch code (which in turn are driven from initcalls), but that's
generally possible because either the IOMMU is architected, or it's strongly
tied to PCI initialisation.

What are the requirements for Tegra? If the IOMMU isn't initialised, does it
act as a passthrough?

> > so the ordering is already handled. However, I
> > also have a patch queued to move the SMMU initialisation to a
> > subsys_initcall. I'm not particularly fond of that, but it seems to be the
> > done thing (even for other architectures).
> 
> We've been trying very hard not to rely on initcall ordering to solve
> issues like this, simply it doesn't scale to complex use-cases, and
> different HW/drivers/... might have conflicting requirements that aren't
> possible to solve by tweaking initcall levels. It seems much more
> preferable to use something that's guaranteed to work and adapt to any
> situation, such as deferred probe.

Indeed. As I said, I'm not a huge fan of initcalls either, but that's the
way things are at the moment. If deferred probe can be used to make that
less fragile, then that sounds like a good thing to do, perhaps across other
architectures too.

Will

  parent reply	other threads:[~2013-11-01 16:34 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-18 10:26 [PATCHv3 00/19] Unifying SMMU driver among Tegra SoCs Hiroshi Doyu
     [not found] ` <1382092020-13170-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-18 10:26   ` [PATCHv3 01/19] [HACK] of: dev_node has struct device pointer Hiroshi Doyu
     [not found]     ` <1382092020-13170-2-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-24  8:55       ` Grant Likely
     [not found]         ` <20131024085531.680A4C4039D-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2013-10-24  9:21           ` Hiroshi Doyu
     [not found]             ` < 20131025001038.77299C403B6@trevor.secretlab.ca>
     [not found]             ` <20131024.122115.1035609747068925560.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-24  9:36               ` Kumar Gala
     [not found]                 ` <3E007970-C2E3-4A2E-B2E3-8388DB7A98F9-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2013-10-25  0:12                   ` Grant Likely
2013-10-25  0:10               ` Grant Likely
     [not found]                 ` <20131025001038.77299C403B6-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2013-10-25  7:56                   ` Thierry Reding
     [not found]                     ` <20131025075652.GB19622-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-10-25  8:22                       ` Hiroshi Doyu
     [not found]                         ` <20131025.112202.47792301040951621.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-25 13:20                           ` Will Deacon
     [not found]                             ` <20131025132051.GD9999-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-10-25 13:46                               ` Thierry Reding
2013-10-30 21:47                               ` Stephen Warren
2013-10-25  8:25                       ` Hiroshi Doyu
     [not found]                         ` <20131025.112549.2040849946958069337.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-25  9:11                           ` Thierry Reding
     [not found]                             ` <20131025091104.GG19622-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-10-25  9:49                               ` Hiroshi Doyu
     [not found]                                 ` <20131025.124905.1154427805530939055.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-25 10:49                                   ` Thierry Reding
     [not found]                                     ` <20131025104937.GA25080-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-10-25 11:08                                       ` Hiroshi Doyu
2013-10-25 19:01                                       ` Grant Likely
     [not found]                                         ` <20131025190136.D55F5C403A7-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2013-10-28  7:31                                           ` Thierry Reding
     [not found]                                             ` <20131028073133.GA6629-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-12  7:17                                               ` Grant Likely
2013-10-30 21:58                               ` Stephen Warren
     [not found]                                 ` <52718122.9000206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-30 22:41                                   ` Thierry Reding
2013-10-31  8:14                                     ` Hiroshi Doyu
     [not found]                                       ` <20131031.101405.2229107340254709582.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 16:37                                         ` Stephen Warren
     [not found]                                           ` <52728754.60307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31 16:49                                             ` Hiroshi Doyu
2013-11-01  9:53                                             ` Thierry Reding
     [not found]                                               ` <20131101095349.GI27864-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-01 10:09                                                 ` Hiroshi Doyu
2013-10-31  8:12                                   ` Hiroshi Doyu
     [not found]                                     ` <20131031.101232.80781047726461143.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 16:35                                       ` Stephen Warren
     [not found]                                         ` <527286CC.9080404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31 16:46                                           ` Hiroshi Doyu
     [not found]                                             ` <20131031.184603.979300613649357798.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 17:53                                               ` Stephen Warren
     [not found]                                                 ` <52729912.9050800-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-01  6:49                                                   ` Hiroshi Doyu
     [not found]                                                     ` <20131101084909.5ed79987aa3aeb13b14e3f08-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-11-01  9:52                                                       ` Thierry Reding
     [not found]                                                         ` <20131101095223.GH27864-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-01 10:05                                                           ` Hiroshi Doyu
2013-11-01 21:44                                                       ` Stephen Warren
2013-11-06 14:06                                                       ` [RFC][PATCHv3+ 1/2] driver/core: Add of_iommu_attach() Hiroshi Doyu
     [not found]                                                         ` <20131106160623.2cb72f91cd071e555d0d4b9a-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-11-08 13:14                                                           ` Hiroshi Doyu
2013-11-01  9:46                                                   ` [PATCHv3 01/19] [HACK] of: dev_node has struct device pointer Thierry Reding
     [not found]                                                     ` <20131101094644.GG27864-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-01  9:59                                                       ` Hiroshi Doyu
     [not found]                                                         ` <20131101.115919.351108054879013006.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-11-01 21:45                                                           ` Stephen Warren
     [not found]                                                             ` <527420EF.1070102-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-04  6:42                                                               ` Hiroshi Doyu
2013-11-15  7:31                                   ` Grant Likely
2013-10-18 10:26   ` [PATCHv3 02/19] [HACK] ARM: tegra: Populate AHB/IOMMU earlier than others Hiroshi Doyu
     [not found]     ` <1382092020-13170-3-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-30 22:01       ` Stephen Warren
2013-10-18 10:26   ` [PATCHv3 05/19] ARM: dt: tegra114: iommu: Fix IOMMU register address Hiroshi Doyu
     [not found]     ` <1382092020-13170-6-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-30 22:07       ` Stephen Warren
     [not found]         ` <52718315.1040307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31  8:14           ` Hiroshi Doyu
2013-10-31 16:51       ` Mark Rutland
2013-10-31 17:05         ` Hiroshi Doyu
     [not found]           ` <20131031.190524.343708041257755667.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 17:11             ` Hiroshi Doyu
     [not found]               ` <20131031.191126.1326472797634956722.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 17:34                 ` Mark Rutland
2013-10-18 10:26   ` [PATCHv3 10/19] iommu/tegra: smmu: Get "nvidia,swgroups" from DT Hiroshi Doyu
     [not found]     ` <1382092020-13170-11-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-24  8:58       ` Grant Likely
     [not found]         ` <20131024085811.A3F2CC4039D-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2013-10-30 22:22           ` Stephen Warren
2013-10-30 22:33       ` Stephen Warren
     [not found]         ` <5271893C.6000507-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31  8:17           ` Hiroshi Doyu
     [not found]             ` <20131031.101717.1419377840657413108.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-11-01 16:54               ` Stephen Warren
     [not found]                 ` <5273DCCD.2050901-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-04  6:59                   ` Hiroshi Doyu
2013-10-31 17:31           ` Mark Rutland
2013-10-31 18:00             ` Will Deacon
     [not found]               ` <20131031180029.GB31082-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-01  7:41                 ` Hiroshi Doyu
2013-11-01  7:27             ` Hiroshi Doyu
2013-10-31 17:15       ` Mark Rutland
2013-10-18 10:26   ` [PATCHv3 11/19] ARM: dt: tegra30: iommu: Add "nvidia,swgroups" Hiroshi Doyu
     [not found]     ` <1382092020-13170-12-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-30 22:35       ` Stephen Warren
2013-10-18 10:26   ` [PATCHv3 12/19] ARM: dt: tegra114: " Hiroshi Doyu
     [not found]     ` <1382092020-13170-13-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 16:46       ` Mark Rutland
2013-10-18 10:26   ` [PATCHv3 14/19] iommu/tegra: smmu: Get "nvidia,memory-clients" from DT Hiroshi Doyu
     [not found]     ` <1382092020-13170-15-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-24  9:01       ` Grant Likely
2013-10-30 22:44       ` Stephen Warren
     [not found]         ` <52718BB4.4090007-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31  8:18           ` Hiroshi Doyu
     [not found]             ` <20131031.101808.1830527808656695540.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 17:40               ` Mark Rutland
2013-10-31 18:02                 ` Will Deacon
     [not found]                   ` <20131031180212.GC31082-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-10-31 19:13                     ` Stephen Warren
     [not found]                       ` <5272ABBD.4050505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31 19:21                         ` Will Deacon
2013-10-31 19:16                 ` Stephen Warren
     [not found]                   ` <5272AC82.6080205-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31 19:25                     ` Stephen Warren
     [not found]                       ` <5272AEA5.7020200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31 19:39                         ` Will Deacon
     [not found]                           ` <20131031193941.GB31516-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-01  8:03                             ` Hiroshi Doyu
2013-11-01 16:08                             ` Stephen Warren
     [not found]                               ` <5273D214.90106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-01 16:34                                 ` Will Deacon [this message]
     [not found]                                   ` <20131101163404.GC2442-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-01 17:05                                     ` Stephen Warren
     [not found]                                       ` <5273DF45.8050505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-04  6:48                                         ` Hiroshi Doyu
2013-11-01 17:08                                     ` Stephen Warren
2013-11-01  7:54                     ` Hiroshi Doyu
2013-11-01  7:46                 ` Hiroshi Doyu
2013-10-31 19:17               ` Stephen Warren
2013-10-18 10:26   ` [PATCHv3 15/19] ARM: tegra: Create a DT header defining SWGROUP ID Hiroshi Doyu
     [not found]     ` <1382092020-13170-16-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-30 22:48       ` Stephen Warren
     [not found]         ` <52718CC6.5-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-31  8:19           ` Hiroshi Doyu
     [not found]             ` <20131031.101942.530833331841957251.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-31 17:46               ` Mark Rutland
2013-10-31 19:18                 ` Stephen Warren
2013-11-01  8:06                 ` Hiroshi Doyu
     [not found]                   ` <20131101100605.2a29eac5b5ba8719a0beb276-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-11-01 16:05                     ` Stephen Warren
2013-10-18 10:26   ` [PATCHv3 17/19] ARM: dt: tegra30: iommu: Add "nvidia,memory-clients" Hiroshi Doyu
2013-10-18 10:26   ` [PATCHv3 18/19] ARM: dt: tegra114: iommu: Add "nvidia, memory-clients" Hiroshi Doyu
2013-10-30 16:34   ` [PATCHv3 00/19] Unifying SMMU driver among Tegra SoCs Hiroshi Doyu
     [not found]     ` <20131030.183454.2089418674186724494.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-10-30 16:44       ` Stephen Warren
2013-10-30 22:19   ` Stephen Warren

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=20131101163404.GC2442@mudshark.cambridge.arm.com \
    --to=will.deacon-5wv7dgnigg8@public.gmane.org \
    --cc=Mark.Rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=swarren-DDmLM1+adcrQT0dZR+AlfA@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 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).