[PATCH v6 3/3] qe_common: add qe_muram_ functions to manage muram
Scott Wood
scottwood at freescale.com
Tue Aug 25 02:34:33 AEST 2015
On Mon, 2015-08-24 at 17:31 +0800, Zhao Qiang wrote:
> muram is used for qe, add qe_muram_ functions to manage
> muram.
>
> Signed-off-by: Zhao Qiang <qiang.zhao at freescale.com>
> ---
> Changes for v2:
> - no changes
> Changes for v3:
> - no changes
> Changes for v4:
> - no changes
> Changes for v5:
> - no changes
> Changes for v5:
> - using genalloc instead rheap to manage QE MURAM
> - remove qe_reset from platform file, using
> - subsys_initcall to call qe_init function.
This patch should come before the one that moves the code.
> diff --git a/drivers/soc/fsl/qe/qe_common.c b/drivers/soc/fsl/qe/qe_common.c
> new file mode 100644
> index 0000000..7f1762c
> --- /dev/null
> +++ b/drivers/soc/fsl/qe/qe_common.c
> @@ -0,0 +1,193 @@
> +/*
> + * common qe code
> + *
> + * author: scott wood <scottwood at freescale.com>
> + *
> + * copyright 2007-2008,2010 freescale Semiconductor, Inc.
> + *
> + * some parts derived from commproc.c/qe2_common.c, which is:
> + * copyright (c) 1997 dan error_act (dmalek at jlc.net)
> + * copyright (c) 1999-2001 dan Malek <dan at embeddedalley.com>
> + * copyright (c) 2000 montavista Software, Inc (source at mvista.com)
> + * 2006 (c) montavista software, Inc.
> + * vitaly bordug <vbordug at ru.mvista.com>
Why did you lowercase everyone's names? Why is this copying code rather than
moving it?
> diff --git a/include/linux/genalloc.h b/include/linux/genalloc.h
> index 55da07e..aaf3dc2 100644
> --- a/include/linux/genalloc.h
> +++ b/include/linux/genalloc.h
> @@ -30,6 +30,7 @@
> #ifndef __GENALLOC_H__
> #define __GENALLOC_H__
>
> +#include <linux/types.h>
> #include <linux/spinlock_types.h>
>
> struct device;
This does not belong in this patch.
> @@ -187,12 +190,41 @@ static inline int qe_alive_during_sleep(void)
> }
>
> /* we actually use cpm_muram implementation, define this for convenience */
> -#define qe_muram_init cpm_muram_init
> -#define qe_muram_alloc cpm_muram_alloc
> -#define qe_muram_alloc_fixed cpm_muram_alloc_fixed
> -#define qe_muram_free cpm_muram_free
> -#define qe_muram_addr cpm_muram_addr
> -#define qe_muram_offset cpm_muram_offset
> +int qe_muram_init(void);
> +
> +#if defined(CONFIG_QUICC_ENGINE)
> +unsigned long qe_muram_alloc(unsigned long size, unsigned long align);
> +int qe_muram_free(unsigned long offset);
> +void __iomem *qe_muram_addr(unsigned long offset);
> +unsigned long qe_muram_offset(void __iomem *addr);
> +dma_addr_t qe_muram_dma(void __iomem *addr);
> +#else
> +static inline unsigned long qe_muram_alloc(unsigned long size,
> + unsigned long align)
> +{
> + return -ENOSYS;
> +}
What code calls these functions without CONFIG_QUICC_ENGINE?
Are you converting qe without cpm? Why?
-Scott
More information about the Linuxppc-dev
mailing list