From: Thomas Abraham <thomas.abraham@linaro.org> To: devicetree-discuss@lists.ozlabs.org Cc: grant.likely@secretlab.ca, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, kgene.kim@samsung.com, vinod.koul@intel.com, patches@linaro.org, jassisinghbrar@gmail.com, boojin.kim@samsung.com Subject: [PATCH 1/6] DMA: PL330: move filter function into driver Date: Fri, 26 Aug 2011 14:10:09 +0530 [thread overview] Message-ID: <1314348014-2481-2-git-send-email-thomas.abraham@linaro.org> (raw) In-Reply-To: <1314348014-2481-1-git-send-email-thomas.abraham@linaro.org> The dma channel selection filter function is moved from plat-samsung into the pl330 driver. In additon to that, a check is added in the filter function to ensure that the channel on which the filter has been invoked is pl330 channel instance (and avoid any incorrect access of chan->private in a system with multiple types of DMA drivers). Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> --- arch/arm/plat-samsung/dma-ops.c | 6 ------ drivers/dma/pl330.c | 15 +++++++++++++++ include/linux/amba/pl330.h | 2 ++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/arch/arm/plat-samsung/dma-ops.c b/arch/arm/plat-samsung/dma-ops.c index 6e3d9ab..8d18425 100644 --- a/arch/arm/plat-samsung/dma-ops.c +++ b/arch/arm/plat-samsung/dma-ops.c @@ -17,12 +17,6 @@ #include <mach/dma.h> -static inline bool pl330_filter(struct dma_chan *chan, void *param) -{ - struct dma_pl330_peri *peri = chan->private; - return peri->peri_id == (unsigned)param; -} - static unsigned samsung_dmadev_request(enum dma_ch dma_ch, struct samsung_dma_info *info) { diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 95976cf..7df2516 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -116,6 +116,9 @@ struct dma_pl330_desc { struct dma_pl330_chan *pchan; }; +/* forward declaration */ +static struct amba_driver pl330_driver; + static inline struct dma_pl330_chan * to_pchan(struct dma_chan *ch) { @@ -267,6 +270,18 @@ static void dma_pl330_rqcb(void *token, enum pl330_op_err err) tasklet_schedule(&pch->task); } +bool pl330_filter(struct dma_chan *chan, void *param) +{ + struct dma_pl330_peri *peri; + + if (chan->device->dev->driver != &pl330_driver.drv) + return false; + + peri = chan->private; + return peri->peri_id == (unsigned)param; +} +EXPORT_SYMBOL(pl330_filter); + static int pl330_alloc_chan_resources(struct dma_chan *chan) { struct dma_pl330_chan *pch = to_pchan(chan); diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h index d12f077..6db72da 100644 --- a/include/linux/amba/pl330.h +++ b/include/linux/amba/pl330.h @@ -12,6 +12,7 @@ #ifndef __AMBA_PL330_H_ #define __AMBA_PL330_H_ +#include <linux/dmaengine.h> #include <asm/hardware/pl330.h> struct dma_pl330_peri { @@ -38,4 +39,5 @@ struct dma_pl330_platdata { unsigned mcbuf_sz; }; +extern bool pl330_filter(struct dma_chan *chan, void *param); #endif /* __AMBA_PL330_H_ */ -- 1.6.6.rc2
WARNING: multiple messages have this Message-ID (diff)
From: thomas.abraham@linaro.org (Thomas Abraham) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/6] DMA: PL330: move filter function into driver Date: Fri, 26 Aug 2011 14:10:09 +0530 [thread overview] Message-ID: <1314348014-2481-2-git-send-email-thomas.abraham@linaro.org> (raw) In-Reply-To: <1314348014-2481-1-git-send-email-thomas.abraham@linaro.org> The dma channel selection filter function is moved from plat-samsung into the pl330 driver. In additon to that, a check is added in the filter function to ensure that the channel on which the filter has been invoked is pl330 channel instance (and avoid any incorrect access of chan->private in a system with multiple types of DMA drivers). Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> --- arch/arm/plat-samsung/dma-ops.c | 6 ------ drivers/dma/pl330.c | 15 +++++++++++++++ include/linux/amba/pl330.h | 2 ++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/arch/arm/plat-samsung/dma-ops.c b/arch/arm/plat-samsung/dma-ops.c index 6e3d9ab..8d18425 100644 --- a/arch/arm/plat-samsung/dma-ops.c +++ b/arch/arm/plat-samsung/dma-ops.c @@ -17,12 +17,6 @@ #include <mach/dma.h> -static inline bool pl330_filter(struct dma_chan *chan, void *param) -{ - struct dma_pl330_peri *peri = chan->private; - return peri->peri_id == (unsigned)param; -} - static unsigned samsung_dmadev_request(enum dma_ch dma_ch, struct samsung_dma_info *info) { diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 95976cf..7df2516 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -116,6 +116,9 @@ struct dma_pl330_desc { struct dma_pl330_chan *pchan; }; +/* forward declaration */ +static struct amba_driver pl330_driver; + static inline struct dma_pl330_chan * to_pchan(struct dma_chan *ch) { @@ -267,6 +270,18 @@ static void dma_pl330_rqcb(void *token, enum pl330_op_err err) tasklet_schedule(&pch->task); } +bool pl330_filter(struct dma_chan *chan, void *param) +{ + struct dma_pl330_peri *peri; + + if (chan->device->dev->driver != &pl330_driver.drv) + return false; + + peri = chan->private; + return peri->peri_id == (unsigned)param; +} +EXPORT_SYMBOL(pl330_filter); + static int pl330_alloc_chan_resources(struct dma_chan *chan) { struct dma_pl330_chan *pch = to_pchan(chan); diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h index d12f077..6db72da 100644 --- a/include/linux/amba/pl330.h +++ b/include/linux/amba/pl330.h @@ -12,6 +12,7 @@ #ifndef __AMBA_PL330_H_ #define __AMBA_PL330_H_ +#include <linux/dmaengine.h> #include <asm/hardware/pl330.h> struct dma_pl330_peri { @@ -38,4 +39,5 @@ struct dma_pl330_platdata { unsigned mcbuf_sz; }; +extern bool pl330_filter(struct dma_chan *chan, void *param); #endif /* __AMBA_PL330_H_ */ -- 1.6.6.rc2
next prev parent reply other threads:[~2011-08-26 8:40 UTC|newest] Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-08-26 8:40 [PATCH 0/6] Add device tree support for PL330 dma controller driver Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham [this message] 2011-08-26 8:40 ` [PATCH 1/6] DMA: PL330: move filter function into driver Thomas Abraham 2011-08-26 8:40 ` [PATCH 2/6] DMA: PL330: Infer transfer direction from transfer request instead of platform data Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 8:40 ` [PATCH 3/6] ARM: EXYNOS4: Modify platform data for pl330 driver Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 8:40 ` [PATCH 4/6] DMA: PL330: Add device tree support Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 8:40 ` [PATCH 5/6] ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 8:40 ` [PATCH 6/6] ARM: EXYNOS4: Limit usage of pl330 device instance to non-dt build Thomas Abraham 2011-08-26 8:40 ` Thomas Abraham 2011-08-26 13:16 ` [PATCH 4/6] DMA: PL330: Add device tree support Rob Herring 2011-08-26 13:16 ` Rob Herring 2011-08-26 14:23 ` Russell King - ARM Linux 2011-08-26 14:23 ` Russell King - ARM Linux 2011-08-30 12:21 ` Thomas Abraham 2011-08-30 12:21 ` Thomas Abraham [not found] ` <4E579C9B.7030807-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2011-08-30 12:18 ` Thomas Abraham 2011-08-30 13:19 ` Rob Herring 2011-08-30 13:19 ` Rob Herring 2011-08-31 6:46 ` Thomas Abraham 2011-08-31 6:46 ` Thomas Abraham 2011-08-31 12:51 ` Rob Herring 2011-08-31 12:51 ` Rob Herring 2011-08-31 15:46 ` Thomas Abraham 2011-08-31 15:46 ` Thomas Abraham 2011-08-31 16:04 ` Rob Herring 2011-08-31 16:04 ` Rob Herring 2011-09-01 9:03 ` Thomas Abraham 2011-09-01 9:03 ` Thomas Abraham 2011-08-30 13:09 ` Thomas Abraham 2011-08-30 13:09 ` Thomas Abraham 2011-08-29 17:29 ` [PATCH 0/6] Add device tree support for PL330 dma controller driver Vinod Koul 2011-08-29 17:29 ` Vinod Koul 2011-08-30 12:28 ` Thomas Abraham 2011-08-30 12:28 ` Thomas Abraham 2011-09-05 13:14 ` Vinod Koul 2011-09-05 13:14 ` Vinod Koul 2011-09-05 5:17 ` Kukjin Kim 2011-09-05 5:17 ` Kukjin Kim 2011-09-05 10:16 ` Thomas Abraham 2011-09-05 10:16 ` Thomas Abraham 2011-09-19 6:28 [PATCH v4 " Thomas Abraham 2011-09-19 6:28 ` [PATCH 1/6] DMA: PL330: move filter function into driver Thomas Abraham 2011-09-19 6:28 ` Thomas Abraham
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=1314348014-2481-2-git-send-email-thomas.abraham@linaro.org \ --to=thomas.abraham@linaro.org \ --cc=boojin.kim@samsung.com \ --cc=devicetree-discuss@lists.ozlabs.org \ --cc=grant.likely@secretlab.ca \ --cc=jassisinghbrar@gmail.com \ --cc=kgene.kim@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=patches@linaro.org \ --cc=vinod.koul@intel.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.