All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 02/25] dma-mapping: add a Kconfig symbol to indicated arch_dma_prep_coherent presence
Date: Tue, 30 Apr 2019 06:51:51 -0400	[thread overview]
Message-ID: <20190430105214.24628-3-hch@lst.de> (raw)
In-Reply-To: <20190430105214.24628-1-hch@lst.de>

Add a Kconfig symbol that indicates an architecture provides a
arch_dma_prep_coherent implementation, and provide a stub otherwise.

This will allow the generic dma-iommu code to use it while still
allowing to be built for cache coherent architectures.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
---
 arch/arm64/Kconfig              | 1 +
 arch/csky/Kconfig               | 1 +
 include/linux/dma-noncoherent.h | 6 ++++++
 kernel/dma/Kconfig              | 3 +++
 4 files changed, 11 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 7e34b9eba5de..adda078d6df7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -13,6 +13,7 @@ config ARM64
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_DMA_COHERENT_TO_PFN
 	select ARCH_HAS_DMA_MMAP_PGPROT
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
 	select ARCH_HAS_ELF_RANDOMIZE
 	select ARCH_HAS_FAST_MULTIPLIER
diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig
index 725a115759c9..2c3178848b7d 100644
--- a/arch/csky/Kconfig
+++ b/arch/csky/Kconfig
@@ -1,6 +1,7 @@
 config CSKY
 	def_bool y
 	select ARCH_32BIT_OFF_T
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_SYNC_DMA_FOR_CPU
 	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	select ARCH_USE_BUILTIN_BSWAP
diff --git a/include/linux/dma-noncoherent.h b/include/linux/dma-noncoherent.h
index 69b36ed31a99..9741767e400f 100644
--- a/include/linux/dma-noncoherent.h
+++ b/include/linux/dma-noncoherent.h
@@ -72,6 +72,12 @@ static inline void arch_sync_dma_for_cpu_all(struct device *dev)
 }
 #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */
 
+#ifdef CONFIG_ARCH_HAS_DMA_PREP_COHERENT
 void arch_dma_prep_coherent(struct page *page, size_t size);
+#else
+static inline void arch_dma_prep_coherent(struct page *page, size_t size)
+{
+}
+#endif /* CONFIG_ARCH_HAS_DMA_PREP_COHERENT */
 
 #endif /* _LINUX_DMA_NONCOHERENT_H */
diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig
index 52b704e2b97a..83d711f8d665 100644
--- a/kernel/dma/Kconfig
+++ b/kernel/dma/Kconfig
@@ -38,6 +38,9 @@ config ARCH_HAS_SYNC_DMA_FOR_CPU
 config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
 	bool
 
+config ARCH_HAS_DMA_PREP_COHERENT
+	bool
+
 config ARCH_HAS_DMA_COHERENT_TO_PFN
 	bool
 
-- 
2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/25] dma-mapping: add a Kconfig symbol to indicated arch_dma_prep_coherent presence
Date: Tue, 30 Apr 2019 06:51:51 -0400	[thread overview]
Message-ID: <20190430105214.24628-3-hch@lst.de> (raw)
Message-ID: <20190430105151.Pu12D6eHo6W6lUMZAa3p0-yHSXTwu8JAKBPFSqFCI_g@z> (raw)
In-Reply-To: <20190430105214.24628-1-hch@lst.de>

Add a Kconfig symbol that indicates an architecture provides a
arch_dma_prep_coherent implementation, and provide a stub otherwise.

This will allow the generic dma-iommu code to use it while still
allowing to be built for cache coherent architectures.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
---
 arch/arm64/Kconfig              | 1 +
 arch/csky/Kconfig               | 1 +
 include/linux/dma-noncoherent.h | 6 ++++++
 kernel/dma/Kconfig              | 3 +++
 4 files changed, 11 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 7e34b9eba5de..adda078d6df7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -13,6 +13,7 @@ config ARM64
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_DMA_COHERENT_TO_PFN
 	select ARCH_HAS_DMA_MMAP_PGPROT
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
 	select ARCH_HAS_ELF_RANDOMIZE
 	select ARCH_HAS_FAST_MULTIPLIER
diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig
index 725a115759c9..2c3178848b7d 100644
--- a/arch/csky/Kconfig
+++ b/arch/csky/Kconfig
@@ -1,6 +1,7 @@
 config CSKY
 	def_bool y
 	select ARCH_32BIT_OFF_T
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_SYNC_DMA_FOR_CPU
 	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	select ARCH_USE_BUILTIN_BSWAP
