linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] qe_common: add qe common functions into qe_common.c
@ 2015-05-27  9:11 Zhao Qiang
  2015-05-27  9:12 ` [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/ Zhao Qiang
  2015-05-27 22:51 ` [PATCH 1/2] qe_common: add qe common functions into qe_common.c Scott Wood
  0 siblings, 2 replies; 20+ messages in thread
From: Zhao Qiang @ 2015-05-27  9:11 UTC (permalink / raw)
  To: linuxppc-dev, B07421; +Cc: R63061, Zhao Qiang

qe need to call some common functions,
add a new file drivers/soc/fsl/qe/qe_common.c
for them.

Signed-off-by: Zhao Qiang <B45475@freescale.com>
---
 drivers/soc/fsl/qe/Makefile    |   3 +-
 drivers/soc/fsl/qe/qe_common.c | 185 +++++++++++++++++++++++++++++++++++++++++
 include/soc/fsl/qe.h           |  75 +++++++++++++++--
 3 files changed, 253 insertions(+), 10 deletions(-)
 create mode 100644 drivers/soc/fsl/qe/qe_common.c

diff --git a/drivers/soc/fsl/qe/Makefile b/drivers/soc/fsl/qe/Makefile
index 703793f..49acb89 100644
--- a/drivers/soc/fsl/qe/Makefile
+++ b/drivers/soc/fsl/qe/Makefile
@@ -1,8 +1,7 @@
 #
 # Makefile for the linux ppc-specific parts of QE
 #
-obj-$(CONFIG_QUICC_ENGINE)	+= qe.o
-
+obj-$(CONFIG_QUICC_ENGINE)	+= qe.o qe_common.o
 obj-$(CONFIG_UCC)		+= ucc.o
 obj-$(CONFIG_UCC_SLOW)		+= ucc_slow.o
 obj-$(CONFIG_UCC_FAST)		+= ucc_fast.o
diff --git a/drivers/soc/fsl/qe/qe_common.c b/drivers/soc/fsl/qe/qe_common.c
new file mode 100644
index 0000000..382ee7c
--- /dev/null
+++ b/drivers/soc/fsl/qe/qe_common.c
@@ -0,0 +1,185 @@
+/*
+ * common qe code
+ *
+ * author: scott wood <scottwood@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@jlc.net)
+ * copyright (c) 1999-2001 dan Malek <dan@embeddedalley.com>
+ * copyright (c) 2000 montavista Software, Inc (source@mvista.com)
+ * 2006 (c) montavista software, Inc.
+ * vitaly bordug <vbordug@ru.mvista.com>
+ *
+ * this program is free software; you can redistribute it and/or modify
+ * it under the terms of version 2 of the GNU General Public License as
+ * published by the free software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/of_device.h>
+#include <linux/spinlock.h>
+#include <linux/export.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/slab.h>
+
+#include <linux/io.h>
+#include <asm/rheap.h>
+#include <soc/fsl/qe.h>
+
+static spinlock_t qe_muram_lock;
+static rh_block_t qe_boot_muram_rh_block[16];
+static rh_info_t qe_muram_info;
+static u8 __iomem *muram_vbase;
+static phys_addr_t muram_pbase;
+
+/* max address size we deal with */
+#define OF_MAX_ADDR_CELLS	4
+
+int qe_muram_init(void)
+{
+	struct device_node *np;
+	struct resource r;
+	u32 zero[OF_MAX_ADDR_CELLS] = {};
+	resource_size_t max = 0;
+	int i = 0;
+	int ret = 0;
+
+	if (muram_pbase)
+		return 0;
+
+	spin_lock_init(&qe_muram_lock);
+	/* 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);
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,qe-muram-data");
+	if (!np) {
+		/* try legacy bindings */
+		np = of_find_node_by_name(NULL, "data-only");
+		if (!np) {
+			printk(KERN_ERR "Cannot find CPM muram data node");
+			ret = -ENODEV;
+			goto out;
+		}
+	}
+
+	muram_pbase = of_translate_address(np, zero);
+	if (muram_pbase == (phys_addr_t)OF_BAD_ADDR) {
+		printk(KERN_ERR "Cannot translate zero through CPM muram node");
+		ret = -ENODEV;
+		goto out;
+	}
+
+	while (of_address_to_resource(np, i++, &r) == 0) {
+		if (r.end > max)
+			max = r.end;
+
+		rh_attach_region(&qe_muram_info, r.start - muram_pbase,
+				 resource_size(&r));
+	}
+
+	muram_vbase = ioremap(muram_pbase, max - muram_pbase + 1);
+	if (!muram_vbase) {
+		printk(KERN_ERR "Cannot map CPM muram");
+		ret = -ENOMEM;
+	}
+
+out:
+	of_node_put(np);
+	return ret;
+}
+
+/**
+ * qe_muram_alloc - allocate the requested size worth of multi-user ram
+ * @size: number of bytes to allocate
+ * @align: requested alignment, in bytes
+ *
+ * This function returns an offset into the muram area.
+ * Use qe_dpram_addr() to get the virtual address of the area.
+ * Use qe_muram_free() to free the allocation.
+ */
+unsigned long qe_muram_alloc(unsigned long size, unsigned long align)
+{
+	unsigned long start;
+	unsigned long flags;
+
+	spin_lock_irqsave(&qe_muram_lock, flags);
+	qe_muram_info.alignment = align;
+	start = rh_alloc(&qe_muram_info, size, "commproc");
+	memset(qe_muram_addr(start), 0, size);
+	spin_unlock_irqrestore(&qe_muram_lock, flags);
+
+	return start;
+}
+EXPORT_SYMBOL(qe_muram_alloc);
+
+/**
+ * qe_muram_free - free a chunk of multi-user ram
+ * @offset: The beginning of the chunk as returned by 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);
+
+/**
+ * qe_muram_alloc_fixed - reserve a specific region of multi-user ram
+ * @offset: the offset into the muram area to reserve
+ * @size: the number of bytes to reserve
+ *
+ * This function returns "start" on success, -ENOMEM on failure.
+ * Use qe_dpram_addr() to get the virtual address of the area.
+ * Use qe_muram_free() to free the allocation.
+ */
+unsigned long qe_muram_alloc_fixed(unsigned long offset, unsigned long size)
+{
+	unsigned long start;
+	unsigned long flags;
+
+	spin_lock_irqsave(&qe_muram_lock, flags);
+	qe_muram_info.alignment = 1;
+	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);
+
+/**
+ * qe_muram_addr - turn a muram offset into a virtual address
+ * @offset: muram offset to convert
+ */
+void __iomem *qe_muram_addr(unsigned long offset)
+{
+	return muram_vbase + offset;
+}
+EXPORT_SYMBOL(qe_muram_addr);
+
+unsigned long qe_muram_offset(void __iomem *addr)
+{
+	return addr - (void __iomem *)muram_vbase;
+}
+EXPORT_SYMBOL(qe_muram_offset);
+
+/**
+ * qe_muram_dma - turn a muram virtual address into a DMA address
+ * @offset: virtual address from qe_muram_addr() to convert
+ */
+dma_addr_t qe_muram_dma(void __iomem *addr)
+{
+	return muram_pbase + ((u8 __iomem *)addr - muram_vbase);
+}
+EXPORT_SYMBOL(qe_muram_dma);
diff --git a/include/soc/fsl/qe.h b/include/soc/fsl/qe.h
index 5b54099..7291f7e 100644
--- a/include/soc/fsl/qe.h
+++ b/include/soc/fsl/qe.h
@@ -16,10 +16,13 @@
 #define _ASM_POWERPC_QE_H
 #ifdef __KERNEL__
 
+#include <linux/compiler.h>
 #include <linux/spinlock.h>
 #include <linux/errno.h>
 #include <linux/err.h>
-#include <asm/cpm.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/types.h>
 #include <soc/fsl/immap_qe.h>
 
 #define QE_NUM_OF_SNUM	256	/* There are 256 serial number in QE */
@@ -186,13 +189,48 @@ static inline int qe_alive_during_sleep(void)
 #endif
 }
 
