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.