From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Marek Szyprowski
<m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
will.deacon-5wv7dgnIgG8@public.gmane.org,
joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH v3 2/9] iommu/of: Consolidate device creation workarounds
Date: Fri, 1 Jul 2016 12:19:51 +0100 [thread overview]
Message-ID: <577651D7.4030309@arm.com> (raw)
In-Reply-To: <611b2a77-e7e8-e1e2-85b5-4f469f3ebdf4-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Hi Marek,
On 01/07/16 11:32, Marek Szyprowski wrote:
> Hi Robin,
>
>
> On 2016-06-28 17:48, Robin Murphy wrote:
>> So far, all the users of the generic of_xlate configuration mechanism
>> are resorting to explicit platform device creation to ensure the IOMMU
>> device is ready before anything tries to refer to it. As I'm about to
>> convert two more drivers that will need exactly the same thing, let's
>> nip that proliferation in the bud and move it to a single place.
>>
>> A neat solution is to make of_get_iommu_ops() ensure an IOMMU device is
>> instantiated before giving out its associated ops, since it's a fairly
>> safe assumption that the ops aren't going to be much use if the IOMMU
>> can't or won't exist to back them up.
>>
>> CC: Marek Szyprowski <m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>> CC: Yong Wu <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
>> Signed-off-by: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
>
> Frankly, I would avoid moving this workaround to the iommu core. IMHO the
> best solution would be to let IOMMU controllers to be instantiated as
> normal
> devices and implement proper support in the device core for waiting for the
> iommu controller. Then the workaround can be removed from exynos and mtk
> iommu drivers. What's the status of IOMMU deferred probe patches?
I think revisiting probe ordering is now second-from-top on my to-do
list after this lot. This patch was kind of thinking ahead to get the
"touch all the drivers" aspect out of the way before it grows any
bigger, and all the development can then happen in the core code alone,
but I admit it's not a particularly strong argument.
> I've encountered a serious problems with current code (the one which
> instantiates iommu controller devices from iommu driver) and its
> integration
> with power domains, clocks and runtime pm, which were not possible to
> resolve
> without iommu deferred probe.
OK. Do you have any plans to try tweaking the current workaround, or is
it really not worth it? FWIW I do have an Exynos 5410 (Odroid-XU) on my
desk which I could theoretically test things on, but I suspect it would
take a fair amount of work to get the SYSMMUs and relevant media bits up
and running on top of Krzysztof's basic support.
Will: for the time being, the alternative to this patch would be to
squash the following change into patch 7/9 (without either, patch 8/9
doesn't really work).
Robin.
-----8<-----
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index e4c3916efba9..c002ff06b625 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -2678,6 +2678,14 @@ module_exit(arm_smmu_exit);
static int __init arm_smmu_of_init(struct device_node *np)
{
+ static bool registered;
+
+ if (!registered)
+ registered = !arm_smmu_init();
+
+ if (!of_platform_device_create(np, NULL, platform_bus_type.dev_root))
+ return -ENODEV;
+
of_iommu_set_ops(np, &arm_smmu_ops);
return 0;
next prev parent reply other threads:[~2016-07-01 11:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-28 15:48 [PATCH v3 0/9] Generic DT bindings for PCI IOMMUs and ARM SMMUv3 Robin Murphy
[not found] ` <cover.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-06-28 15:48 ` [PATCH v3 1/9] arm64: mm: change IOMMU notifier action to attach DMA ops Robin Murphy
2016-06-28 15:48 ` [PATCH v3 2/9] iommu/of: Consolidate device creation workarounds Robin Murphy
[not found] ` <dc8ac0f397ea5c90937fb5c9974e4ab02e264bd8.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:22 ` Will Deacon
2016-07-01 10:32 ` Marek Szyprowski
[not found] ` <611b2a77-e7e8-e1e2-85b5-4f469f3ebdf4-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-07-01 11:19 ` Robin Murphy [this message]
[not found] ` <577651D7.4030309-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:02 ` Marek Szyprowski
2016-07-01 12:29 ` Will Deacon
2016-06-28 15:48 ` [PATCH v3 3/9] Docs: dt: add PCI IOMMU map bindings Robin Murphy
2016-06-28 15:48 ` [PATCH v3 4/9] of/irq: Break out msi-map lookup (again) Robin Murphy
2016-06-28 15:48 ` [PATCH v3 5/9] iommu/of: Handle iommu-map property for PCI Robin Murphy
[not found] ` <17617dff6e7998b91d53ed8a1d6283b1c7bc3470.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:31 ` Will Deacon
[not found] ` <20160701103105.GE12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 11:33 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 6/9] iommu/of: Introduce iommu_fwspec Robin Murphy
[not found] ` <227abd6fb43e4163d94673066b4b736d7efaa635.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 10:55 ` Will Deacon
[not found] ` <20160701105505.GH12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:04 ` Robin Murphy
[not found] ` <57765C5E.8010400-5wv7dgnIgG8@public.gmane.org>
2016-07-07 16:51 ` Lorenzo Pieralisi
2016-06-28 15:48 ` [PATCH v3 7/9] iommu/arm-smmu: Implement of_xlate() for SMMUv3 Robin Murphy
[not found] ` <6de0ca7795e1b74627ceb55dcefcfd5537f245ce.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:35 ` Will Deacon
[not found] ` <20160701123507.GJ12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 13:26 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 8/9] iommu/arm-smmu: Support non-PCI devices with SMMUv3 Robin Murphy
[not found] ` <19b0d973e170bebfa57157047bf76499de2a6d33.1467123945.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-07-01 12:40 ` Will Deacon
[not found] ` <20160701124036.GK12735-5wv7dgnIgG8@public.gmane.org>
2016-07-01 13:05 ` Robin Murphy
2016-06-28 15:48 ` [PATCH v3 9/9] iommu/arm-smmu: Set PRIVCFG in stage 1 STEs Robin Murphy
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=577651D7.4030309@arm.com \
--to=robin.murphy-5wv7dgnigg8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@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).