diff options
| author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2008-05-23 20:39:06 +0400 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2008-06-10 11:11:21 -0500 | 
| commit | 5093bb965a163fe288c3e5db0275165f86c895c2 (patch) | |
| tree | 77af9fbf28f45e277443be5abffb85feacc0097c /arch/powerpc/sysdev/qe_lib/qe.c | |
| parent | b13e930906b313d787f4dd07fe78b74a3a8c22c4 (diff) | |
| download | olio-linux-3.10-5093bb965a163fe288c3e5db0275165f86c895c2.tar.xz olio-linux-3.10-5093bb965a163fe288c3e5db0275165f86c895c2.zip  | |
powerpc/QE: switch to the cpm_muram implementation
This is very trivial patch. We're transitioning to the cpm_muram_*
calls. That's it.
Less trivial changes:
- BD_SC_* defines were defined in the cpm.h and qe.h, so to avoid redefines
  we remove BD_SC from the qe.h and use cpm.h along with cpm_muram_*
  prototypes;
- qe_muram_dump was unused and thus removed;
- added some code to the cpm_common.c to support legacy QE bindings
  (data-only node name).
- For convenience, define qe_* calls to cpm_*. So drivers need not to be
  changed.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev/qe_lib/qe.c')
| -rw-r--r-- | arch/powerpc/sysdev/qe_lib/qe.c | 92 | 
1 files changed, 0 insertions, 92 deletions
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index cff550eec7e..28e05df952d 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c @@ -35,7 +35,6 @@  #include <asm/rheap.h>  static void qe_snums_init(void); -static void qe_muram_init(void);  static int qe_sdma_init(void);  static DEFINE_SPINLOCK(qe_lock); @@ -325,97 +324,6 @@ static int qe_sdma_init(void)  	return 0;  } -/* - * muram_alloc / muram_free bits. - */ -static DEFINE_SPINLOCK(qe_muram_lock); - -/* 16 blocks should be enough to satisfy all requests - * until the memory subsystem goes up... */ -static rh_block_t qe_boot_muram_rh_block[16]; -static rh_info_t qe_muram_info; - -static void qe_muram_init(void) -{ -	struct device_node *np; -	const u32 *address; -	u64 size; -	unsigned int flags; - -	/* initialize the info header */ -	rh_init(&qe_muram_info, 1, -		sizeof(qe_boot_muram_rh_block) / -		sizeof(qe_boot_muram_rh_block[0]), qe_boot_muram_rh_block); - -	/* Attach the usable muram area */ -	/* XXX: This is a subset of the available muram. It -	 * varies with the processor and the microcode patches activated. -	 */ -	np = of_find_compatible_node(NULL, NULL, "fsl,qe-muram-data"); -	if (!np) { -		np = of_find_node_by_name(NULL, "data-only"); -		if (!np) { -			WARN_ON(1); -			return; -		} -	} - -	address = of_get_address(np, 0, &size, &flags); -	WARN_ON(!address); - -	of_node_put(np); -	if (address) -		rh_attach_region(&qe_muram_info, *address, (int)size); -} - -/* This function returns an index into the MURAM area. - */ -unsigned long qe_muram_alloc(int size, int align) -{ -	unsigned long start; -	unsigned long flags; - -	spin_lock_irqsave(&qe_muram_lock, flags); -	start = rh_alloc_align(&qe_muram_info, size, align, "QE"); -	spin_unlock_irqrestore(&qe_muram_lock, flags); - -	return start; -} -EXPORT_SYMBOL(qe_muram_alloc); - -int qe_muram_free(unsigned long offset) -{ -	int ret; -	unsigned long flags; - -	spin_lock_irqsave(&qe_muram_lock, flags); -	ret = rh_free(&qe_muram_info, offset); -	spin_unlock_irqrestore(&qe_muram_lock, flags); - -	return ret; -} -EXPORT_SYMBOL(qe_muram_free); - -/* not sure if this is ever needed */ -unsigned long qe_muram_alloc_fixed(unsigned long offset, int size) -{ -	unsigned long start; -	unsigned long flags; - -	spin_lock_irqsave(&qe_muram_lock, flags); -	start = rh_alloc_fixed(&qe_muram_info, offset, size, "commproc"); -	spin_unlock_irqrestore(&qe_muram_lock, flags); - -	return start; -} -EXPORT_SYMBOL(qe_muram_alloc_fixed); - -void qe_muram_dump(void) -{ -	rh_dump(&qe_muram_info); -} -EXPORT_SYMBOL(qe_muram_dump); -  /* The maximum number of RISCs we support */  #define MAX_QE_RISC     2  |