forked from grate-driver/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs
Continuing the work started in 411f0f3 ... This enables code with a dma path, that compiles away, to build without requiring additional code factoring. It also prevents code that calls dma_alloc_coherent and dma_free_coherent from linking whereas previously the code would hit a BUG() at run time. Finally, it allows archs that set !HAS_DMA to delete their asm/dma-mapping.h file. Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: John W. Linville <linville@tuxdriver.com> Cc: Kyle McMartin <kyle@parisc-linux.org> Cc: James Bottomley <James.Bottomley@SteelEye.com> Cc: Tejun Heo <htejun@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Cc: <geert@linux-m68k.org> Cc: <zippel@linux-m68k.org> Cc: <spyro@f2s.com> Cc: <ysato@users.sourceforge.jp> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Loading branch information
Showing
10 changed files
with
84 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,9 @@ config MMU | |
bool | ||
default y | ||
|
||
config NO_DMA | ||
def_bool y | ||
|
||
config ARCH_ACORN | ||
bool | ||
default y | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -68,6 +68,9 @@ config TIME_LOW_RES | |
config NO_IOPORT | ||
def_bool y | ||
|
||
config NO_DMA | ||
def_bool y | ||
|
||
config ISA | ||
bool | ||
default y | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,6 +31,9 @@ config GENERIC_IRQ_PROBE | |
config NO_IOPORT | ||
def_bool y | ||
|
||
config NO_DMA | ||
def_bool y | ||
|
||
source "init/Kconfig" | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,82 @@ | ||
#ifndef _ASM_GENERIC_DMA_MAPPING_H | ||
#define _ASM_GENERIC_DMA_MAPPING_H | ||
|
||
/* This is used for archs that do not support DMA */ | ||
/* define the dma api to allow compilation but not linking of | ||
* dma dependent code. Code that depends on the dma-mapping | ||
* API needs to set 'depends on HAS_DMA' in its Kconfig | ||
*/ | ||
|
||
static inline void * | ||
struct scatterlist; | ||
|
||
extern void * | ||
dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
gfp_t flag) | ||
{ | ||
BUG(); | ||
return NULL; | ||
} | ||
gfp_t flag); | ||
|
||
static inline void | ||
extern void | ||
dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | ||
dma_addr_t dma_handle) | ||
{ | ||
BUG(); | ||
} | ||
dma_addr_t dma_handle); | ||
|
||
#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | ||
#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | ||
|
||
extern dma_addr_t | ||
dma_map_single(struct device *dev, void *ptr, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
extern int | ||
dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | ||
enum dma_data_direction direction); | ||
|
||
extern dma_addr_t | ||
dma_map_page(struct device *dev, struct page *page, unsigned long offset, | ||
size_t size, enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle, | ||
unsigned long offset, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
extern void | ||
dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, | ||
enum dma_data_direction direction); | ||
|
||
#define dma_sync_single_for_device dma_sync_single_for_cpu | ||
#define dma_sync_single_range_for_device dma_sync_single_range_for_cpu | ||
#define dma_sync_sg_for_device dma_sync_sg_for_cpu | ||
|
||
extern int | ||
dma_mapping_error(dma_addr_t dma_addr); | ||
|
||
extern int | ||
dma_supported(struct device *dev, u64 mask); | ||
|
||
extern int | ||
dma_set_mask(struct device *dev, u64 mask); | ||
|
||
extern int | ||
dma_get_cache_alignment(void); | ||
|
||
extern int | ||
dma_is_consistent(struct device *dev, dma_addr_t dma_handle); | ||
|
||
extern void | ||
dma_cache_sync(struct device *dev, void *vaddr, size_t size, | ||
enum dma_data_direction direction); | ||
|
||
#endif /* _ASM_GENERIC_DMA_MAPPING_H */ |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters