diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-10-15 02:09:00 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-10-15 02:09:00 +0900 |
commit | c993487ec87ba6d9ea47b03dad562123d503f4a2 (patch) | |
tree | b7e9332b6fbbb8bf105b7db8e79bc0e1d6f55033 /arch/sh/include | |
parent | b6b77b2d5ffd2f8ee74fcc27661f7f4962c34705 (diff) | |
download | blackbird-op-linux-c993487ec87ba6d9ea47b03dad562123d503f4a2.tar.gz blackbird-op-linux-c993487ec87ba6d9ea47b03dad562123d503f4a2.zip |
sh: Provide a generic SRAM pool for tiny memories.
This sets up a generic SRAM pool for CPUs and platform code to insert
their otherwise unused memories into. A simple alloc/free interface is
provided (lifed from avr32) for generic code.
This only applies to tiny SRAMs that are otherwise unmanaged, and does
not take in to account the more complex SRAMs sitting behind transfer
engines, or that employ an I/D split.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include')
-rw-r--r-- | arch/sh/include/asm/sram.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/arch/sh/include/asm/sram.h b/arch/sh/include/asm/sram.h new file mode 100644 index 000000000000..a2808ce4c0aa --- /dev/null +++ b/arch/sh/include/asm/sram.h @@ -0,0 +1,38 @@ +#ifndef __ASM_SRAM_H +#define __ASM_SRAM_H + +#ifdef CONFIG_HAVE_SRAM_POOL + +#include <linux/spinlock.h> +#include <linux/genalloc.h> + +/* arch/sh/mm/sram.c */ +extern struct gen_pool *sram_pool; + +static inline unsigned long sram_alloc(size_t len) +{ + if (!sram_pool) + return 0UL; + + return gen_pool_alloc(sram_pool, len); +} + +static inline void sram_free(unsigned long addr, size_t len) +{ + return gen_pool_free(sram_pool, addr, len); +} + +#else + +static inline unsigned long sram_alloc(size_t len) +{ + return 0; +} + +static inline void sram_free(unsigned long addr, size_t len) +{ +} + +#endif /* CONFIG_HAVE_SRAM_POOL */ + +#endif /* __ASM_SRAM_H */ |