-/* 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);
+unsigned long qe_muram_alloc_fixed(unsigned long offset, unsigned long size);
+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;
+}
+
+static inline int qe_muram_free(unsigned long offset)
+{
+	return -ENOSYS;
+}
+
+static inline unsigned long qe_muram_alloc_fixed(unsigned long offset,
+						  unsigned long size)
+{
+	return -ENOSYS;
+}
+
+static inline void __iomem *qe_muram_addr(unsigned long offset)
+{
+	return NULL;
+}
+
+static inline unsigned long qe_muram_offset(void __iomem *addr)
+{
+	return -ENOSYS;
+}
+
+static inline dma_addr_t qe_muram_dma(void __iomem *addr)
+{
+	return 0;
+}
+#endif /* defined(CONFIG_QUICC_ENGINE) */
 
 /* Structure that defines QE firmware binary files.
  *
@@ -266,6 +304,27 @@ struct qe_bd {
 #define BD_STATUS_MASK	0xffff0000
 #define BD_LENGTH_MASK	0x0000ffff
 
+/* Buffer descriptor control/status used by serial
+ */
+
+#define BD_SC_EMPTY	(0x8000)	/* Receive is empty */
+#define BD_SC_READY	(0x8000)	/* Transmit is ready */
+#define BD_SC_WRAP	(0x2000)	/* Last buffer descriptor */
+#define BD_SC_INTRPT	(0x1000)	/* Interrupt on change */
+#define BD_SC_LAST	(0x0800)	/* Last buffer in frame */
+#define BD_SC_TC	(0x0400)	/* Transmit CRC */
+#define BD_SC_CM	(0x0200)	/* Continuous mode */
+#define BD_SC_ID	(0x0100)	/* Rec'd too many idles */
+#define BD_SC_P		(0x0100)	/* xmt preamble */
+#define BD_SC_BR	(0x0020)	/* Break received */
+#define BD_SC_FR	(0x0010)	/* Framing error */
+#define BD_SC_PR	(0x0008)	/* Parity error */
+#define BD_SC_NAK	(0x0004)	/* NAK - did not respond */
+#define BD_SC_OV	(0x0002)	/* Overrun */
+#define BD_SC_UN	(0x0002)	/* Underrun */
+#define BD_SC_CD	(0x0001)	/* */
+#define BD_SC_CL	(0x0001)	/* Collision */
+
 /* Alignment */
 #define QE_INTR_TABLE_ALIGN	16	/* ??? */
 #define QE_ALIGNMENT_OF_BD	8
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-05-27  9:11 [PATCH 1/2] qe_common: add qe common functions into qe_common.c Zhao Qiang
@ 2015-05-27  9:12 ` Zhao Qiang
  2015-05-27 17:36   ` Scott Wood
  2015-05-27 22:51 ` [PATCH 1/2] qe_common: add qe common functions into qe_common.c Scott Wood
  1 sibling, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-05-27  9:12 UTC (permalink / raw)
  To: linuxppc-dev, B07421; +Cc: R63061, Zhao Qiang

qe need to use the rheap, so move it to public directory.

Signed-off-by: Zhao Qiang <B45475@freescale.com>
---
 arch/powerpc/Kconfig                                    | 3 ---
 arch/powerpc/include/asm/fsl_85xx_cache_sram.h          | 2 +-
 arch/powerpc/lib/Makefile                               | 2 --
 arch/powerpc/platforms/44x/Kconfig                      | 2 +-
 arch/powerpc/platforms/85xx/Kconfig                     | 2 +-
 arch/powerpc/platforms/Kconfig                          | 2 +-
 arch/powerpc/platforms/Kconfig.cputype                  | 2 +-
 arch/powerpc/sysdev/cpm1.c                              | 2 +-
 arch/powerpc/sysdev/cpm2.c                              | 2 +-
 arch/powerpc/sysdev/cpm_common.c                        | 2 +-
 arch/powerpc/sysdev/ppc4xx_ocm.c                        | 2 +-
 drivers/dma/bestcomm/Kconfig                            | 2 +-
 drivers/soc/fsl/qe/Kconfig                              | 2 +-
 drivers/soc/fsl/qe/qe.c                                 | 2 +-
 drivers/soc/fsl/qe/qe_common.c                          | 2 +-
 include/linux/fsl/bestcomm/sram.h                       | 2 +-
 {arch/powerpc/include/asm => include/linux/fsl}/rheap.h | 0
 lib/Kconfig                                             | 3 +++
 lib/Makefile                                            | 2 ++
 {arch/powerpc/lib => lib}/rheap.c                       | 2 +-
 20 files changed, 20 insertions(+), 20 deletions(-)
 rename {arch/powerpc/include/asm => include/linux/fsl}/rheap.h (100%)
 rename {arch/powerpc/lib => lib}/rheap.c (99%)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index d003409..c9b16bf 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -1069,7 +1069,4 @@ config KEYS_COMPAT
 
 source "crypto/Kconfig"
 
-config PPC_LIB_RHEAP
-	bool
-
 source "arch/powerpc/kvm/Kconfig"
diff --git a/arch/powerpc/include/asm/fsl_85xx_cache_sram.h b/arch/powerpc/include/asm/fsl_85xx_cache_sram.h
index 2af2bdc..e57888a 100644
--- a/arch/powerpc/include/asm/fsl_85xx_cache_sram.h
+++ b/arch/powerpc/include/asm/fsl_85xx_cache_sram.h
@@ -26,7 +26,7 @@
 #ifndef __ASM_POWERPC_FSL_85XX_CACHE_SRAM_H__
 #define __ASM_POWERPC_FSL_85XX_CACHE_SRAM_H__
 
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <linux/spinlock.h>
 
 /*
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index 59fa2de..c73dff8 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -32,8 +32,6 @@ obj-$(CONFIG_SMP)	+= locks.o
 obj-$(CONFIG_ALTIVEC)	+= vmx-helper.o
 endif
 
-obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o
-
 obj-y			+= code-patching.o
 obj-y			+= feature-fixups.o
 obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index 4d88f6a..c7994ff 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -282,7 +282,7 @@ config PPC4xx_GPIO
 config PPC4xx_OCM
 	bool "PPC4xx On Chip Memory (OCM) support"
 	depends on 4xx
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 	help
 	  Enable OCM support for PowerPC 4xx platforms with on chip memory,
 	  OCM provides the fast place for memory access to improve performance.
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index f22635a..0a7cb9d 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -16,7 +16,7 @@ if PPC32
 
 config FSL_85XX_CACHE_SRAM
 	bool
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 	help
 	  When selected, this option enables cache-sram support
 	  for memory allocation on P1/P2 QorIQ platforms.
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index ae8879c..25740c4 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -281,7 +281,7 @@ config CPM2
 	bool "Enable support for the CPM2 (Communications Processor Module)"
 	depends on (FSL_SOC_BOOKE && PPC32) || 8260
 	select CPM
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 	select PPC_PCI_CHOICE
 	select ARCH_REQUIRE_GPIOLIB
 	help
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index a41bd02..0bb8c58 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -33,7 +33,7 @@ config PPC_8xx
 	bool "Freescale 8xx"
 	select FSL_SOC
 	select 8xx
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 
 config 40x
 	bool "AMCC 40x"
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index 5e6ff38..c6f5762 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -38,7 +38,7 @@
 #include <asm/cpm1.h>
 #include <asm/io.h>
 #include <asm/tlbflush.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <asm/prom.h>
 #include <asm/cpm.h>
 
diff --git a/arch/powerpc/sysdev/cpm2.c b/arch/powerpc/sysdev/cpm2.c
index 8dc1e24..5a63d35 100644
--- a/arch/powerpc/sysdev/cpm2.c
+++ b/arch/powerpc/sysdev/cpm2.c
@@ -41,7 +41,7 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/cpm2.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <asm/fs_pd.h>
 
 #include <sysdev/fsl_soc.h>
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c
index 4f78695..3e06505 100644
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
@@ -27,7 +27,7 @@
 
 #include <asm/udbg.h>
 #include <asm/io.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <asm/cpm.h>
 
 #include <mm/mmu_decl.h>
diff --git a/arch/powerpc/sysdev/ppc4xx_ocm.c b/arch/powerpc/sysdev/ppc4xx_ocm.c
index 85d9e37..cfe2e19 100644
--- a/arch/powerpc/sysdev/ppc4xx_ocm.c
+++ b/arch/powerpc/sysdev/ppc4xx_ocm.c
@@ -27,7 +27,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <asm/ppc4xx_ocm.h>
 #include <linux/slab.h>
 #include <linux/debugfs.h>
diff --git a/drivers/dma/bestcomm/Kconfig b/drivers/dma/bestcomm/Kconfig
index 29e4270..9bb1bf8 100644
--- a/drivers/dma/bestcomm/Kconfig
+++ b/drivers/dma/bestcomm/Kconfig
@@ -6,7 +6,7 @@ config PPC_BESTCOMM
 	tristate "Bestcomm DMA engine support"
 	depends on PPC_MPC52xx
 	default n
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 	help
 	  BestComm is the name of the communication coprocessor found
 	  on the Freescale MPC5200 family of processor.  Its usage is
diff --git a/drivers/soc/fsl/qe/Kconfig b/drivers/soc/fsl/qe/Kconfig
index e6b8862..fe387ee 100644
--- a/drivers/soc/fsl/qe/Kconfig
+++ b/drivers/soc/fsl/qe/Kconfig
@@ -4,7 +4,7 @@
 config QUICC_ENGINE
 	bool "Freescale QUICC Engine (QE) Support"
 	depends on FSL_SOC && PPC32
-	select PPC_LIB_RHEAP
+	select LIB_RHEAP
 	select CRC32
 	help
 	  The QUICC Engine (QE) is a new generation of communications
diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c
index 2c56958..151d9e7 100644
--- a/drivers/soc/fsl/qe/qe.c
+++ b/drivers/soc/fsl/qe/qe.c
@@ -33,7 +33,7 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/prom.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <soc/fsl/immap_qe.h>
 #include <soc/fsl/qe.h>
 
diff --git a/drivers/soc/fsl/qe/qe_common.c b/drivers/soc/fsl/qe/qe_common.c
index 382ee7c..7b495b6 100644
--- a/drivers/soc/fsl/qe/qe_common.c
+++ b/drivers/soc/fsl/qe/qe_common.c
@@ -26,7 +26,7 @@
 #include <linux/slab.h>
 
 #include <linux/io.h>
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <soc/fsl/qe.h>
 
 static spinlock_t qe_muram_lock;
diff --git a/include/linux/fsl/bestcomm/sram.h b/include/linux/fsl/bestcomm/sram.h
index b6d6689..117eaa1 100644
--- a/include/linux/fsl/bestcomm/sram.h
+++ b/include/linux/fsl/bestcomm/sram.h
@@ -12,7 +12,7 @@
 #ifndef __BESTCOMM_SRAM_H__
 #define __BESTCOMM_SRAM_H__
 
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 #include <asm/mmu.h>
 #include <linux/spinlock.h>
 
diff --git a/arch/powerpc/include/asm/rheap.h b/include/linux/fsl/rheap.h
similarity index 100%
rename from arch/powerpc/include/asm/rheap.h
rename to include/linux/fsl/rheap.h
diff --git a/lib/Kconfig b/lib/Kconfig
index 334f772..f5d5e99 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -393,6 +393,9 @@ config CPU_RMAP
 	bool
 	depends on SMP
 
+config LIB_RHEAP
+	bool
+
 config DQL
 	bool
 
diff --git a/lib/Makefile b/lib/Makefile
index ba967a1..dccdef1 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -193,3 +193,5 @@ quiet_cmd_build_OID_registry = GEN     $@
 clean-files	+= oid_registry_data.c
 
 obj-$(CONFIG_UCS2_STRING) += ucs2_string.o
+
+obj-$(CONFIG_LIB_RHEAP) += rheap.o
diff --git a/arch/powerpc/lib/rheap.c b/lib/rheap.c
similarity index 99%
rename from arch/powerpc/lib/rheap.c
rename to lib/rheap.c
index a1060a8..af180fd 100644
--- a/arch/powerpc/lib/rheap.c
+++ b/lib/rheap.c
@@ -20,7 +20,7 @@
 #include <linux/err.h>
 #include <linux/slab.h>
 
-#include <asm/rheap.h>
+#include <linux/fsl/rheap.h>
 
 /*
  * Fixup a list_head, needed when copying lists.  If the pointers fall
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-05-27  9:12 ` [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/ Zhao Qiang
@ 2015-05-27 17:36   ` Scott Wood
  2015-06-04  5:56     ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-05-27 17:36 UTC (permalink / raw)
  To: Zhao Qiang; +Cc: linuxppc-dev, B07421, R63061

On Wed, 2015-05-27 at 17:12 +0800, Zhao Qiang wrote:
> qe need to use the rheap, so move it to public directory.

You've been previously asked to use lib/genalloc.c rather than 
introduce duplicate functionality into /lib.  NACK.

Also, please don't use coreid-based e-mail addresses with no real 
names associated, which makes it hard to tell who has been CCed.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 1/2] qe_common: add qe common functions into qe_common.c
  2015-05-27  9:11 [PATCH 1/2] qe_common: add qe common functions into qe_common.c Zhao Qiang
  2015-05-27  9:12 ` [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/ Zhao Qiang
@ 2015-05-27 22:51 ` Scott Wood
  1 sibling, 0 replies; 20+ messages in thread
From: Scott Wood @ 2015-05-27 22:51 UTC (permalink / raw)
  To: Zhao Qiang; +Cc: linuxppc-dev, B07421, R63061

On Wed, 2015-05-27 at 17:11 +0800, Zhao Qiang wrote:
> +int qe_muram_init(void)
> +{
> +     struct device_node *np;
> +     struct resource r;
> +     u32 zero[OF_MAX_ADDR_CELLS] = {};
> +     resource_size_t max = 0;
> +     int i = 0;
> +     int ret = 0;
> +
> +     if (muram_pbase)
> +             return 0;
> +
> +     spin_lock_init(&qe_muram_lock);
> +     /* 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);

NACK (see patch 2/2), and even if rheap were acceptable that would 
have needed to come before patches using it outside arch/powerpc.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-05-27 17:36   ` Scott Wood
@ 2015-06-04  5:56     ` Zhao Qiang
  2015-06-04  6:13       ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-06-04  5:56 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

T24gVGh1LCAyMDE1LTA1LTI4IGF0IDE6MzdBTSArMDgwMCwgV29vZCBTY290dCB3cm90ZToNCg0K
DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdvb2QgU2NvdHQtQjA3NDIx
DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXkgMjgsIDIwMTUgMTozNyBBTQ0KPiBUbzogWmhhbyBRaWFu
Zy1CNDU0NzUNCj4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyBXb29kIFNjb3R0
LUIwNzQyMTsgWGllIFhpYW9iby1SNjMwNjENCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIHJo
ZWFwOiBtb3ZlIHJoZWFwLmMgZnJvbSBhcmNoL3Bvd2VycGMvbGliLyB0bw0KPiBsaWIvDQo+IA0K
PiBPbiBXZWQsIDIwMTUtMDUtMjcgYXQgMTc6MTIgKzA4MDAsIFpoYW8gUWlhbmcgd3JvdGU6DQo+
ID4gcWUgbmVlZCB0byB1c2UgdGhlIHJoZWFwLCBzbyBtb3ZlIGl0IHRvIHB1YmxpYyBkaXJlY3Rv
cnkuDQo+IA0KPiBZb3UndmUgYmVlbiBwcmV2aW91c2x5IGFza2VkIHRvIHVzZSBsaWIvZ2VuYWxs
b2MuYyByYXRoZXIgdGhhbiBpbnRyb2R1Y2UNCj4gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgaW50
byAvbGliLiAgTkFDSy4NCg0KQ2FuJ3QgdXNlIGxpYi9nZW5hbGxvYy5jIGluc3RlYWQgb2Ygcmhl
YXAuYy4NClFlIG5lZWQgdG8gYWxsb2MgbXVyYW0gb2YgcWUsIG5vdCBESU1NLg0KDQo+IA0KPiBB
bHNvLCBwbGVhc2UgZG9uJ3QgdXNlIGNvcmVpZC1iYXNlZCBlLW1haWwgYWRkcmVzc2VzIHdpdGgg
bm8gcmVhbCBuYW1lcw0KPiBhc3NvY2lhdGVkLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIHRlbGwg
d2hvIGhhcyBiZWVuIENDZWQuDQo+IA0KPiAtU2NvdHQNCkJlc3QgUmVnYXJkcw0KWmhhbyBRaWFu
Zw0K

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-06-04  5:56     ` Zhao Qiang
@ 2015-06-04  6:13       ` Scott Wood
  2015-06-04  9:27         ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-06-04  6:13 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Thu, 2015-06-04 at 00:56 -0500, Zhao Qiang-B45475 wrote:
> On Thu, 2015-05-28 at 1:37AM +0800, Wood Scott wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, May 28, 2015 1:37 AM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421; Xie Xiaobo-
> > R63061
> > Subject: Re: [PATCH 2/2] rheap: move rheap.c from 
> > arch/powerpc/lib/ to
> > lib/
> > 
> > On Wed, 2015-05-27 at 17:12 +0800, Zhao Qiang wrote:
> > > qe need to use the rheap, so move it to public directory.
> > 
> > You've been previously asked to use lib/genalloc.c rather than 
> > introduce
> > duplicate functionality into /lib.  NACK.
> 
> Can't use lib/genalloc.c instead of rheap.c.
> Qe need to alloc muram of qe, not DIMM.

lib/genalloc.h is not for allocating main memory.  It is for 
allocating special regions.  It is serving the same purpose as rheap.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-06-04  6:13       ` Scott Wood
@ 2015-06-04  9:27         ` Zhao Qiang
  2015-06-04 22:40           ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-06-04  9:27 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

T24gVGh1LCAyMDE1LTA2LTA0IGF0IDI6MTRQTSwgV29vZCBTY290dCB3cm90ZToNCg0KDQo+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdvb2QgU2NvdHQtQjA3NDIxDQo+IFNl
bnQ6IFRodXJzZGF5LCBKdW5lIDA0LCAyMDE1IDI6MTQgUE0NCj4gVG86IFpoYW8gUWlhbmctQjQ1
NDc1DQo+IENjOiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZzsgWGllIFhpYW9iby1SNjMw
NjENCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIHJoZWFwOiBtb3ZlIHJoZWFwLmMgZnJvbSBh
cmNoL3Bvd2VycGMvbGliLyB0bw0KPiBsaWIvDQo+IA0KPiBPbiBUaHUsIDIwMTUtMDYtMDQgYXQg
MDA6NTYgLTA1MDAsIFpoYW8gUWlhbmctQjQ1NDc1IHdyb3RlOg0KPiA+IE9uIFRodSwgMjAxNS0w
NS0yOCBhdCAxOjM3QU0gKzA4MDAsIFdvb2QgU2NvdHQgd3JvdGU6DQo+ID4NCj4gPg0KPiA+ID4g
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFdvb2QgU2NvdHQtQjA3NDIx
DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgTWF5IDI4LCAyMDE1IDE6MzcgQU0NCj4gPiA+IFRvOiBa
aGFvIFFpYW5nLUI0NTQ3NQ0KPiA+ID4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3Jn
OyBXb29kIFNjb3R0LUIwNzQyMTsgWGllIFhpYW9iby0NCj4gPiA+IFI2MzA2MQ0KPiA+ID4gU3Vi
amVjdDogUmU6IFtQQVRDSCAyLzJdIHJoZWFwOiBtb3ZlIHJoZWFwLmMgZnJvbSBhcmNoL3Bvd2Vy
cGMvbGliLw0KPiA+ID4gdG8gbGliLw0KPiA+ID4NCj4gPiA+IE9uIFdlZCwgMjAxNS0wNS0yNyBh
dCAxNzoxMiArMDgwMCwgWmhhbyBRaWFuZyB3cm90ZToNCj4gPiA+ID4gcWUgbmVlZCB0byB1c2Ug
dGhlIHJoZWFwLCBzbyBtb3ZlIGl0IHRvIHB1YmxpYyBkaXJlY3RvcnkuDQo+ID4gPg0KPiA+ID4g
WW91J3ZlIGJlZW4gcHJldmlvdXNseSBhc2tlZCB0byB1c2UgbGliL2dlbmFsbG9jLmMgcmF0aGVy
IHRoYW4NCj4gPiA+IGludHJvZHVjZSBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbnRvIC9saWIu
ICBOQUNLLg0KPiA+DQo+ID4gQ2FuJ3QgdXNlIGxpYi9nZW5hbGxvYy5jIGluc3RlYWQgb2Ygcmhl
YXAuYy4NCj4gPiBRZSBuZWVkIHRvIGFsbG9jIG11cmFtIG9mIHFlLCBub3QgRElNTS4NCj4gDQo+
IGxpYi9nZW5hbGxvYy5oIGlzIG5vdCBmb3IgYWxsb2NhdGluZyBtYWluIG1lbW9yeS4gIEl0IGlz
IGZvciBhbGxvY2F0aW5nDQo+IHNwZWNpYWwgcmVnaW9ucy4gIEl0IGlzIHNlcnZpbmcgdGhlIHNh
bWUgcHVycG9zZSBhcyByaGVhcC4NCg0KSSBuZWVkIHRvIHVzZSB0aGUgZnVuYyAicmhfYWxsb2Nf
YWxpZ24iLCB3aGF0IGl0IHRoZSBzaW1pbGFyIGZ1bmM/DQpJIGp1c3QgZmluZCBhIGZ1bmMgImdl
bl9wb29sX2ZpcnN0X2ZpdF9vcmRlcl9hbGlnbiIuDQoNCj4gDQo+IC1TY290dA0KDQo=

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-06-04  9:27         ` Zhao Qiang
@ 2015-06-04 22:40           ` Scott Wood
  2015-07-08  2:54             ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-06-04 22:40 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Thu, 2015-06-04 at 04:27 -0500, Zhao Qiang-B45475 wrote:
> On Thu, 2015-06-04 at 2:14PM, Wood Scott wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, June 04, 2015 2:14 PM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061
> > Subject: Re: [PATCH 2/2] rheap: move rheap.c from 
> > arch/powerpc/lib/ to
> > lib/
> > 
> > On Thu, 2015-06-04 at 00:56 -0500, Zhao Qiang-B45475 wrote:
> > > On Thu, 2015-05-28 at 1:37AM +0800, Wood Scott wrote:
> > > 
> > > 
> > > > -----Original Message-----
> > > > From: Wood Scott-B07421
> > > > Sent: Thursday, May 28, 2015 1:37 AM
> > > > To: Zhao Qiang-B45475
> > > > Cc: linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421; Xie 
> > > > Xiaobo-
> > > > R63061
> > > > Subject: Re: [PATCH 2/2] rheap: move rheap.c from 
> > > > arch/powerpc/lib/
> > > > to lib/
> > > > 
> > > > On Wed, 2015-05-27 at 17:12 +0800, Zhao Qiang wrote:
> > > > > qe need to use the rheap, so move it to public directory.
> > > > 
> > > > You've been previously asked to use lib/genalloc.c rather than
> > > > introduce duplicate functionality into /lib.  NACK.
> > > 
> > > Can't use lib/genalloc.c instead of rheap.c.
> > > Qe need to alloc muram of qe, not DIMM.
> > 
> > lib/genalloc.h is not for allocating main memory.  It is for 
> > allocating
> > special regions.  It is serving the same purpose as rheap.
> 
> I need to use the func "rh_alloc_align", what it the similar func?
> I just find a func "gen_pool_first_fit_order_align".

I don't see anywhere the QE code currently calls rh_alloc_align() -- 
and cpm_muram_init() calls rh_init() with an alignment of 1.

If you do need some functionality that genalloc doesn't offer, add the 
functionality to genalloc.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-06-04 22:40           ` Scott Wood
@ 2015-07-08  2:54             ` Zhao Qiang
  2015-07-08  2:55               ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-08  2:54 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

SSBuZWVkIHRvIGVuc3VyZSBvbmUgdGhpbmcsIA0KSW4geW91ciBwb2ludCwgeW91IHdhbnQgbWUg
dG8gdXNlIGxpYi9nZW5hbGxvYy5jIGluc3RlYWQgb2YgcmhlYXAuYy4NCk9yIGp1c3QgdGhpbmsg
cmhlYXAuYyBpcyBub3QgcHJvcGVyIHRvIHB1dCBpbnRvIGxpYj8NCg0KQmVzdCBSZWdhcmRzDQpa
aGFvIFFpYW5nDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXb29k
IFNjb3R0LUIwNzQyMQ0KPiBTZW50OiBGcmlkYXksIEp1bmUgMDUsIDIwMTUgNjo0MSBBTQ0KPiBU
bzogWmhhbyBRaWFuZy1CNDU0NzUNCj4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3Jn
OyBYaWUgWGlhb2JvLVI2MzA2MQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDIvMl0gcmhlYXA6IG1v
dmUgcmhlYXAuYyBmcm9tIGFyY2gvcG93ZXJwYy9saWIvIHRvDQo+IGxpYi8NCj4gDQo+IE9uIFRo
dSwgMjAxNS0wNi0wNCBhdCAwNDoyNyAtMDUwMCwgWmhhbyBRaWFuZy1CNDU0NzUgd3JvdGU6DQo+
ID4gT24gVGh1LCAyMDE1LTA2LTA0IGF0IDI6MTRQTSwgV29vZCBTY290dCB3cm90ZToNCj4gPg0K
PiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV29vZCBT
Y290dC1CMDc0MjENCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDA0LCAyMDE1IDI6MTQgUE0N
Cj4gPiA+IFRvOiBaaGFvIFFpYW5nLUI0NTQ3NQ0KPiA+ID4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0
cy5vemxhYnMub3JnOyBYaWUgWGlhb2JvLVI2MzA2MQ0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRD
SCAyLzJdIHJoZWFwOiBtb3ZlIHJoZWFwLmMgZnJvbSBhcmNoL3Bvd2VycGMvbGliLw0KPiA+ID4g
dG8gbGliLw0KPiA+ID4NCj4gPiA+IE9uIFRodSwgMjAxNS0wNi0wNCBhdCAwMDo1NiAtMDUwMCwg
WmhhbyBRaWFuZy1CNDU0NzUgd3JvdGU6DQo+ID4gPiA+IE9uIFRodSwgMjAxNS0wNS0yOCBhdCAx
OjM3QU0gKzA4MDAsIFdvb2QgU2NvdHQgd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+
ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBXb29kIFNjb3R0
LUIwNzQyMQ0KPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXkgMjgsIDIwMTUgMTozNyBBTQ0K
PiA+ID4gPiA+IFRvOiBaaGFvIFFpYW5nLUI0NTQ3NQ0KPiA+ID4gPiA+IENjOiBsaW51eHBwYy1k
ZXZAbGlzdHMub3psYWJzLm9yZzsgV29vZCBTY290dC1CMDc0MjE7IFhpZQ0KPiA+ID4gPiA+IFhp
YW9iby0NCj4gPiA+ID4gPiBSNjMwNjENCj4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIDIv
Ml0gcmhlYXA6IG1vdmUgcmhlYXAuYyBmcm9tDQo+ID4gPiA+ID4gYXJjaC9wb3dlcnBjL2xpYi8g
dG8gbGliLw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gV2VkLCAyMDE1LTA1LTI3IGF0IDE3OjEy
ICswODAwLCBaaGFvIFFpYW5nIHdyb3RlOg0KPiA+ID4gPiA+ID4gcWUgbmVlZCB0byB1c2UgdGhl
IHJoZWFwLCBzbyBtb3ZlIGl0IHRvIHB1YmxpYyBkaXJlY3RvcnkuDQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiBZb3UndmUgYmVlbiBwcmV2aW91c2x5IGFza2VkIHRvIHVzZSBsaWIvZ2VuYWxsb2MuYyBy
YXRoZXIgdGhhbg0KPiA+ID4gPiA+IGludHJvZHVjZSBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBp
bnRvIC9saWIuICBOQUNLLg0KPiA+ID4gPg0KPiA+ID4gPiBDYW4ndCB1c2UgbGliL2dlbmFsbG9j
LmMgaW5zdGVhZCBvZiByaGVhcC5jLg0KPiA+ID4gPiBRZSBuZWVkIHRvIGFsbG9jIG11cmFtIG9m
IHFlLCBub3QgRElNTS4NCj4gPiA+DQo+ID4gPiBsaWIvZ2VuYWxsb2MuaCBpcyBub3QgZm9yIGFs
bG9jYXRpbmcgbWFpbiBtZW1vcnkuICBJdCBpcyBmb3INCj4gPiA+IGFsbG9jYXRpbmcgc3BlY2lh
bCByZWdpb25zLiAgSXQgaXMgc2VydmluZyB0aGUgc2FtZSBwdXJwb3NlIGFzDQo+ID4gPiByaGVh
cC4NCj4gPg0KPiA+IEkgbmVlZCB0byB1c2UgdGhlIGZ1bmMgInJoX2FsbG9jX2FsaWduIiwgd2hh
dCBpdCB0aGUgc2ltaWxhciBmdW5jPw0KPiA+IEkganVzdCBmaW5kIGEgZnVuYyAiZ2VuX3Bvb2xf
Zmlyc3RfZml0X29yZGVyX2FsaWduIi4NCj4gDQo+IEkgZG9uJ3Qgc2VlIGFueXdoZXJlIHRoZSBR
RSBjb2RlIGN1cnJlbnRseSBjYWxscyByaF9hbGxvY19hbGlnbigpIC0tIGFuZA0KPiBjcG1fbXVy
YW1faW5pdCgpIGNhbGxzIHJoX2luaXQoKSB3aXRoIGFuIGFsaWdubWVudCBvZiAxLg0KPiANCj4g
SWYgeW91IGRvIG5lZWQgc29tZSBmdW5jdGlvbmFsaXR5IHRoYXQgZ2VuYWxsb2MgZG9lc24ndCBv
ZmZlciwgYWRkIHRoZQ0KPiBmdW5jdGlvbmFsaXR5IHRvIGdlbmFsbG9jLg0KPiANCj4gLVNjb3R0
DQoNCg==

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08  2:54             ` Zhao Qiang
@ 2015-07-08  2:55               ` Scott Wood
  2015-07-08  3:26                 ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-07-08  2:55 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Tue, 2015-07-07 at 21:54 -0500, Zhao Qiang-B45475 wrote:
> I need to ensure one thing, 
> In your point, you want me to use lib/genalloc.c instead of rheap.c.
> Or just think rheap.c is not proper to put into lib?
> 
> Best Regards
> Zhao Qiang

I want you to use lib/genalloc.c.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08  2:55               ` Scott Wood
@ 2015-07-08  3:26                 ` Zhao Qiang
  2015-07-08  3:27                   ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-08  3:26 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

Tm93IHRoZSBwb2ludCBpcywgZ2VuYWxsb2MgaXMgbm90IHNvIHByb3BlciB0byBxZSBtdXJhbSB3
aGlsZSByaGVhcCBpcyB3cml0dGVuIHRvIG1hbmFnZSBtdXJhbSwNCmlmIHVzZSBnZW5hbGxvYyBp
bnN0ZWFkIG9mIHJoZWFwLCB0aGVyZSB3aWxsIGJlIGFtb3VudHMgb2Ygd29yayB0byBkby4NCkkg
aGF2ZSBhIHN1Z2dlc3Rpb24sIGhvdyBhYm91dCB0byBwdXQgcmhlYXAgdW5kZXIgZHJpdmVycy9z
b2MvcWUsIGJlY2F1c2UgcmhlYXAgaXMgDQpUbyBtYW5hZ2UgbXVyYW0gd2hlbiBpdCBpcyBhZGRl
ZCB0byBzZGsuDQoNCkJlc3QgUmVnYXJkcw0KWmhhbyBRaWFuZw0KDQoNCj4gLS0tLS1PcmlnaW5h
bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0MjENCj4gU2VudDogV2VkbmVz
ZGF5LCBKdWx5IDA4LCAyMDE1IDEwOjU1IEFNDQo+IFRvOiBaaGFvIFFpYW5nLUI0NTQ3NQ0KPiBD
YzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IFhpZSBYaWFvYm8tUjYzMDYxDQo+IFN1
YmplY3Q6IFJlOiBbUEFUQ0ggMi8yXSByaGVhcDogbW92ZSByaGVhcC5jIGZyb20gYXJjaC9wb3dl
cnBjL2xpYi8gdG8NCj4gbGliLw0KPiANCj4gT24gVHVlLCAyMDE1LTA3LTA3IGF0IDIxOjU0IC0w
NTAwLCBaaGFvIFFpYW5nLUI0NTQ3NSB3cm90ZToNCj4gPiBJIG5lZWQgdG8gZW5zdXJlIG9uZSB0
aGluZywNCj4gPiBJbiB5b3VyIHBvaW50LCB5b3Ugd2FudCBtZSB0byB1c2UgbGliL2dlbmFsbG9j
LmMgaW5zdGVhZCBvZiByaGVhcC5jLg0KPiA+IE9yIGp1c3QgdGhpbmsgcmhlYXAuYyBpcyBub3Qg
cHJvcGVyIHRvIHB1dCBpbnRvIGxpYj8NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcw0KPiA+IFpoYW8g
UWlhbmcNCj4gDQo+IEkgd2FudCB5b3UgdG8gdXNlIGxpYi9nZW5hbGxvYy5jLg0KPiANCj4gLVNj
b3R0DQoNCg==

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08  3:26                 ` Zhao Qiang
@ 2015-07-08  3:27                   ` Scott Wood
  2015-07-08  7:25                     ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-07-08  3:27 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Tue, 2015-07-07 at 22:26 -0500, Zhao Qiang-B45475 wrote:
> Now the point is, genalloc is not so proper to qe muram while rheap is 
> written to manage muram,

rheap is not specific to muram.

> if use genalloc instead of rheap, there will be amounts of work to do.

Not much.  I think I've spent more time responding to continual e-mails on 
this topic than it would have taken to convert it. :-P

> I have a suggestion, how about to put rheap under drivers/soc/qe, because 
> rheap is 
> To manage muram when it is added to sdk.

No.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08  3:27                   ` Scott Wood
@ 2015-07-08  7:25                     ` Zhao Qiang
  2015-07-08 18:58                       ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-08  7:25 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

U28gSSB3aWxsIGFkZCB0d28gZnVuYyBmb3IgbXkgdXNlLCBkbyB5b3UgdGhpbmsgaXQgaXMgb2s/
DQpJIG5lZWQgdG8gYWxpZ24gdGhlIGFkZHJlc3Mgb2YgYWxsb2NhdGVkIG11cmFtLg0KQW5kIEkg
d2lsbCBzZXQgYWxnbyA9IGdlbl9wb29sX2ZpcnN0X2ZpdF9hbGlnbi4NCg0KK3Vuc2lnbmVkIGxv
bmcgZ2VuX3Bvb2xfYWxsb2NfYWxpZ24oc3RydWN0IGdlbl9wb29sICpwb29sLCBzaXplX3Qgc2l6
ZSwNCisgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduKQ0KK3sNCisgICAgICAgc3Ry
dWN0IGdlbl9wb29sX2NodW5rICpjaHVuazsNCisgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyID0g
MDsNCisgICAgICAgdW5zaWduZWQgbG9uZyBhbGlnbl9tYXNrOw0KKyAgICAgICBpbnQgb3JkZXIg
PSBwb29sLT5taW5fYWxsb2Nfb3JkZXI7DQorICAgICAgIGludCBuYml0cywgc3RhcnRfYml0ID0g
MCwgZW5kX2JpdCwgcmVtYWluOw0KKw0KKyNpZm5kZWYgQ09ORklHX0FSQ0hfSEFWRV9OTUlfU0FG
RV9DTVBYQ0hHDQorICAgICAgIEJVR19PTihpbl9ubWkoKSk7DQorI2VuZGlmDQorDQorICAgICAg
IGlmIChzaXplID09IDApDQorICAgICAgICAgICAgICAgcmV0dXJuIDA7DQorDQorICAgICAgIGFs
aWduX21hc2sgPSAoKGFsaWduICsgKDFVTCA8PCBvcmRlcikgLSAxKSA+PiBvcmRlcikgLSAxOw0K
KyAgICAgICBuYml0cyA9IChzaXplICsgKDFVTCA8PCBvcmRlcikgLSAxKSA+PiBvcmRlcjsNCisg
ICAgICAgcmN1X3JlYWRfbG9jaygpOw0KKyAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShj
aHVuaywgJnBvb2wtPmNodW5rcywgbmV4dF9jaHVuaykgew0KKyAgICAgICAgICAgICAgIGlmIChz
aXplID4gYXRvbWljX3JlYWQoJmNodW5rLT5hdmFpbCkpDQorICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsNCisNCisgICAgICAgICAgICAgICBlbmRfYml0ID0gY2h1bmtfc2l6ZShjaHVu
aykgPj4gb3JkZXI7DQorcmV0cnk6DQorICAgICAgICAgICAgICAgc3RhcnRfYml0ID0gcG9vbC0+
YWxnbyhjaHVuay0+Yml0cywgZW5kX2JpdCwgc3RhcnRfYml0LCBuYml0cywNCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9vbC0+ZGF0YSwgYWxpZ25fbWFzayk7DQorICAgICAgICAg
ICAgICAgaWYgKHN0YXJ0X2JpdCA+PSBlbmRfYml0KQ0KKyAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7DQorICAgICAgICAgICAgICAgcmVtYWluID0gYml0bWFwX3NldF9sbChjaHVuay0+
Yml0cywgc3RhcnRfYml0LCBuYml0cyk7DQorICAgICAgICAgICAgICAgaWYgKHJlbWFpbikgew0K
KyAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluID0gYml0bWFwX2NsZWFyX2xsKGNodW5rLT5i
aXRzLCBzdGFydF9iaXQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmJpdHMgLSByZW1haW4pOw0KKyAgICAgICAgICAgICAgICAgICAgICAgQlVHX09O
KHJlbWFpbik7DQorICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHJ5Ow0KKyAgICAgICAg
ICAgICAgIH0NCisNCisgICAgICAgICAgICAgICBhZGRyID0gY2h1bmstPnN0YXJ0X2FkZHIgKyAo
KHVuc2lnbmVkIGxvbmcpc3RhcnRfYml0IDw8IG9yZGVyKTsNCisgICAgICAgICAgICAgICBzaXpl
ID0gbmJpdHMgPDwgb3JkZXI7DQorICAgICAgICAgICAgICAgYXRvbWljX3N1YihzaXplLCAmY2h1
bmstPmF2YWlsKTsNCisgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgfQ0KKyAgICAgICBy
Y3VfcmVhZF91bmxvY2soKTsNCisgICAgICAgcmV0dXJuIGFkZHI7DQorfQ0KK0VYUE9SVF9TWU1C
T0woZ2VuX3Bvb2xfYWxsb2MpOw0KDQorICogZ2VuX3Bvb2xfZmlyc3RfZml0X2FsaWduIC0gZmlu
ZCB0aGUgZmlyc3QgYXZhaWxhYmxlIHJlZ2lvbg0KKyAqIG9mIG1lbW9yeSBtYXRjaGluZyB0aGUg
c2l6ZSByZXF1aXJlbWVudC4gVGhlIHJlZ2lvbiB3aWxsIGJlIGFsaWduZWQNCisgKiB0byB0aGUg
b3JkZXIgb2YgdGhlIHNpemUgc3BlY2lmaWVkLg0KKyAqIEBtYXA6IFRoZSBhZGRyZXNzIHRvIGJh
c2UgdGhlIHNlYXJjaCBvbg0KKyAqIEBzaXplOiBUaGUgYml0bWFwIHNpemUgaW4gYml0cw0KKyAq
IEBzdGFydDogVGhlIGJpdG51bWJlciB0byBzdGFydCBzZWFyY2hpbmcgYXQNCisgKiBAbnI6IFRo
ZSBudW1iZXIgb2YgemVyb2VkIGJpdHMgd2UncmUgbG9va2luZyBmb3INCisgKiBAZGF0YTogYWRk
aXRpb25hbCBkYXRhIC0gdW51c2VkDQorICovDQordW5zaWduZWQgbG9uZyBnZW5fcG9vbF9maXJz
dF9maXRfYWxpZ24odW5zaWduZWQgbG9uZyAqbWFwLA0KKyAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBzdGFydCwNCisgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgbnIsIHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxvbmcgYWxpZ25fbWFzaykNCit7DQorICAg
ICAgIHJldHVybiBiaXRtYXBfZmluZF9uZXh0X3plcm9fYXJlYShtYXAsIHNpemUsIHN0YXJ0LCBu
ciwgYWxpZ25fbWFzayk7DQorfQ0KK0VYUE9SVF9TWU1CT0woZ2VuX3Bvb2xfZmlyc3RfZml0X2Fs
aWduKTsNCisNCg0KQmVzdCBSZWdhcmRzDQpaaGFvIFFpYW5nDQoNCg0KPiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0KPiBTZW50OiBXZWRuZXNk
YXksIEp1bHkgMDgsIDIwMTUgMTE6MjggQU0NCj4gVG86IFpoYW8gUWlhbmctQjQ1NDc1DQo+IENj
OiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZzsgWGllIFhpYW9iby1SNjMwNjENCj4gU3Vi
amVjdDogUmU6IFtQQVRDSCAyLzJdIHJoZWFwOiBtb3ZlIHJoZWFwLmMgZnJvbSBhcmNoL3Bvd2Vy
cGMvbGliLyB0bw0KPiBsaWIvDQo+IA0KPiBPbiBUdWUsIDIwMTUtMDctMDcgYXQgMjI6MjYgLTA1
MDAsIFpoYW8gUWlhbmctQjQ1NDc1IHdyb3RlOg0KPiA+IE5vdyB0aGUgcG9pbnQgaXMsIGdlbmFs
bG9jIGlzIG5vdCBzbyBwcm9wZXIgdG8gcWUgbXVyYW0gd2hpbGUgcmhlYXAgaXMNCj4gPiB3cml0
dGVuIHRvIG1hbmFnZSBtdXJhbSwNCj4gDQo+IHJoZWFwIGlzIG5vdCBzcGVjaWZpYyB0byBtdXJh
bS4NCj4gDQo+ID4gaWYgdXNlIGdlbmFsbG9jIGluc3RlYWQgb2YgcmhlYXAsIHRoZXJlIHdpbGwg
YmUgYW1vdW50cyBvZiB3b3JrIHRvIGRvLg0KPiANCj4gTm90IG11Y2guICBJIHRoaW5rIEkndmUg
c3BlbnQgbW9yZSB0aW1lIHJlc3BvbmRpbmcgdG8gY29udGludWFsIGUtbWFpbHMNCj4gb24gdGhp
cyB0b3BpYyB0aGFuIGl0IHdvdWxkIGhhdmUgdGFrZW4gdG8gY29udmVydCBpdC4gOi1QDQo+IA0K
PiA+IEkgaGF2ZSBhIHN1Z2dlc3Rpb24sIGhvdyBhYm91dCB0byBwdXQgcmhlYXAgdW5kZXIgZHJp
dmVycy9zb2MvcWUsDQo+ID4gYmVjYXVzZSByaGVhcCBpcyBUbyBtYW5hZ2UgbXVyYW0gd2hlbiBp
dCBpcyBhZGRlZCB0byBzZGsuDQo+IA0KPiBOby4NCj4gDQo+IC1TY290dA0KDQo=

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08  7:25                     ` Zhao Qiang
@ 2015-07-08 18:58                       ` Scott Wood
  2015-07-09  3:18                         ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-07-08 18:58 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Wed, 2015-07-08 at 02:25 -0500, Zhao Qiang-B45475 wrote:
> So I will add two func for my use, do you think it is ok?
> I need to align the address of allocated muram.
> And I will set algo = gen_pool_first_fit_align.
> 
> +unsigned long gen_pool_alloc_align(struct gen_pool *pool, size_t size,
> +               unsigned long align)

Again, please explain why you need this for CPM/QE.  I don't see 
rh_alloc_align() currently being used by either.

Also, please stop top-posting.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-08 18:58                       ` Scott Wood
@ 2015-07-09  3:18                         ` Zhao Qiang
  2015-07-09  3:50                           ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-09  3:18 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]

> -----Original Message-----

> From: Wood Scott-B07421

> Sent: Thursday, July 09, 2015 2:59 AM

> To: Zhao Qiang-B45475

> Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061

> Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to

> lib/

>

> On Wed, 2015-07-08 at 02:25 -0500, Zhao Qiang-B45475 wrote:

> > So I will add two func for my use, do you think it is ok?

> > I need to align the address of allocated muram.

> > And I will set algo = gen_pool_first_fit_align.

> >

> > +unsigned long gen_pool_alloc_align(struct gen_pool *pool, size_t size,

> > +               unsigned long align)

>

> Again, please explain why you need this for CPM/QE.  I don't see

> rh_alloc_align() currently being used by either.

>

> Also, please stop top-posting.





unsigned long rh_alloc(struct _rh_info *info, int size, const char *owner)

{

        return rh_alloc_align(info, size, info->alignment, owner);

}

EXPORT_SYMBOL_GPL(rh_alloc);



>

> -Scott



[-- Attachment #2: Type: text/html, Size: 4687 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-09  3:18                         ` Zhao Qiang
@ 2015-07-09  3:50                           ` Scott Wood
  2015-07-09  6:05                             ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-07-09  3:50 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Wed, 2015-07-08 at 22:18 -0500, Zhao Qiang-B45475 wrote:
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, July 09, 2015 2:59 AM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061
> > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to
> > lib/
> >
> > On Wed, 2015-07-08 at 02:25 -0500, Zhao Qiang-B45475 wrote:
> > > So I will add two func for my use, do you think it is ok?
> > > I need to align the address of allocated muram.
> > > And I will set algo = gen_pool_first_fit_align.
> > >
> > > +unsigned long gen_pool_alloc_align(struct gen_pool *pool, size_t size,
> > > +               unsigned long align)
> >
> > Again, please explain why you need this for CPM/QE.  I don't see
> > rh_alloc_align() currently being used by either.
> >
> > Also, please stop top-posting.
>  
>  
> unsigned long rh_alloc(struct _rh_info *info, int size, const char *owner)
> {
>         return rh_alloc_align(info, size, info->alignment, owner);
> }
> EXPORT_SYMBOL_GPL(rh_alloc);

That doesn't involve a different alignment for each allocation.  It uses the 
same alignment for all of them, and the alignment that cpm_common.c provides 
to rh_init() is 1 byte.

...but sigh, cpm_muram_alloc() is changing cpm_muram_info.alignment behind 
the rheap code's back.  Despite the existence of rh_alloc_align().

So yes, add aligned allocation functionality to genalloc, but don't duplicate 
gen_pool_alloc() to do so.  Instead, rename gen_pool_alloc() to 
gen_pool_alloc_align() with an alignment parameter (also modifying the algo 
function to take an alignment arg, which gen_pool_first_fit_order_align() 
would ignore), and provide a gen_pool_alloc() wrapper that specifies 1 as the 
required alignment.  Also be sure to CC lkml on the patchset since you're 
touching core code that doesn't have its own maintainer or list.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-09  3:50                           ` Scott Wood
@ 2015-07-09  6:05                             ` Zhao Qiang
  2015-07-09  6:09                               ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-09  6:05 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

T24gV2VkLCAyMDE1LTA3LTA5IGF0IDExOjUxIC0wNTAwLCBXb29kIFNjb3R0IHdyb3RlOg0KDQo+
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdvb2QgU2NvdHQtQjA3NDIxDQo+
IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDA5LCAyMDE1IDExOjUxIEFNDQo+IFRvOiBaaGFvIFFpYW5n
LUI0NTQ3NQ0KPiBDYzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IFhpZSBYaWFvYm8t
UjYzMDYxDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMi8yXSByaGVhcDogbW92ZSByaGVhcC5jIGZy
b20gYXJjaC9wb3dlcnBjL2xpYi8gdG8NCj4gbGliLw0KPiANCj4gT24gV2VkLCAyMDE1LTA3LTA4
IGF0IDIyOjE4IC0wNTAwLCBaaGFvIFFpYW5nLUI0NTQ3NSB3cm90ZToNCj4gPiA+IC0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4g
U2VudDogVGh1cnNkYXksIEp1bHkgMDksIDIwMTUgMjo1OSBBTQ0KPiA+ID4gVG86IFpoYW8gUWlh
bmctQjQ1NDc1DQo+ID4gPiBDYzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IFhpZSBY
aWFvYm8tUjYzMDYxDQo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIDIvMl0gcmhlYXA6IG1vdmUg
cmhlYXAuYyBmcm9tIGFyY2gvcG93ZXJwYy9saWIvDQo+ID4gPiB0byBsaWIvDQo+ID4gPg0KPiA+
ID4gT24gV2VkLCAyMDE1LTA3LTA4IGF0IDAyOjI1IC0wNTAwLCBaaGFvIFFpYW5nLUI0NTQ3NSB3
cm90ZToNCj4gPiA+ID4gU28gSSB3aWxsIGFkZCB0d28gZnVuYyBmb3IgbXkgdXNlLCBkbyB5b3Ug
dGhpbmsgaXQgaXMgb2s/DQo+ID4gPiA+IEkgbmVlZCB0byBhbGlnbiB0aGUgYWRkcmVzcyBvZiBh
bGxvY2F0ZWQgbXVyYW0uDQo+ID4gPiA+IEFuZCBJIHdpbGwgc2V0IGFsZ28gPSBnZW5fcG9vbF9m
aXJzdF9maXRfYWxpZ24uDQo+ID4gPiA+DQo+ID4gPiA+ICt1bnNpZ25lZCBsb25nIGdlbl9wb29s
X2FsbG9jX2FsaWduKHN0cnVjdCBnZW5fcG9vbCAqcG9vbCwgc2l6ZV90DQo+IHNpemUsDQo+ID4g
PiA+ICsgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduKQ0KPiA+ID4NCj4gPiA+IEFn
YWluLCBwbGVhc2UgZXhwbGFpbiB3aHkgeW91IG5lZWQgdGhpcyBmb3IgQ1BNL1FFLiAgSSBkb24n
dCBzZWUNCj4gPiA+IHJoX2FsbG9jX2FsaWduKCkgY3VycmVudGx5IGJlaW5nIHVzZWQgYnkgZWl0
aGVyLg0KPiA+ID4NCj4gPiA+IEFsc28sIHBsZWFzZSBzdG9wIHRvcC1wb3N0aW5nLg0KPiA+DQo+
ID4NCj4gPiB1bnNpZ25lZCBsb25nIHJoX2FsbG9jKHN0cnVjdCBfcmhfaW5mbyAqaW5mbywgaW50
IHNpemUsIGNvbnN0IGNoYXINCj4gPiAqb3duZXIpIHsNCj4gPiAgICAgICAgIHJldHVybiByaF9h
bGxvY19hbGlnbihpbmZvLCBzaXplLCBpbmZvLT5hbGlnbm1lbnQsIG93bmVyKTsgfQ0KPiA+IEVY
UE9SVF9TWU1CT0xfR1BMKHJoX2FsbG9jKTsNCj4gDQo+IFRoYXQgZG9lc24ndCBpbnZvbHZlIGEg
ZGlmZmVyZW50IGFsaWdubWVudCBmb3IgZWFjaCBhbGxvY2F0aW9uLiAgSXQgdXNlcw0KPiB0aGUg
c2FtZSBhbGlnbm1lbnQgZm9yIGFsbCBvZiB0aGVtLCBhbmQgdGhlIGFsaWdubWVudCB0aGF0IGNw
bV9jb21tb24uYw0KPiBwcm92aWRlcyB0byByaF9pbml0KCkgaXMgMSBieXRlLg0KPiANCj4gLi4u
YnV0IHNpZ2gsIGNwbV9tdXJhbV9hbGxvYygpIGlzIGNoYW5naW5nIGNwbV9tdXJhbV9pbmZvLmFs
aWdubWVudA0KPiBiZWhpbmQgdGhlIHJoZWFwIGNvZGUncyBiYWNrLiAgRGVzcGl0ZSB0aGUgZXhp
c3RlbmNlIG9mIHJoX2FsbG9jX2FsaWduKCkuDQo+IA0KPiBTbyB5ZXMsIGFkZCBhbGlnbmVkIGFs
bG9jYXRpb24gZnVuY3Rpb25hbGl0eSB0byBnZW5hbGxvYywgYnV0IGRvbid0DQo+IGR1cGxpY2F0
ZQ0KPiBnZW5fcG9vbF9hbGxvYygpIHRvIGRvIHNvLiAgSW5zdGVhZCwgcmVuYW1lIGdlbl9wb29s
X2FsbG9jKCkgdG8NCj4gZ2VuX3Bvb2xfYWxsb2NfYWxpZ24oKSB3aXRoIGFuIGFsaWdubWVudCBw
YXJhbWV0ZXIgKGFsc28gbW9kaWZ5aW5nIHRoZQ0KPiBhbGdvIGZ1bmN0aW9uIHRvIHRha2UgYW4g
YWxpZ25tZW50IGFyZywgd2hpY2gNCj4gZ2VuX3Bvb2xfZmlyc3RfZml0X29yZGVyX2FsaWduKCkg
d291bGQgaWdub3JlKSwgYW5kIHByb3ZpZGUgYQ0KDQpIZXJlLCBJIGRvbuKAmXQgdW5kZXJzdGFu
ZCBob3cgdG8gaGFuZGxlIHRoZSBhbGdvIEluIHlvdXIgbWluZC4gDQpDYW4geW91IGV4cGxhaW4g
bW9yZSBkZXRhaWxseT8NCg0KPiBnZW5fcG9vbF9hbGxvYygpIHdyYXBwZXIgdGhhdCBzcGVjaWZp
ZXMgMSBhcyB0aGUgcmVxdWlyZWQgYWxpZ25tZW50Lg0KPiBBbHNvIGJlIHN1cmUgdG8gQ0MgbGtt
bCBvbiB0aGUgcGF0Y2hzZXQgc2luY2UgeW91J3JlIHRvdWNoaW5nIGNvcmUgY29kZQ0KPiB0aGF0
IGRvZXNuJ3QgaGF2ZSBpdHMgb3duIG1haW50YWluZXIgb3IgbGlzdC4NCj4gDQo+IC1TY290dA0K
DQo=

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-09  6:05                             ` Zhao Qiang
@ 2015-07-09  6:09                               ` Scott Wood
  2015-07-09  6:14                                 ` Zhao Qiang
  0 siblings, 1 reply; 20+ messages in thread
From: Scott Wood @ 2015-07-09  6:09 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Thu, 2015-07-09 at 01:05 -0500, Zhao Qiang-B45475 wrote:
> On Wed, 2015-07-09 at 11:51 -0500, Wood Scott wrote:
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, July 09, 2015 11:51 AM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061
> > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to
> > lib/
> > 
> > That doesn't involve a different alignment for each allocation.  It uses
> > the same alignment for all of them, and the alignment that cpm_common.c
> > provides to rh_init() is 1 byte.
> > 
> > ...but sigh, cpm_muram_alloc() is changing cpm_muram_info.alignment
> > behind the rheap code's back.  Despite the existence of rh_alloc_align().
> > 
> > So yes, add aligned allocation functionality to genalloc, but don't
> > duplicate
> > gen_pool_alloc() to do so.  Instead, rename gen_pool_alloc() to
> > gen_pool_alloc_align() with an alignment parameter (also modifying the
> > algo function to take an alignment arg, which
> > gen_pool_first_fit_order_align() would ignore), and provide a
> 
> Here, I don’t understand how to handle the algo In your mind. 
> Can you explain more detailly?

The algorithms would be unchanged except that they would receive a new 
alignment (or alignment mask) parameter.  gen_pool_first_fit_order_align() 
would ignore it, but the other algorithms would pass it through to the bitmap 
allocator.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-09  6:09                               ` Scott Wood
@ 2015-07-09  6:14                                 ` Zhao Qiang
  2015-07-09  6:47                                   ` Scott Wood
  0 siblings, 1 reply; 20+ messages in thread
From: Zhao Qiang @ 2015-07-09  6:14 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Xiaobo Xie

T24gV2VkLCAyMDE1LTA3LTA5IGF0IDAyOjA5UE0gLTA1MDAsIFdvb2QgU2NvdHQgd3JvdGU6DQoN
Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0MjEN
Cj4gU2VudDogVGh1cnNkYXksIEp1bHkgMDksIDIwMTUgMjowOSBQTQ0KPiBUbzogWmhhbyBRaWFu
Zy1CNDU0NzUNCj4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyBYaWUgWGlhb2Jv
LVI2MzA2MQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDIvMl0gcmhlYXA6IG1vdmUgcmhlYXAuYyBm
cm9tIGFyY2gvcG93ZXJwYy9saWIvIHRvDQo+IGxpYi8NCj4gDQo+IE9uIFRodSwgMjAxNS0wNy0w
OSBhdCAwMTowNSAtMDUwMCwgWmhhbyBRaWFuZy1CNDU0NzUgd3JvdGU6DQo+ID4gT24gV2VkLCAy
MDE1LTA3LTA5IGF0IDExOjUxIC0wNTAwLCBXb29kIFNjb3R0IHdyb3RlOg0KPiA+DQo+ID4gPiAt
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV29vZCBTY290dC1CMDc0MjEN
Cj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDA5LCAyMDE1IDExOjUxIEFNDQo+ID4gPiBUbzog
WmhhbyBRaWFuZy1CNDU0NzUNCj4gPiA+IENjOiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9y
ZzsgWGllIFhpYW9iby1SNjMwNjENCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMi8yXSByaGVh
cDogbW92ZSByaGVhcC5jIGZyb20gYXJjaC9wb3dlcnBjL2xpYi8NCj4gPiA+IHRvIGxpYi8NCj4g
PiA+DQo+ID4gPiBUaGF0IGRvZXNuJ3QgaW52b2x2ZSBhIGRpZmZlcmVudCBhbGlnbm1lbnQgZm9y
IGVhY2ggYWxsb2NhdGlvbi4gIEl0DQo+ID4gPiB1c2VzIHRoZSBzYW1lIGFsaWdubWVudCBmb3Ig
YWxsIG9mIHRoZW0sIGFuZCB0aGUgYWxpZ25tZW50IHRoYXQNCj4gPiA+IGNwbV9jb21tb24uYyBw
cm92aWRlcyB0byByaF9pbml0KCkgaXMgMSBieXRlLg0KPiA+ID4NCj4gPiA+IC4uLmJ1dCBzaWdo
LCBjcG1fbXVyYW1fYWxsb2MoKSBpcyBjaGFuZ2luZyBjcG1fbXVyYW1faW5mby5hbGlnbm1lbnQN
Cj4gPiA+IGJlaGluZCB0aGUgcmhlYXAgY29kZSdzIGJhY2suICBEZXNwaXRlIHRoZSBleGlzdGVu
Y2Ugb2YNCj4gcmhfYWxsb2NfYWxpZ24oKS4NCj4gPiA+DQo+ID4gPiBTbyB5ZXMsIGFkZCBhbGln
bmVkIGFsbG9jYXRpb24gZnVuY3Rpb25hbGl0eSB0byBnZW5hbGxvYywgYnV0IGRvbid0DQo+ID4g
PiBkdXBsaWNhdGUNCj4gPiA+IGdlbl9wb29sX2FsbG9jKCkgdG8gZG8gc28uICBJbnN0ZWFkLCBy
ZW5hbWUgZ2VuX3Bvb2xfYWxsb2MoKSB0bw0KPiA+ID4gZ2VuX3Bvb2xfYWxsb2NfYWxpZ24oKSB3
aXRoIGFuIGFsaWdubWVudCBwYXJhbWV0ZXIgKGFsc28gbW9kaWZ5aW5nDQo+ID4gPiB0aGUgYWxn
byBmdW5jdGlvbiB0byB0YWtlIGFuIGFsaWdubWVudCBhcmcsIHdoaWNoDQo+ID4gPiBnZW5fcG9v
bF9maXJzdF9maXRfb3JkZXJfYWxpZ24oKSB3b3VsZCBpZ25vcmUpLCBhbmQgcHJvdmlkZSBhDQo+
ID4NCj4gPiBIZXJlLCBJIGRvbuKAmXQgdW5kZXJzdGFuZCBob3cgdG8gaGFuZGxlIHRoZSBhbGdv
IEluIHlvdXIgbWluZC4NCj4gPiBDYW4geW91IGV4cGxhaW4gbW9yZSBkZXRhaWxseT8NCj4gDQo+
IFRoZSBhbGdvcml0aG1zIHdvdWxkIGJlIHVuY2hhbmdlZCBleGNlcHQgdGhhdCB0aGV5IHdvdWxk
IHJlY2VpdmUgYSBuZXcNCj4gYWxpZ25tZW50IChvciBhbGlnbm1lbnQgbWFzaykgcGFyYW1ldGVy
LiAgZ2VuX3Bvb2xfZmlyc3RfZml0X29yZGVyX2FsaWduKCkNCj4gd291bGQgaWdub3JlIGl0LCBi
dXQgdGhlIG90aGVyIGFsZ29yaXRobXMgd291bGQgcGFzcyBpdCB0aHJvdWdoIHRvIHRoZQ0KPiBi
aXRtYXAgYWxsb2NhdG9yLg0KDQpIb3cgYWJvdXQgdG8gYWRkIGFuIGFsaWduX21hc2sgcGFyYW1l
dGVyIHRvIGdlbl9wb29sX2ZpcnN0X2ZpdD8gDQoNCj4gDQo+IC1TY290dA0KDQo=

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/
  2015-07-09  6:14                                 ` Zhao Qiang
@ 2015-07-09  6:47                                   ` Scott Wood
  0 siblings, 0 replies; 20+ messages in thread
From: Scott Wood @ 2015-07-09  6:47 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev, Xie Xiaobo-R63061

On Thu, 2015-07-09 at 01:14 -0500, Zhao Qiang-B45475 wrote:
> On Wed, 2015-07-09 at 02:09PM -0500, Wood Scott wrote:
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, July 09, 2015 2:09 PM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061
> > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to
> > lib/
> > 
> > On Thu, 2015-07-09 at 01:05 -0500, Zhao Qiang-B45475 wrote:
> > > On Wed, 2015-07-09 at 11:51 -0500, Wood Scott wrote:
> > > 
> > > > -----Original Message-----
> > > > From: Wood Scott-B07421
> > > > Sent: Thursday, July 09, 2015 11:51 AM
> > > > To: Zhao Qiang-B45475
> > > > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061
> > > > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/
> > > > to lib/
> > > > 
> > > > That doesn't involve a different alignment for each allocation.  It
> > > > uses the same alignment for all of them, and the alignment that
> > > > cpm_common.c provides to rh_init() is 1 byte.
> > > > 
> > > > ...but sigh, cpm_muram_alloc() is changing cpm_muram_info.alignment
> > > > behind the rheap code's back.  Despite the existence of
> > rh_alloc_align().
> > > > 
> > > > So yes, add aligned allocation functionality to genalloc, but don't
> > > > duplicate
> > > > gen_pool_alloc() to do so.  Instead, rename gen_pool_alloc() to
> > > > gen_pool_alloc_align() with an alignment parameter (also modifying
> > > > the algo function to take an alignment arg, which
> > > > gen_pool_first_fit_order_align() would ignore), and provide a
> > > 
> > > Here, I don’t understand how to handle the algo In your mind.
> > > Can you explain more detailly?
> > 
> > The algorithms would be unchanged except that they would receive a new
> > alignment (or alignment mask) parameter.  gen_pool_first_fit_order_align()
> > would ignore it, but the other algorithms would pass it through to the
> > bitmap allocator.
> 
> How about to add an align_mask parameter to gen_pool_first_fit? 

All of the algorithms have to have the same function signature.

-Scott

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-07-09  6:47 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-27  9:11 [PATCH 1/2] qe_common: add qe common functions into qe_common.c Zhao Qiang
2015-05-27  9:12 ` [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/ Zhao Qiang
2015-05-27 17:36   ` Scott Wood
2015-06-04  5:56     ` Zhao Qiang
2015-06-04  6:13       ` Scott Wood
2015-06-04  9:27         ` Zhao Qiang
2015-06-04 22:40           ` Scott Wood
2015-07-08  2:54             ` Zhao Qiang
2015-07-08  2:55               ` Scott Wood
2015-07-08  3:26                 ` Zhao Qiang
2015-07-08  3:27                   ` Scott Wood
2015-07-08  7:25                     ` Zhao Qiang
2015-07-08 18:58                       ` Scott Wood
2015-07-09  3:18                         ` Zhao Qiang
2015-07-09  3:50                           ` Scott Wood
2015-07-09  6:05                             ` Zhao Qiang
2015-07-09  6:09                               ` Scott Wood
2015-07-09  6:14                                 ` Zhao Qiang
2015-07-09  6:47                                   ` Scott Wood
2015-05-27 22:51 ` [PATCH 1/2] qe_common: add qe common functions into qe_common.c Scott Wood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).