From: zhouqiao@marvell.com (Qiao Zhou)
To: linux-arm-kernel@lists.infradead.org
Subject: Build warning in drivers/dma/mmp_tdma.c
Date: Tue, 3 Dec 2013 18:43:20 +0800 [thread overview]
Message-ID: <529DB5C8.1010500@marvell.com> (raw)
In-Reply-To: <529D4273.10602@gmail.com>
On 12/03/2013 10:31 AM, Haojian Zhuang wrote:
> I prefer to add CONFIG_MMP_SRAM instead, since sram isn't available in
> pxa168.
Hi Dan,
I have two patches. Could you help check whether it can fix the issue?
BTW, actually the 2nd alone is enough. The 1st patch is just in case
that you still want to use the old sram driver, and you need to enable
MMP_SRAM.
All, please help review the patches.
From 94601015d525db6d2baf47f4d517f38ae2e5e802 Mon Sep 17 00:00:00 2001
From: Qiao Zhou <zhouqiao@marvell.com>
Date: Tue, 3 Dec 2013 11:06:29 +0800
Subject: [PATCH 1/2] arm: mmp: build sram driver alone
sram driver can be used by many chips besides CPU_MMP2, and so build
it alone.
Signed-off-by: Qiao Zhou <zhouqiao@marvell.com>
---
arch/arm/mach-mmp/Makefile | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-mmp/Makefile b/arch/arm/mach-mmp/Makefile
index 9b702a1..98f0f63 100644
--- a/arch/arm/mach-mmp/Makefile
+++ b/arch/arm/mach-mmp/Makefile
@@ -7,7 +7,8 @@ obj-y += common.o devices.o time.o
# SoC support
obj-$(CONFIG_CPU_PXA168) += pxa168.o
obj-$(CONFIG_CPU_PXA910) += pxa910.o
-obj-$(CONFIG_CPU_MMP2) += mmp2.o sram.o
+obj-$(CONFIG_CPU_MMP2) += mmp2.o
+obj-$(CONFIG_MMP_SRAM) += sram.o
ifeq ($(CONFIG_COMMON_CLK), )
obj-y += clock.o
--
1.7.0.4
From 5396b1bffd574dbe778387979ecc24c51ee0c7a4 Mon Sep 17 00:00:00 2001
From: Qiao Zhou <zhouqiao@marvell.com>
Date: Tue, 3 Dec 2013 18:17:02 +0800
Subject: [PATCH 2/2] dma: mmp-tdma: use gen_pool to get asram
use generic pool to get audio sram, instead of sram driver
Signed-off-by: nhcao <nhcao@marvell.com>
Signed-off-by: Qiao Zhou <zhouqiao@marvell.com>
---
drivers/dma/Kconfig | 1 +
drivers/dma/mmp_tdma.c | 22 +++++++++++++++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index dd2874e..eeffe3c 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -288,6 +288,7 @@ config MMP_TDMA
bool "MMP Two-Channel DMA support"
depends on ARCH_MMP
select DMA_ENGINE
+ select GENERIC_ALLOCATOR
help
Support the MMP Two-Channel DMA engine.
This engine used for MMP Audio DMA and pxa910 SQU.
diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
index d3b6358..93537d1 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -20,7 +20,7 @@
#include <linux/platform_device.h>
#include <linux/device.h>
#include <mach/regs-icu.h>
-#include <linux/platform_data/dma-mmp_tdma.h>
+#include <linux/genalloc.h>
#include <linux/of_device.h>
#include "dmaengine.h"
@@ -121,6 +121,7 @@ struct mmp_tdma_chan {
size_t buf_len;
size_t period_len;
size_t pos;
+ struct gen_pool *pool;
};
#define TDMA_CHANNEL_NUM 2
@@ -296,7 +297,7 @@ static void mmp_tdma_free_descriptor(struct
mmp_tdma_chan *tdmac)
struct gen_pool *gpool;
int size = tdmac->desc_num * sizeof(struct mmp_tdma_desc);
- gpool = sram_get_gpool("asram");
+ gpool = tdmac->pool;
if (tdmac->desc_arr)
gen_pool_free(gpool, (unsigned long)tdmac->desc_arr,
size);
@@ -346,7 +347,7 @@ struct mmp_tdma_desc
*mmp_tdma_alloc_descriptor(struct mmp_tdma_chan *tdmac)
struct gen_pool *gpool;
int size = tdmac->desc_num * sizeof(struct mmp_tdma_desc);
- gpool = sram_get_gpool("asram");
+ gpool = tdmac->pool;
if (!gpool)
return NULL;
@@ -477,7 +478,8 @@ static int mmp_tdma_remove(struct platform_device *pdev)
}
static int mmp_tdma_chan_init(struct mmp_tdma_device *tdev,
- int idx, int irq, int type)
+ int idx, int irq,
+ int type, struct gen_pool *pool)
{
struct mmp_tdma_chan *tdmac;
@@ -498,6 +500,7 @@ static int mmp_tdma_chan_init(struct mmp_tdma_device
*tdev,
tdmac->chan.device = &tdev->device;
tdmac->idx = idx;
tdmac->type = type;
+ tdmac->pool = pool;
tdmac->reg_base = (unsigned long)tdev->base + idx * 4;
tdmac->status = DMA_SUCCESS;
tdev->tdmac[tdmac->idx] = tdmac;
@@ -525,6 +528,8 @@ static int mmp_tdma_probe(struct platform_device *pdev)
int i, ret;
int irq = 0, irq_num = 0;
int chan_num = TDMA_CHANNEL_NUM;
+ struct device_node *np = pdev->dev.of_node;
+ struct gen_pool *pool;
of_id = of_match_device(mmp_tdma_dt_ids, &pdev->dev);
if (of_id)
@@ -551,6 +556,13 @@ static int mmp_tdma_probe(struct platform_device *pdev)
INIT_LIST_HEAD(&tdev->device.channels);
+ /* Get audio sram from device tree or platform data */
+ pool = of_get_named_gen_pool(np, "asram", 0);
+ if (!pool) {
+ dev_err(&pdev->dev, "asram pool not available\n");
+ return -ENOMEM;
+ }
+
if (irq_num != chan_num) {
irq = platform_get_irq(pdev, 0);
ret = devm_request_irq(&pdev->dev, irq,
@@ -562,7 +574,7 @@ static int mmp_tdma_probe(struct platform_device *pdev)
/* initialize channel parameters */
for (i = 0; i < chan_num; i++) {
irq = (irq_num != chan_num) ? 0 : platform_get_irq(pdev, i);
- ret = mmp_tdma_chan_init(tdev, i, irq, type);
+ ret = mmp_tdma_chan_init(tdev, i, irq, type, pool);
if (ret)
return ret;
}
--
1.7.0.4
--
Best Regards
Qiao
next prev parent reply other threads:[~2013-12-03 10:43 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-28 22:58 Build warning in drivers/dma/mmp_tdma.c Dan Williams
2013-11-29 5:31 ` Vinod Koul
2013-12-02 6:42 ` Zhangfei Gao
2013-12-02 7:34 ` Qiao Zhou
2013-12-02 7:42 ` Zhangfei Gao
[not found] ` <CAPcyv4jfk+JBv7WY_njuYtx8hERZHhoCAij=FOfqxAhLJAHnFA@mail.gmail.com>
2013-12-03 2:13 ` Zhangfei Gao
2013-12-03 2:31 ` Haojian Zhuang
2013-12-03 10:43 ` Qiao Zhou [this message]
2013-12-03 11:05 ` Zhangfei Gao
2013-12-04 1:09 ` Qiao Zhou
2013-12-03 21:02 ` Dan Williams
2013-12-04 1:08 ` Qiao Zhou
2013-12-04 1:32 ` Dan Williams
2013-12-04 1:58 ` Qiao Zhou
2013-12-04 2:15 ` Dan Williams
2013-12-04 2:28 ` Qiao Zhou
2013-12-04 2:34 ` Zhangfei Gao
2013-12-04 2:44 ` Qiao Zhou
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=529DB5C8.1010500@marvell.com \
--to=zhouqiao@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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: link
Be 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.