From: Robin Murphy <robin.murphy@arm.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
iommu@lists.linux-foundation.org,
Will Deacon <will.deacon@arm.com>,
Hanjun Guo <hanjun.guo@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Tomasz Nowicki <tn@semihalf.com>, Jon Masters <jcm@redhat.com>,
Eric Auger <eric.auger@redhat.com>,
Sinan Kaya <okaya@codeaurora.org>,
Nate Watterson <nwatters@codeaurora.org>,
Prem Mallappa <prem.mallappa@broadcom.com>,
Dennis Chen <dennis.chen@arm.com>,
linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v7 04/16] drivers: iommu: make of_iommu_set/get_ops() DT agnostic
Date: Mon, 14 Nov 2016 18:25:16 +0000 [thread overview]
Message-ID: <313844ca-d948-1297-84b2-669f3a7d57d2@arm.com> (raw)
In-Reply-To: <20161114155222.GZ2078@8bytes.org>
On 14/11/16 15:52, Joerg Roedel wrote:
> On Mon, Nov 14, 2016 at 12:00:47PM +0000, Robin Murphy wrote:
>> If we've already made the decision to move away from bus ops, I don't
>> see that it makes sense to deliberately introduce new dependencies on
>> them. Besides, as it stands, this patch literally implements "tell the
>> iommu-core which hardware-iommus exist in the system and a seperate
>> iommu_ops ptr for each of them" straight off.
>
> Not sure which code you are looking at, but as I see it we have only
> per-device iommu-ops now (with this patch). That is different from
> having core-visible hardware-iommu instances where devices could link
> to.
The per-device IOMMU ops are already there since 57f98d2f61e1. This
patch generalises the other end, moving the "registering an IOMMU
instance" (i.e. iommu_fwentry) bit into the IOMMU core, from being
OF-specific. I'd be perfectly happy if we rename iommu_fwentry to
iommu_instance, fwnode_iommu_set_ops() to iommu_register_instance(), and
such if that makes the design intent clearer.
If you'd also prefer to replace iommu_fwspec::ops with an opaque
iommu_fwspec::iommu_instance pointer so that things are a bit more
centralised (and users are forced to go through the API rather then call
ops directly), I'd have no major objection either. My main point is that
we've been deliberately putting the relevant building blocks in place -
the of_iommu_{get,set}_ops stuff was designed from the start to
accommodate per-instance ops, via the ops pointer *being* the instance
token; the iommu_fwspec stuff is deliberately intended to provide
per-device ops on top of that. The raw functionality is either there in
iommu.c already, or moving there in patches already written, so if it
doesn't look right all we need to focus on is making it look right.
> Also the rest of iommu-core code still makes use of the per-bus ops. The
> per-device ops are only used for the of_xlate fn-ptr.
Hence my aforementioned patches intended for 4.10, directly following on
from introducing iommu_fwspec in 4.9:
http://www.mail-archive.com/iommu@lists.linux-foundation.org/msg14576.html
...the purpose being to provide a smooth transition from per-bus ops to
per-device, per-instance ops. Apply those and we're 90% of the way there
for OF-based IOMMU drivers (not that any of those actually need
per-instance ops, admittedly; I did prototype it for the ARM SMMU ages
ago, but it didn't seem worth the bother). Lorenzo's series broadens the
scope to ACPI-based systems and moves the generically-useful parts into
the core where we can easily build on them further if necessary. The
major remaining work is to convert external callers of the current
bus-dependent functions like iommu_domain_alloc(), iommu_present(), etc.
to device-based alternatives.
Robin.
next prev parent reply other threads:[~2016-11-14 18:25 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-09 14:19 [PATCH v7 00/16] ACPI IORT ARM SMMU support Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 01/16] drivers: acpi: add FWNODE_ACPI_STATIC fwnode type Lorenzo Pieralisi
2016-11-09 23:37 ` Rafael J. Wysocki
2016-11-09 14:19 ` [PATCH v7 02/16] drivers: acpi: iort: introduce linker section for IORT entries probing Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 03/16] drivers: acpi: iort: add support for IOMMU fwnode registration Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 04/16] drivers: iommu: make of_iommu_set/get_ops() DT agnostic Lorenzo Pieralisi
2016-11-09 14:40 ` Robin Murphy
2016-11-10 11:05 ` Lorenzo Pieralisi
2016-11-11 15:22 ` Joerg Roedel
2016-11-11 16:17 ` Robin Murphy
2016-11-11 16:27 ` Joerg Roedel
2016-11-11 17:43 ` Robin Murphy
2016-11-14 10:26 ` Lorenzo Pieralisi
2016-11-14 12:00 ` Robin Murphy
2016-11-14 15:52 ` Joerg Roedel
2016-11-14 16:42 ` Lorenzo Pieralisi
2016-11-14 18:25 ` Robin Murphy [this message]
2016-11-15 10:07 ` Lorenzo Pieralisi
2016-11-16 9:56 ` Lorenzo Pieralisi
2016-11-29 16:05 ` Joerg Roedel
2016-11-29 17:06 ` Will Deacon
2016-11-09 14:19 ` [PATCH v7 05/16] drivers: iommu: arm-smmu: convert struct device of_node to fwnode usage Lorenzo Pieralisi
2016-11-09 14:43 ` Robin Murphy
2016-11-09 14:19 ` [PATCH v7 06/16] drivers: iommu: arm-smmu-v3: " Lorenzo Pieralisi
2016-11-09 14:44 ` Robin Murphy
2016-11-09 14:19 ` [PATCH v7 07/16] drivers: acpi: implement acpi_dma_configure Lorenzo Pieralisi
2016-11-09 15:33 ` Robin Murphy
2016-11-16 0:55 ` Rafael J. Wysocki
2016-11-09 14:19 ` [PATCH v7 08/16] drivers: acpi: iort: add node match function Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 09/16] drivers: acpi: iort: add support for ARM SMMU platform devices creation Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 10/16] drivers: iommu: arm-smmu-v3: split probe functions into DT/generic portions Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 11/16] drivers: iommu: arm-smmu-v3: add IORT configuration Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 12/16] drivers: iommu: arm-smmu: split probe functions into DT/generic portions Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 13/16] drivers: iommu: arm-smmu: add IORT configuration Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 14/16] drivers: acpi: iort: replace rid map type with type mask Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 15/16] drivers: acpi: iort: add single mapping function Lorenzo Pieralisi
2016-11-09 14:19 ` [PATCH v7 16/16] drivers: acpi: iort: introduce iort_iommu_configure Lorenzo Pieralisi
2016-11-16 0:56 ` Rafael J. Wysocki
2016-11-09 23:36 ` [PATCH v7 00/16] ACPI IORT ARM SMMU support Rafael J. Wysocki
2016-11-10 10:58 ` Lorenzo Pieralisi
2016-11-15 10:12 ` Lorenzo Pieralisi
2016-11-15 13:04 ` Rafael J. Wysocki
2016-11-15 14:07 ` Lorenzo Pieralisi
2016-11-11 12:44 ` Hanjun Guo
2016-11-16 13:28 ` Tomasz Nowicki
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=313844ca-d948-1297-84b2-669f3a7d57d2@arm.com \
--to=robin.murphy@arm.com \
--cc=dennis.chen@arm.com \
--cc=eric.auger@redhat.com \
--cc=hanjun.guo@linaro.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jcm@redhat.com \
--cc=joro@8bytes.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=marc.zyngier@arm.com \
--cc=nwatters@codeaurora.org \
--cc=okaya@codeaurora.org \
--cc=prem.mallappa@broadcom.com \
--cc=rjw@rjwysocki.net \
--cc=tn@semihalf.com \
--cc=will.deacon@arm.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
all inboxes | Powered by JetHome®