Skip to content

Commit

Permalink
dma-mapping: move all DMA mapping code to kernel/dma
Browse files Browse the repository at this point in the history
Currently the code is split over various files with dma- prefixes in the
lib/ and drives/base directories, and the number of files keeps growing.
Move them into a single directory to keep the code together and remove
the file name prefixes.  To match the irq infrastructure this directory
is placed under the kernel/ directory.

Signed-off-by: Christoph Hellwig <[email protected]>
  • Loading branch information
Christoph Hellwig committed Jun 14, 2018
1 parent e37460c commit cf65a0f
Show file tree
Hide file tree
Showing 18 changed files with 69 additions and 72 deletions.
4 changes: 2 additions & 2 deletions Documentation/driver-api/infrastructure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ Device Drivers Base
Device Drivers DMA Management
-----------------------------

.. kernel-doc:: drivers/base/dma-coherent.c
.. kernel-doc:: kernel/dma/coherent.c
:export:

.. kernel-doc:: drivers/base/dma-mapping.c
.. kernel-doc:: kernel/dma/mapping.c
:export:

Device drivers PnP support
Expand Down
9 changes: 2 additions & 7 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -4359,12 +4359,7 @@ L: [email protected]
T: git git://git.infradead.org/users/hch/dma-mapping.git
W: http://git.infradead.org/users/hch/dma-mapping.git
S: Supported
F: lib/dma-debug.c
F: lib/dma-direct.c
F: lib/dma-noncoherent.c
F: lib/dma-virt.c
F: drivers/base/dma-mapping.c
F: drivers/base/dma-coherent.c
F: kernel/dma/
F: include/asm-generic/dma-mapping.h
F: include/linux/dma-direct.h
F: include/linux/dma-mapping.h
Expand Down Expand Up @@ -13642,7 +13637,7 @@ M: Konrad Rzeszutek Wilk <[email protected]>
L: [email protected]
T: git git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb.git
S: Supported
F: lib/swiotlb.c
F: kernel/dma/swiotlb.c
F: arch/*/kernel/pci-swiotlb.c
F: include/linux/swiotlb.h

Expand Down
3 changes: 0 additions & 3 deletions drivers/base/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ obj-y := component.o core.o bus.o dd.o syscore.o \
topology.o container.o property.o cacheinfo.o \
devcon.o
obj-$(CONFIG_DEVTMPFS) += devtmpfs.o
obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
obj-y += power/
obj-$(CONFIG_HAS_DMA) += dma-mapping.o
obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
obj-$(CONFIG_ISA_BUS_API) += isa.o
obj-y += firmware_loader/
obj-$(CONFIG_NUMA) += node.o
Expand Down
2 changes: 1 addition & 1 deletion include/linux/dma-contiguous.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
* CMA should not be used by the device drivers directly. It is
* only a helper framework for dma-mapping subsystem.
*
* For more information, see kernel-docs in drivers/base/dma-contiguous.c
* For more information, see kernel-docs in kernel/dma/contiguous.c
*/

#ifdef __KERNEL__
Expand Down
4 changes: 0 additions & 4 deletions init/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1719,10 +1719,6 @@ source "arch/Kconfig"

endmenu # General setup

config HAVE_GENERIC_DMA_COHERENT
bool
default n

config RT_MUTEXES
bool

Expand Down
1 change: 1 addition & 0 deletions kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ obj-y += printk/
obj-y += irq/
obj-y += rcu/
obj-y += livepatch/
obj-y += dma/

obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
obj-$(CONFIG_FREEZER) += freezer.o
Expand Down
50 changes: 50 additions & 0 deletions kernel/dma/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

config HAS_DMA
bool
depends on !NO_DMA
default y

config NEED_SG_DMA_LENGTH
bool

config NEED_DMA_MAP_STATE
bool

config ARCH_DMA_ADDR_T_64BIT
def_bool 64BIT || PHYS_ADDR_T_64BIT

config HAVE_GENERIC_DMA_COHERENT
bool

config ARCH_HAS_SYNC_DMA_FOR_DEVICE
bool

config ARCH_HAS_SYNC_DMA_FOR_CPU
bool
select NEED_DMA_MAP_STATE

config DMA_DIRECT_OPS
bool
depends on HAS_DMA

config DMA_NONCOHERENT_OPS
bool
depends on HAS_DMA
select DMA_DIRECT_OPS

config DMA_NONCOHERENT_MMAP
bool
depends on DMA_NONCOHERENT_OPS

