From: Joerg Roedel <joro@8bytes.org>
To: iommu@lists.linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>,
Joerg Roedel <jroedel@suse.de>,
Thierry Reding <thierry.reding@gmail.com>,
dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org
Subject: [PATCH 11/13] gpu: host1x: Use sychronized interface of the IOMMU-API
Date: Thu, 17 Aug 2017 14:56:34 +0200 [thread overview]
Message-ID: <1502974596-23835-12-git-send-email-joro@8bytes.org> (raw)
In-Reply-To: <1502974596-23835-1-git-send-email-joro@8bytes.org>
From: Joerg Roedel <jroedel@suse.de>
The map and unmap functions of the IOMMU-API changed their
semantics: They do no longer guarantee that the hardware
TLBs are synchronized with the page-table updates they made.
To make conversion easier, new synchronized functions have
been introduced which give these guarantees again until the
code is converted to use the new TLB-flush interface of the
IOMMU-API, which allows certain optimizations.
But for now, just convert this code to use the synchronized
functions so that it will behave as before.
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
drivers/gpu/host1x/cdma.c | 6 +++---
drivers/gpu/host1x/job.c | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/host1x/cdma.c b/drivers/gpu/host1x/cdma.c
index 28541b2..bdf557e 100644
--- a/drivers/gpu/host1x/cdma.c
+++ b/drivers/gpu/host1x/cdma.c
@@ -55,7 +55,7 @@ static void host1x_pushbuffer_destroy(struct push_buffer *pb)
return;
if (host1x->domain) {
- iommu_unmap(host1x->domain, pb->dma, pb->alloc_size);
+ iommu_unmap_sync(host1x->domain, pb->dma, pb->alloc_size);
free_iova(&host1x->iova, iova_pfn(&host1x->iova, pb->dma));
}
@@ -105,8 +105,8 @@ static int host1x_pushbuffer_init(struct push_buffer *pb)
}
pb->dma = iova_dma_addr(&host1x->iova, alloc);
- err = iommu_map(host1x->domain, pb->dma, pb->phys, size,
- IOMMU_READ);
+ err = iommu_map_sync(host1x->domain, pb->dma, pb->phys, size,
+ IOMMU_READ);
if (err)
goto iommu_free_iova;
} else {
diff --git a/drivers/gpu/host1x/job.c b/drivers/gpu/host1x/job.c
index bee5044..70a029c 100644
--- a/drivers/gpu/host1x/job.c
+++ b/drivers/gpu/host1x/job.c
@@ -243,7 +243,7 @@ static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
goto unpin;
}
- err = iommu_map_sg(host->domain,
+ err = iommu_map_sg_sync(host->domain,
iova_dma_addr(&host->iova, alloc),
sgt->sgl, sgt->nents, IOMMU_READ);
if (err == 0) {
@@ -695,8 +695,8 @@ void host1x_job_unpin(struct host1x_job *job)
struct host1x_job_unpin_data *unpin = &job->unpins[i];
if (!IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) && host->domain) {
- iommu_unmap(host->domain, job->addr_phys[i],
- unpin->size);
+ iommu_unmap_sync(host->domain, job->addr_phys[i],
+ unpin->size);
free_iova(&host->iova,
iova_pfn(&host->iova, job->addr_phys[i]));
}
--
2.7.4
next prev parent reply other threads:[~2017-08-17 12:58 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-17 12:56 [PATCH 00/13] Introduce IOMMU-API TLB Flushing Interface Joerg Roedel
2017-08-17 12:56 ` [PATCH 01/13] iommu/amd: Rename a few flush functions Joerg Roedel
2017-08-17 12:56 ` [PATCH 02/13] iommu: Introduce Interface for IOMMU TLB Flushing Joerg Roedel
2017-08-17 16:32 ` Will Deacon
2017-08-17 16:50 ` Joerg Roedel
2017-08-17 17:17 ` Will Deacon
2017-08-17 21:20 ` Joerg Roedel
2017-08-18 15:16 ` Will Deacon
2017-08-17 12:56 ` [PATCH 03/13] vfio/type1: Use sychronized interface of the IOMMU-API Joerg Roedel
2017-08-17 12:56 ` [PATCH 04/13] iommu/dma: " Joerg Roedel
2017-08-17 12:56 ` [PATCH 05/13] arm: dma-mapping: " Joerg Roedel
2017-08-17 12:56 ` [PATCH 06/13] drm/etnaviv: " Joerg Roedel
2017-08-17 13:32 ` Lucas Stach
2017-08-17 13:45 ` Joerg Roedel
2017-08-17 14:03 ` Lucas Stach
2017-08-17 14:18 ` Joerg Roedel
2017-08-17 14:30 ` Lucas Stach
2017-08-17 14:35 ` Joerg Roedel
2017-08-17 12:56 ` [PATCH 07/13] drm/msm: " Joerg Roedel
2017-08-19 15:39 ` Rob Clark
2017-08-17 12:56 ` [PATCH 08/13] drm/nouveau/imem/gk20a: " Joerg Roedel
2017-08-17 12:56 ` [PATCH 09/13] drm/rockchip: " Joerg Roedel
2017-08-17 12:56 ` [PATCH 10/13] drm/tegra: " Joerg Roedel
2017-08-17 13:28 ` Thierry Reding
2017-08-17 12:56 ` Joerg Roedel [this message]
2017-08-17 13:29 ` [PATCH 11/13] gpu: host1x: " Thierry Reding
2017-08-17 12:56 ` [PATCH 12/13] IB/usnic: " Joerg Roedel
2017-08-17 12:56 ` [PATCH 13/13] remoteproc: " Joerg Roedel
2017-08-24 19:06 ` Bjorn Andersson
2017-08-17 14:35 ` [PATCH 00/13] Introduce IOMMU-API TLB Flushing Interface Alex Williamson
2017-08-17 14:43 ` Joerg Roedel
2017-08-17 14:54 ` Alex Williamson
2017-08-17 15:22 ` Joerg Roedel
2017-08-23 12:09 ` Joerg Roedel
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=1502974596-23835-12-git-send-email-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jroedel@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=thierry.reding@gmail.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).