diff --git a/include/linux/dma-noncoherent.h b/include/linux/dma-noncoherent.h
index 69b36ed31a99..9741767e400f 100644
--- a/include/linux/dma-noncoherent.h
+++ b/include/linux/dma-noncoherent.h
@@ -72,6 +72,12 @@ static inline void arch_sync_dma_for_cpu_all(struct device *dev)
 }
 #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */
 
+#ifdef CONFIG_ARCH_HAS_DMA_PREP_COHERENT
 void arch_dma_prep_coherent(struct page *page, size_t size);
+#else
+static inline void arch_dma_prep_coherent(struct page *page, size_t size)
+{
+}
+#endif /* CONFIG_ARCH_HAS_DMA_PREP_COHERENT */
 
 #endif /* _LINUX_DMA_NONCOHERENT_H */
diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig
index 52b704e2b97a..83d711f8d665 100644
--- a/kernel/dma/Kconfig
+++ b/kernel/dma/Kconfig
@@ -38,6 +38,9 @@ config ARCH_HAS_SYNC_DMA_FOR_CPU
 config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
 	bool
 
+config ARCH_HAS_DMA_PREP_COHERENT
+	bool
+
 config ARCH_HAS_DMA_COHERENT_TO_PFN
 	bool
 
-- 
2.20.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/25] dma-mapping: add a Kconfig symbol to indicated arch_dma_prep_coherent presence
Date: Tue, 30 Apr 2019 06:51:51 -0400	[thread overview]
Message-ID: <20190430105214.24628-3-hch@lst.de> (raw)
In-Reply-To: <20190430105214.24628-1-hch@lst.de>

Add a Kconfig symbol that indicates an architecture provides a
arch_dma_prep_coherent implementation, and provide a stub otherwise.

This will allow the generic dma-iommu code to use it while still
allowing to be built for cache coherent architectures.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
---
 arch/arm64/Kconfig              | 1 +
 arch/csky/Kconfig               | 1 +
 include/linux/dma-noncoherent.h | 6 ++++++
 kernel/dma/Kconfig              | 3 +++
 4 files changed, 11 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 7e34b9eba5de..adda078d6df7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -13,6 +13,7 @@ config ARM64
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_DMA_COHERENT_TO_PFN
 	select ARCH_HAS_DMA_MMAP_PGPROT
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
 	select ARCH_HAS_ELF_RANDOMIZE
 	select ARCH_HAS_FAST_MULTIPLIER
diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig
index 725a115759c9..2c3178848b7d 100644
--- a/arch/csky/Kconfig
+++ b/arch/csky/Kconfig
@@ -1,6 +1,7 @@
 config CSKY
 	def_bool y
 	select ARCH_32BIT_OFF_T
+	select ARCH_HAS_DMA_PREP_COHERENT
 	select ARCH_HAS_SYNC_DMA_FOR_CPU
 	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
 	select ARCH_USE_BUILTIN_BSWAP
diff --git a/include/linux/dma-noncoherent.h b/include/linux/dma-noncoherent.h
index 69b36ed31a99..9741767e400f 100644
--- a/include/linux/dma-noncoherent.h
+++ b/include/linux/dma-noncoherent.h
@@ -72,6 +72,12 @@ static inline void arch_sync_dma_for_cpu_all(struct device *dev)
 }
 #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */
 
+#ifdef CONFIG_ARCH_HAS_DMA_PREP_COHERENT
 void arch_dma_prep_coherent(struct page *page, size_t size);
+#else
+static inline void arch_dma_prep_coherent(struct page *page, size_t size)
+{
+}
+#endif /* CONFIG_ARCH_HAS_DMA_PREP_COHERENT */
 
 #endif /* _LINUX_DMA_NONCOHERENT_H */
diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig
index 52b704e2b97a..83d711f8d665 100644
--- a/kernel/dma/Kconfig
+++ b/kernel/dma/Kconfig
@@ -38,6 +38,9 @@ config ARCH_HAS_SYNC_DMA_FOR_CPU
 config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL
 	bool
 