config DMA_NONCOHERENT_CACHE_SYNC
bool
depends on DMA_NONCOHERENT_OPS

config DMA_VIRT_OPS
bool
depends on HAS_DMA

config SWIOTLB
bool
select DMA_DIRECT_OPS
select NEED_DMA_MAP_STATE
11 changes: 11 additions & 0 deletions kernel/dma/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: GPL-2.0

obj-$(CONFIG_HAS_DMA) += mapping.o
obj-$(CONFIG_DMA_CMA) += contiguous.o
obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += coherent.o
obj-$(CONFIG_DMA_DIRECT_OPS) += direct.o
obj-$(CONFIG_DMA_NONCOHERENT_OPS) += noncoherent.o
obj-$(CONFIG_DMA_VIRT_OPS) += virt.o
obj-$(CONFIG_DMA_API_DEBUG) += debug.o
obj-$(CONFIG_SWIOTLB) += swiotlb.o

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion drivers/base/dma-mapping.c → kernel/dma/mapping.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/*
* drivers/base/dma-mapping.c - arch-independent dma-mapping routines
* arch-independent dma-mapping routines
*
* Copyright (c) 2006 SUSE Linux Products GmbH
* Copyright (c) 2006 Tejun Heo <[email protected]>
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 0 additions & 2 deletions lib/dma-virt.c → kernel/dma/virt.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
// SPDX-License-Identifier: GPL-2.0
/*
* lib/dma-virt.c
*
* DMA operations that map to virtual addresses without flushing memory.
*/
#include <linux/export.h>
Expand Down
47 changes: 1 addition & 46 deletions lib/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -420,60 +420,15 @@ config HAS_IOPORT_MAP
depends on HAS_IOMEM && !NO_IOPORT_MAP
default y

config HAS_DMA
bool
depends on !NO_DMA
default y
source "kernel/dma/Kconfig"

config SGL_ALLOC
bool
default n

config NEED_SG_DMA_LENGTH
bool

config NEED_DMA_MAP_STATE
bool

config ARCH_DMA_ADDR_T_64BIT
def_bool 64BIT || PHYS_ADDR_T_64BIT

config IOMMU_HELPER
bool

config ARCH_HAS_SYNC_DMA_FOR_DEVICE
bool

config ARCH_HAS_SYNC_DMA_FOR_CPU
bool
select NEED_DMA_MAP_STATE

config DMA_DIRECT_OPS
bool
depends on HAS_DMA

config DMA_NONCOHERENT_OPS
bool
depends on HAS_DMA
select DMA_DIRECT_OPS

config DMA_NONCOHERENT_MMAP
bool
depends on DMA_NONCOHERENT_OPS

config DMA_NONCOHERENT_CACHE_SYNC
bool
depends on DMA_NONCOHERENT_OPS

config DMA_VIRT_OPS
bool
depends on HAS_DMA

config SWIOTLB
bool
select DMA_DIRECT_OPS
select NEED_DMA_MAP_STATE

config CHECK_SIGNATURE
bool

Expand Down
6 changes: 0 additions & 6 deletions lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \
lib-$(CONFIG_PRINTK) += dump_stack.o
lib-$(CONFIG_MMU) += ioremap.o
lib-$(CONFIG_SMP) += cpumask.o
obj-$(CONFIG_DMA_DIRECT_OPS) += dma-direct.o
obj-$(CONFIG_DMA_NONCOHERENT_OPS) += dma-noncoherent.o
obj-$(CONFIG_DMA_VIRT_OPS) += dma-virt.o

lib-y += kobject.o klist.o
obj-y += lockref.o
Expand Down Expand Up @@ -148,7 +145,6 @@ obj-$(CONFIG_SMP) += percpu_counter.o
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
obj-$(CONFIG_AUDIT_COMPAT_GENERIC) += compat_audit.o

obj-$(CONFIG_SWIOTLB) += swiotlb.o
obj-$(CONFIG_IOMMU_HELPER) += iommu-helper.o
obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o
obj-$(CONFIG_NOTIFIER_ERROR_INJECTION) += notifier-error-inject.o
Expand All @@ -169,8 +165,6 @@ obj-$(CONFIG_NLATTR) += nlattr.o

obj-$(CONFIG_LRU_CACHE) += lru_cache.o

obj-$(CONFIG_DMA_API_DEBUG) += dma-debug.o

obj-$(CONFIG_GENERIC_CSUM) += checksum.o

obj-$(CONFIG_GENERIC_ATOMIC64) += atomic64.o
Expand Down

0 comments on commit cf65a0f

Please sign in to comment.