Thread (4 messages) 4 messages, 2 authors, 2011-01-26

Re: [patch] kconfig: unify GENERIC_ISA_DMA and ISA_DMA_API

flat view

From: Russell King - ARM Linux <hidden>
Date: 2011-01-26 20:12:19
Also in: linux-arch, linux-scsi, lkml

On Wed, Jan 26, 2011 at 12:00:08PM -0800, David Rientjes wrote:
On Wed, 26 Jan 2011, Russell King - ARM Linux wrote:
quoted
On Tue, Jan 25, 2011 at 05:06:28PM -0800, David Rientjes wrote:
quoted
CONFIG_GENERIC_ISA_DMA and CONFIG_ISA_DMA_API usually have dependencies
on one another depending on the architecture and generic kernel code uses
either to determine whether an ISA-style DMA API is configured.
Wrong.

GENERIC_ISA_DMA enables support for the standard ISA DMA allocator found
in kernel/dma.c

ISA_DMA_API says that a platform supports the ISA DMA interfaces.

An architecture can provide the ISA DMA interfaces, but not use the
standard ISA DMA allocator found in kernel/dma.c.  Such as the one in
arch/arm/kernel/dma.c.

So on ARM, we have platforms where ISA_DMA_API=y but GENERIC_ISA_DMA=n.
Ok, fair enough.  Thanks for pointing that out.  I'll work to resolve the 
existing dependency chain on x86 that cause build failures when one is 
disabled and another is not and add Kconfig dependencies on drivers that 
require GENERIC_ISA_DMA.
Drivers should depend on ISA_DMA_API as that indicates that the ISA DMA
API is present - in other words, when the following are available from
an architecture/platform:

dma_spin_lock
claim_dma_lock
release_dma_lock
enable_dma
disable_dma
clear_dma_ff
set_dma_mode
set_dma_page
set_dma_addr
set_dma_count
get_dma_residue
request_dma
free_dma

GENERIC_ISA_DMA should be set by an architecture/platform when ISA_DMA_API
has already been set -and- it wants to use kernel/dma.c.  No drivers should
depend on GENERIC_ISA_DMA.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help