From: Roy Pledge <roy.pledge@nxp.com> To: <linuxppc-dev@lists.ozlabs.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <oss@buserror.net>, <robin.murphy@arm.com> Cc: <madalin.bucur@nxp.com>, Roy Pledge <roy.pledge@nxp.com> Subject: [PATCH v2 01/11] soc/fsl/qbman: Use shared-dma-pool for BMan private memory allocations Date: Wed, 19 Apr 2017 16:48:40 -0400 [thread overview] Message-ID: <1492634930-10765-2-git-send-email-roy.pledge@nxp.com> (raw) In-Reply-To: <1492634930-10765-1-git-send-email-roy.pledge@nxp.com> Use the shared-memory-pool mechanism for free buffer proxy record area allocation. Signed-off-by: Roy Pledge <roy.pledge@nxp.com> --- drivers/soc/fsl/qbman/bman_ccsr.c | 35 ++++++++++++++++++++++++++++++++++- drivers/soc/fsl/qbman/bman_priv.h | 3 +++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/drivers/soc/fsl/qbman/bman_ccsr.c b/drivers/soc/fsl/qbman/bman_ccsr.c index a8e8389..4d2392d 100644 --- a/drivers/soc/fsl/qbman/bman_ccsr.c +++ b/drivers/soc/fsl/qbman/bman_ccsr.c @@ -170,10 +170,11 @@ static int fsl_bman_probe(struct platform_device *pdev) { int ret, err_irq; struct device *dev = &pdev->dev; - struct device_node *node = dev->of_node; + struct device_node *mem_node, *node = dev->of_node; struct resource *res; u16 id, bm_pool_cnt; u8 major, minor; + u64 size; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { @@ -201,6 +202,38 @@ static int fsl_bman_probe(struct platform_device *pdev) return -ENODEV; } + /* + * If FBPR memory wasn't defined using the qbman compatiable string + * try using the of_reserved_mem_device method + */ + if (!fbpr_a) { + ret = of_reserved_mem_device_init(dev); + if (ret) { + dev_err(dev, "of_reserved_mem_device_init() failed 0x%x\n", + ret); + return -ENODEV; + } + mem_node = of_parse_phandle(dev->of_node, "memory-region", 0); + if (mem_node) { + ret = of_property_read_u64(mem_node, "size", &size); + if (ret) { + dev_err(dev, "FBPR: of_address_to_resource fails 0x%x\n", + ret); + return -ENODEV; + } + fbpr_sz = size; + } else { + dev_err(dev, "No memory-region found for FBPR\n"); + return -ENODEV; + } + if (!dma_zalloc_coherent(dev, fbpr_sz, &fbpr_a, 0)) { + dev_err(dev, "Alloc FBPR memory failed\n"); + return -ENODEV; + } + } + + dev_info(dev, "Allocated FBPR 0x%llx 0x%zx\n", fbpr_a, fbpr_sz); + bm_set_memory(fbpr_a, fbpr_sz); err_irq = platform_get_irq(pdev, 0); diff --git a/drivers/soc/fsl/qbman/bman_priv.h b/drivers/soc/fsl/qbman/bman_priv.h index f6896a2..765a4bf 100644 --- a/drivers/soc/fsl/qbman/bman_priv.h +++ b/drivers/soc/fsl/qbman/bman_priv.h @@ -33,6 +33,9 @@ #include "dpaa_sys.h" #include <soc/fsl/bman.h> +#include <linux/dma-contiguous.h> +#include <linux/of_address.h> +#include <linux/dma-mapping.h> /* Portal processing (interrupt) sources */ #define BM_PIRQ_RCRI 0x00000002 /* RCR Ring (below threshold) */ -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: roy.pledge@nxp.com (Roy Pledge) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 01/11] soc/fsl/qbman: Use shared-dma-pool for BMan private memory allocations Date: Wed, 19 Apr 2017 16:48:40 -0400 [thread overview] Message-ID: <1492634930-10765-2-git-send-email-roy.pledge@nxp.com> (raw) In-Reply-To: <1492634930-10765-1-git-send-email-roy.pledge@nxp.com> Use the shared-memory-pool mechanism for free buffer proxy record area allocation. Signed-off-by: Roy Pledge <roy.pledge@nxp.com> --- drivers/soc/fsl/qbman/bman_ccsr.c | 35 ++++++++++++++++++++++++++++++++++- drivers/soc/fsl/qbman/bman_priv.h | 3 +++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/drivers/soc/fsl/qbman/bman_ccsr.c b/drivers/soc/fsl/qbman/bman_ccsr.c index a8e8389..4d2392d 100644 --- a/drivers/soc/fsl/qbman/bman_ccsr.c +++ b/drivers/soc/fsl/qbman/bman_ccsr.c @@ -170,10 +170,11 @@ static int fsl_bman_probe(struct platform_device *pdev) { int ret, err_irq; struct device *dev = &pdev->dev; - struct device_node *node = dev->of_node; + struct device_node *mem_node, *node = dev->of_node; struct resource *res; u16 id, bm_pool_cnt; u8 major, minor; + u64 size; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { @@ -201,6 +202,38 @@ static int fsl_bman_probe(struct platform_device *pdev) return -ENODEV; } + /* + * If FBPR memory wasn't defined using the qbman compatiable string + * try using the of_reserved_mem_device method + */ + if (!fbpr_a) { + ret = of_reserved_mem_device_init(dev); + if (ret) { + dev_err(dev, "of_reserved_mem_device_init() failed 0x%x\n", + ret); + return -ENODEV; + } + mem_node = of_parse_phandle(dev->of_node, "memory-region", 0); + if (mem_node) { + ret = of_property_read_u64(mem_node, "size", &size); + if (ret) { + dev_err(dev, "FBPR: of_address_to_resource fails 0x%x\n", + ret); + return -ENODEV; + } + fbpr_sz = size; + } else { + dev_err(dev, "No memory-region found for FBPR\n"); + return -ENODEV; + } + if (!dma_zalloc_coherent(dev, fbpr_sz, &fbpr_a, 0)) { + dev_err(dev, "Alloc FBPR memory failed\n"); + return -ENODEV; + } + } + + dev_info(dev, "Allocated FBPR 0x%llx 0x%zx\n", fbpr_a, fbpr_sz); + bm_set_memory(fbpr_a, fbpr_sz); err_irq = platform_get_irq(pdev, 0); diff --git a/drivers/soc/fsl/qbman/bman_priv.h b/drivers/soc/fsl/qbman/bman_priv.h index f6896a2..765a4bf 100644 --- a/drivers/soc/fsl/qbman/bman_priv.h +++ b/drivers/soc/fsl/qbman/bman_priv.h @@ -33,6 +33,9 @@ #include "dpaa_sys.h" #include <soc/fsl/bman.h> +#include <linux/dma-contiguous.h> +#include <linux/of_address.h> +#include <linux/dma-mapping.h> /* Portal processing (interrupt) sources */ #define BM_PIRQ_RCRI 0x00000002 /* RCR Ring (below threshold) */ -- 2.7.4
next prev parent reply other threads:[~2017-04-19 20:51 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-19 20:48 [PATCH v2 00/11] soc/fsl/qbman: Enable QBMan on ARM Platforms Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` Roy Pledge [this message] 2017-04-19 20:48 ` [PATCH v2 01/11] soc/fsl/qbman: Use shared-dma-pool for BMan private memory allocations Roy Pledge 2017-04-19 20:48 ` [PATCH v2 02/11] soc/fsl/qbman: Use shared-dma-pool for QMan " Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-24 1:44 ` Scott Wood 2017-04-24 1:44 ` Scott Wood 2017-04-19 20:48 ` [PATCH v2 03/11] dt-bindings: soc/fsl: Update reserved memory binding for QBMan Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-24 1:09 ` Scott Wood 2017-04-24 1:09 ` Scott Wood 2017-04-19 20:48 ` [PATCH v2 04/11] soc/fsl/qbman: Drop set/clear_bits usage Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 05/11] soc/fsl/qbman: Drop L1_CACHE_BYTES compile time check Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 06/11] soc/fsl/qbman: Fix ARM32 typo Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 07/11] soc/fsl/qbman: Rework ioremap() calls for ARM/PPC Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-24 1:47 ` Scott Wood 2017-04-24 1:47 ` Scott Wood 2017-05-01 19:00 ` Roy Pledge 2017-05-01 19:00 ` Roy Pledge 2017-05-01 19:00 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 08/11] soc/fsl/qbman: add QMAN_REV32 Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 09/11] soc/fsl/qbman: different register offsets on ARM Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 10/11] soc/fsl/qbman: Add missing headers " Roy Pledge 2017-04-19 20:48 ` Roy Pledge 2017-04-19 20:48 ` [PATCH v2 11/11] fsl/soc/qbman: Enable FSL_LAYERSCAPE config " Roy Pledge 2017-04-19 20:48 ` Roy Pledge
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1492634930-10765-2-git-send-email-roy.pledge@nxp.com \ --to=roy.pledge@nxp.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=madalin.bucur@nxp.com \ --cc=oss@buserror.net \ --cc=robin.murphy@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.