public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: robin.murphy@arm•com (Robin Murphy)
To: linux-arm-kernel@lists•infradead.org
Subject: [RFC 8/9] drivers: of: call iommu_bus_add_dev after iommu_configure_ops
Date: Tue, 24 May 2016 16:59:28 +0100	[thread overview]
Message-ID: <57447A60.4060805@arm.com> (raw)
In-Reply-To: <1461599894-1969-9-git-send-email-sricharan@codeaurora.org>

On 25/04/16 16:58, Sricharan R wrote:
> Now that the device's iommu ops are configured at probe time,
> the device has to be added to the iommu late.
>
> Signed-off-by: Sricharan R <sricharan@codeaurora•org>
> ---
>   drivers/of/device.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/of/device.c b/drivers/of/device.c
> index 57a5f2d..722115c 100644
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -6,6 +6,7 @@
>   #include <linux/of_iommu.h>
>   #include <linux/dma-mapping.h>
>   #include <linux/init.h>
> +#include <linux/iommu.h>
>   #include <linux/module.h>
>   #include <linux/mod_devicetable.h>
>   #include <linux/slab.h>
> @@ -154,6 +155,9 @@ int of_dma_configure_ops(struct device *dev, struct device_node *np)
>   	dev_dbg(dev, "device is%sbehind an iommu\n",
>   		iommu ? " " : " not ");
>
> +	if (iommu)
> +		iommu_bus_add_dev(dev);

This (in conjunction with the previous patch) seems unnecessarily 
convoluted - if of_iommu_configure() has found some iommu_ops for a 
device, why not just call .add_device() directly there and then? There 
are already systems that could warrant having two different IOMMU 
drivers active simultaneously (but thankfully don't _need_ to), so 
trying to escape from per-bus IOMMU ops makes more sense than 
entrenching the horrible notion of "the" IOMMU on "the" platform bus any 
further.

Robin.

> +
>   	arch_setup_dma_ops(dev, dma_addr, size, iommu, coherent);
>
>   	return 0;
>

  parent reply	other threads:[~2016-05-24 15:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-25 15:58 [RFC 0/9] IOMMU probe deferral support Sricharan R
2016-04-25 15:58 ` [RFC 1/9] arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops() Sricharan R
2016-04-25 15:58 ` [RFC 2/9] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
2016-04-25 15:58 ` [RFC 3/9] of: dma: Make of_dma_deconfigure() public Sricharan R
2016-04-25 15:58 ` [RFC 4/9] of: dma: Split of_configure_dma() into mask and ops configuration Sricharan R
2016-04-25 15:58 ` [RFC 5/9] drivers: platform: Configure dma operations at probe time Sricharan R
2016-05-24 15:45   ` Robin Murphy
2016-05-26  4:03     ` Sricharan
2016-04-25 15:58 ` [RFC 6/9] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2016-04-25 15:58 ` [RFC 7/9] drivers: iommu: Add a new add device api Sricharan R
2016-04-25 15:58 ` [RFC 8/9] drivers: of: call iommu_bus_add_dev after iommu_configure_ops Sricharan R
2016-05-23  8:37   ` Marek Szyprowski
2016-05-23  8:47     ` Sricharan
2016-05-24 15:59   ` Robin Murphy [this message]
2016-05-26  5:56     ` Sricharan
2016-04-25 15:58 ` [RFC 9/9] drivers: iommu: arm-smmu: Set iommu_ops in probe Sricharan R
2016-05-12 12:52 ` [RFC 0/9] IOMMU probe deferral support Marek Szyprowski
2016-05-13  6:53   ` Sricharan
2016-05-20 11:34   ` Sricharan

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=57447A60.4060805@arm.com \
    --to=robin.murphy@arm$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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