* [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).