From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-21 11:08:30
Hi all,
This series split out second half of my previous series
"[PATCH 0/4] MIPS DMA coherence fixes".
It intends to use dma_default_coherent to determine the default coherency of
devicetree probed devices instead of hardcoding it with Kconfig options.
For some MIPS systems, dma_default_coherent is determined with either
bootloader or hardware registers in platform initilization code, and devicetree
does not explicility specify the coherency of the device, so we need the ability
to change the default coherency of devicetree probed devices.
For other platforms that supports noncoherent, dma_default_coherent is a fixed
value set by arch code. It's defaulted to false for most archs except RISC-V.
Thanks
- Jiaxun
---
v2:
- Add PATCH 1 to help with backporting
- Use Kconfig option to set dma_default_coherent
v3:
- Style fixes
- Squash setting ARCH_DMA_DEFAULT_COHERENT into PATCH 4
- Setting ARCH_DMA_DEFAULT_COHERENT for PowerPC
Jiaxun Yang (4):
of: address: Fix default coherency for MIPS
dma-mapping: Provide a fallback dma_default_coherent
dma-mapping: Provide CONFIG_ARCH_DMA_DEFAULT_COHERENT
of: address: Always use dma_default_coherent for default coherency
arch/powerpc/Kconfig | 2 +-
arch/riscv/Kconfig | 2 +-
drivers/of/Kconfig | 4 ----
drivers/of/address.c | 2 +-
include/linux/dma-map-ops.h | 2 ++
kernel/dma/Kconfig | 7 +++++++
kernel/dma/mapping.c | 6 +++++-
7 files changed, 17 insertions(+), 8 deletions(-)
--
2.37.1 (Apple Git-137.1)
From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-21 11:09:01
DT-based MIPS doesn't use OF_DMA_DEFAULT_COHERENT, but
might override the system-wide default at runtime.
Use dma_default_coherent to override default coherence for
MIPS.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
drivers/of/address.c | 8 ++++++++
1 file changed, 8 insertions(+)
From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-21 11:09:34
dma_default_coherent was decleared unconditionally at kernel/dma/mapping.c
but only decleared when any of non-coherent options is enabled in
dma-map-ops.h.
Guard the declaration in mapping.c with non-coherent options and provide
a fallback definition.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
v3: Style fix
---
include/linux/dma-map-ops.h | 2 ++
kernel/dma/mapping.c | 4 ++++
2 files changed, 6 insertions(+)
From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-21 11:09:35
As for now all arches have dma_default_coherent reflecting default
DMA coherency for of devices, so there is no need to have a standalone
config option.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
v3: Squash setting ARCH_DMA_DEFAULT_COHERENT into this patch.
---
arch/powerpc/Kconfig | 2 +-
arch/riscv/Kconfig | 2 +-
drivers/of/Kconfig | 4 ----
drivers/of/address.c | 10 +---------
4 files changed, 3 insertions(+), 15 deletions(-)
@@ -102,8 +102,4 @@ config OF_OVERLAYconfigOF_NUMAbool-configOF_DMA_DEFAULT_COHERENT-# arches should select this if DMA is coherent by default for OF devices-bool-endif# OF
From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-21 11:09:35
Provide a kconfig option to allow arches to manipulate default
value of dma_default_coherent in Kconfig.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
v3: Add comments
---
kernel/dma/Kconfig | 7 +++++++
kernel/dma/mapping.c | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
@@ -76,6 +76,13 @@ config ARCH_HAS_DMA_PREP_COHERENTconfigARCH_HAS_FORCE_DMA_UNENCRYPTEDbool+#+# Select this option if the architecture assumes DMA devices are coherent+# by default.+#+configARCH_DMA_DEFAULT_COHERENT+bool+configSWIOTLBboolselectNEED_DMA_MAP_STATE
From: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Date: 2023-03-28 07:46:25
On Tue, Mar 28, 2023 at 03:18:12AM +0200, Christoph Hellwig wrote:
On Fri, Mar 24, 2023 at 09:17:38AM +0000, Jiaxun Yang wrote:
quoted
quoted
Is patch a 6.3 candidate or should all of it go into 6.4?
Please leave it for 6.4, as corresponding MIPS arch part will be a part of 6.4.
Ok. I'll really need review from the MIPS and drivers/of/ maintainers,
through.
I don't see any MIPS changes in the series besides the ifdef CONFIG_MIPS
part in patch 1, which gets removed again in patch 4 (chance to drop
that completely ?).
I've merged the corresponding MIPS patches into mips-next last week.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
From: Jiaxun Yang <jiaxun.yang@flygoat.com> Date: 2023-03-28 13:03:03
2023年3月28日 08:45,Thomas Bogendoerfer [off-list ref] 写道:
On Tue, Mar 28, 2023 at 03:18:12AM +0200, Christoph Hellwig wrote:
quoted
On Fri, Mar 24, 2023 at 09:17:38AM +0000, Jiaxun Yang wrote:
quoted
quoted
Is patch a 6.3 candidate or should all of it go into 6.4?
Please leave it for 6.4, as corresponding MIPS arch part will be a part of 6.4.
Ok. I'll really need review from the MIPS and drivers/of/ maintainers,
through.
+cc devicetree foks.
I don't see any MIPS changes in the series besides the ifdef CONFIG_MIPS
part in patch 1, which gets removed again in patch 4 (chance to drop
that completely ?).
It was suggested by DMA folks to have that patch.
I've merged the corresponding MIPS patches into mips-next last week.
Thanks
- Jiaxun
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
From: Rob Herring <robh+dt@kernel.org> Date: 2023-03-28 14:16:05
On Tue, Mar 21, 2023 at 6:08 AM Jiaxun Yang [off-list ref] wrote:
DT-based MIPS doesn't use OF_DMA_DEFAULT_COHERENT, but
might override the system-wide default at runtime.
Use dma_default_coherent to override default coherence for
MIPS.
I assume you want this tagged for stable? Otherwise, I don't
understand why you add this here and then remove in patch 4.
From: Rob Herring <robh+dt@kernel.org> Date: 2023-03-28 14:17:49
On Tue, Mar 21, 2023 at 6:08 AM Jiaxun Yang [off-list ref] wrote:
As for now all arches have dma_default_coherent reflecting default
DMA coherency for of devices, so there is no need to have a standalone
config option.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
v3: Squash setting ARCH_DMA_DEFAULT_COHERENT into this patch.
---
arch/powerpc/Kconfig | 2 +-
arch/riscv/Kconfig | 2 +-
drivers/of/Kconfig | 4 ----
drivers/of/address.c | 10 +---------
4 files changed, 3 insertions(+), 15 deletions(-)
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2023-03-29 03:27:56
Jiaxun Yang [off-list ref] writes:
quoted hunk
As for now all arches have dma_default_coherent reflecting default
DMA coherency for of devices, so there is no need to have a standalone
config option.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
v3: Squash setting ARCH_DMA_DEFAULT_COHERENT into this patch.
---
arch/powerpc/Kconfig | 2 +-
arch/riscv/Kconfig | 2 +-
drivers/of/Kconfig | 4 ----
drivers/of/address.c | 10 +---------
4 files changed, 3 insertions(+), 15 deletions(-)