+config ARCH_HAS_DMA_PREP_COHERENT
+	bool
+
 config ARCH_HAS_DMA_COHERENT_TO_PFN
 	bool
 
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-04-30 10:53 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-30 10:51 implement generic dma_map_ops for IOMMUs v4 Christoph Hellwig
2019-04-30 10:51 ` Christoph Hellwig
2019-04-30 10:51 ` Christoph Hellwig
2019-04-30 10:51 ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 01/25] arm64/iommu: handle non-remapped addresses in ->mmap and ->get_sgtable Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-05-03 11:33   ` Catalin Marinas
2019-05-03 11:33     ` Catalin Marinas
2019-05-03 11:33     ` Catalin Marinas
2019-05-07  6:37     ` Christoph Hellwig
2019-05-07  6:37       ` Christoph Hellwig
2019-05-07  6:37       ` Christoph Hellwig
2019-05-07  9:05       ` Will Deacon
2019-05-07  9:05         ` Will Deacon
2019-05-07  9:05         ` Will Deacon
2019-04-30 10:51 ` Christoph Hellwig [this message]
2019-04-30 10:51   ` [PATCH 02/25] dma-mapping: add a Kconfig symbol to indicated arch_dma_prep_coherent presence Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-05-03 11:36   ` Catalin Marinas
2019-05-03 11:36     ` Catalin Marinas
2019-05-03 11:36     ` Catalin Marinas
2019-04-30 10:51 ` [PATCH 03/25] iommu/dma: Cleanup dma-iommu.h Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 04/25] iommu/dma: Remove the flush_page callback Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-05-03 11:43   ` Catalin Marinas
2019-05-03 11:43     ` Catalin Marinas
2019-05-03 11:43     ` Catalin Marinas
2019-05-03 11:44     ` Catalin Marinas
2019-05-03 11:44       ` Catalin Marinas
2019-05-03 11:44       ` Catalin Marinas
2019-04-30 10:51 ` [PATCH 05/25] iommu/dma: Use for_each_sg in iommu_dma_alloc Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 06/25] iommu/dma: move the arm64 wrappers to common code Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-05-03 11:45   ` Catalin Marinas
2019-05-03 11:45     ` Catalin Marinas
2019-05-03 11:45     ` Catalin Marinas
2019-04-30 10:51 ` [PATCH 07/25] iommu/dma: Move __iommu_dma_map Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 08/25] iommu/dma: Move domain lookup into __iommu_dma_{map,unmap} Christoph Hellwig
2019-04-30 10:51   ` [PATCH 08/25] iommu/dma: Move domain lookup into __iommu_dma_{map, unmap} Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 09/25] iommu/dma: Squash __iommu_dma_{map,unmap}_page helpers Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51 ` [PATCH 10/25] iommu/dma: Factor out remapped pages lookup Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:51   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 11/25] iommu/dma: Refactor the page array remapping allocator Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 12/25] iommu/dma: Remove __iommu_dma_free Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 13/25] iommu/dma: Refactor iommu_dma_free Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 14/25] iommu/dma: Refactor iommu_dma_alloc Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 15/25] iommu/dma: Don't remap CMA unnecessarily Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 16/25] iommu/dma: Merge the CMA and alloc_pages allocation paths Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 17/25] iommu/dma: Split iommu_dma_free Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 18/25] iommu/dma: Cleanup variable naming in iommu_dma_alloc Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 19/25] iommu/dma: Refactor iommu_dma_alloc, part 2 Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 20/25] iommu/dma: Refactor iommu_dma_get_sgtable Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 21/25] iommu/dma: Refactor iommu_dma_mmap Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 22/25] iommu/dma: Don't depend on CONFIG_DMA_DIRECT_REMAP Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 23/25] iommu/dma: Switch copyright boilerplace to SPDX Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52 ` [PATCH 24/25] arm64: switch copyright boilerplace to SPDX in dma-mapping.c Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-05-03 11:45   ` Catalin Marinas
2019-05-03 11:45     ` Catalin Marinas
2019-05-03 11:45     ` Catalin Marinas
2019-04-30 10:52 ` [PATCH 25/25] arm64: trim includes " Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-04-30 10:52   ` Christoph Hellwig
2019-05-03 11:46   ` Catalin Marinas
2019-05-03 11:46     ` Catalin Marinas
2019-05-03 11:46     ` Catalin Marinas
2019-05-02 13:22 ` implement generic dma_map_ops for IOMMUs v4 Christoph Hellwig
2019-05-02 13:22   ` Christoph Hellwig
2019-05-02 13:22   ` Christoph Hellwig
2019-05-03 11:47   ` Catalin Marinas
2019-05-03 11:47     ` Catalin Marinas
2019-05-03 11:47     ` Catalin Marinas
2019-05-03 11:59     ` Christoph Hellwig
2019-05-03 11:59       ` Christoph Hellwig
2019-05-03 11:59       ` Christoph Hellwig

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=20190430105214.24628-3-hch@lst.de \
    --to=hch@lst.de \
    --cc=catalin.marinas@arm.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=thomas.lendacky@amd.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.