* [PATCH 07/12] mtd: gpmi: move to use generic DMA helper [not found] <1361978748-25281-1-git-send-email-shawn.guo@linaro.org> @ 2013-02-27 15:25 ` Shawn Guo 2013-02-28 8:39 ` Huang Shijie 2013-03-08 13:19 ` Artem Bityutskiy 0 siblings, 2 replies; 8+ messages in thread From: Shawn Guo @ 2013-02-27 15:25 UTC (permalink / raw) To: linux-arm-kernel Cc: Fabio Estevam, Arnd Bergmann, Huang Shijie, Vinod Koul, Artem Bityutskiy, Marek Vasut, linux-mtd, Shawn Guo With the generic DMA device tree helper supported by mxs-dma driver, client devices only need to call dma_request_slave_channel() for requesting a DMA channel from dmaengine. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Cc: Artem Bityutskiy <dedekind1@gmail.com> Cc: linux-mtd@lists.infradead.org --- .../devicetree/bindings/mtd/gpmi-nand.txt | 17 ++++--- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 51 +------------------- drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 3 +- 3 files changed, 12 insertions(+), 59 deletions(-) diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt index 3fb3f901..6f74e23 100644 --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt @@ -7,10 +7,12 @@ Required properties: - compatible : should be "fsl,<chip>-gpmi-nand" - reg : should contain registers location and length for gpmi and bch. - reg-names: Should contain the reg names "gpmi-nand" and "bch" - - interrupts : The first is the DMA interrupt number for GPMI. - The second is the BCH interrupt number. - - interrupt-names : The interrupt names "gpmi-dma", "bch"; - - fsl,gpmi-dma-channel : Should contain the dma channel it uses. + - interrupts : BCH interrupt number. + - interrupt-names : Should be "bch". + - dmas: DMA specifier, consisting of a phandle to DMA controller node + and GPMI DMA channel ID. + Refer to dma.txt and fsl-mxs-dma.txt for details. + - dma-names: Must be "gpmi". Optional properties: - nand-on-flash-bbt: boolean to enable on flash bbt option if not @@ -27,9 +29,10 @@ gpmi-nand@8000c000 { #size-cells = <1>; reg = <0x8000c000 2000>, <0x8000a000 2000>; reg-names = "gpmi-nand", "bch"; - interrupts = <88>, <41>; - interrupt-names = "gpmi-dma", "bch"; - fsl,gpmi-dma-channel = <4>; + interrupts = <41>; + interrupt-names = "bch"; + dmas = <&dma_apbh 4>; + dma-names = "gpmi"; partition@0 { ... diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c index 717881a..64d4d61 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -36,7 +36,6 @@ #define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME "gpmi-nand" #define GPMI_NAND_BCH_REGS_ADDR_RES_NAME "bch" #define GPMI_NAND_BCH_INTERRUPT_RES_NAME "bch" -#define GPMI_NAND_DMA_INTERRUPT_RES_NAME "gpmi-dma" /* add our owner bbt descriptor */ static uint8_t scan_ff_pattern[] = { 0xff }; @@ -420,28 +419,6 @@ static void release_bch_irq(struct gpmi_nand_data *this) free_irq(i, this); } -static bool gpmi_dma_filter(struct dma_chan *chan, void *param) -{ - struct gpmi_nand_data *this = param; - int dma_channel = (int)this->private; - - if (!mxs_dma_is_apbh(chan)) - return false; - /* - * only catch the GPMI dma channels : - * for mx23 : MX23_DMA_GPMI0 ~ MX23_DMA_GPMI3 - * (These four channels share the same IRQ!) - * - * for mx28 : MX28_DMA_GPMI0 ~ MX28_DMA_GPMI7 - * (These eight channels share the same IRQ!) - */ - if (dma_channel == chan->chan_id) { - chan->private = &this->dma_data; - return true; - } - return false; -} - static void release_dma_channels(struct gpmi_nand_data *this) { unsigned int i; @@ -455,36 +432,10 @@ static void release_dma_channels(struct gpmi_nand_data *this) static int acquire_dma_channels(struct gpmi_nand_data *this) { struct platform_device *pdev = this->pdev; - struct resource *r_dma; - struct device_node *dn; - u32 dma_channel; - int ret; struct dma_chan *dma_chan; - dma_cap_mask_t mask; - - /* dma channel, we only use the first one. */ - dn = pdev->dev.of_node; - ret = of_property_read_u32(dn, "fsl,gpmi-dma-channel", &dma_channel); - if (ret) { - pr_err("unable to get DMA channel from dt.\n"); - goto acquire_err; - } - this->private = (void *)dma_channel; - - /* gpmi dma interrupt */ - r_dma = platform_get_resource_byname(pdev, IORESOURCE_IRQ, - GPMI_NAND_DMA_INTERRUPT_RES_NAME); - if (!r_dma) { - pr_err("Can't get resource for DMA\n"); - goto acquire_err; - } - this->dma_data.chan_irq = r_dma->start; /* request dma channel */ - dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - - dma_chan = dma_request_channel(mask, gpmi_dma_filter, this); + dma_chan = dma_request_slave_channel(&pdev->dev, "gpmi"); if (!dma_chan) { pr_err("Failed to request DMA channel.\n"); goto acquire_err; diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h index 0729477..a7685e3 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h @@ -20,7 +20,7 @@ #include <linux/mtd/nand.h> #include <linux/platform_device.h> #include <linux/dma-mapping.h> -#include <linux/fsl/mxs-dma.h> +#include <linux/dmaengine.h> #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */ struct resources { @@ -180,7 +180,6 @@ struct gpmi_nand_data { /* DMA channels */ #define DMA_CHANS 8 struct dma_chan *dma_chans[DMA_CHANS]; - struct mxs_dma_data dma_data; enum dma_ops_type last_dma_type; enum dma_ops_type dma_type; struct completion dma_done; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-02-27 15:25 ` [PATCH 07/12] mtd: gpmi: move to use generic DMA helper Shawn Guo @ 2013-02-28 8:39 ` Huang Shijie 2013-03-01 1:14 ` Shawn Guo 2013-03-08 13:19 ` Artem Bityutskiy 1 sibling, 1 reply; 8+ messages in thread From: Huang Shijie @ 2013-02-28 8:39 UTC (permalink / raw) To: Shawn Guo Cc: Fabio Estevam, Arnd Bergmann, Artem Bityutskiy, Vinod Koul, Marek Vasut, linux-mtd, linux-arm-kernel 于 2013年02月27日 23:25, Shawn Guo 写道: > +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt > @@ -7,10 +7,12 @@ Required properties: > - compatible : should be "fsl,<chip>-gpmi-nand" > - reg : should contain registers location and length for gpmi and bch. > - reg-names: Should contain the reg names "gpmi-nand" and "bch" > - - interrupts : The first is the DMA interrupt number for GPMI. > - The second is the BCH interrupt number. > - - interrupt-names : The interrupt names "gpmi-dma", "bch"; > - - fsl,gpmi-dma-channel : Should contain the dma channel it uses. > + - interrupts : BCH interrupt number. > + - interrupt-names : Should be "bch". why split out the bch interrupt? It seems no use to do it. thanks Huang Shijie ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-02-28 8:39 ` Huang Shijie @ 2013-03-01 1:14 ` Shawn Guo 0 siblings, 0 replies; 8+ messages in thread From: Shawn Guo @ 2013-03-01 1:14 UTC (permalink / raw) To: Huang Shijie Cc: Fabio Estevam, Arnd Bergmann, Artem Bityutskiy, Vinod Koul, Marek Vasut, linux-mtd, linux-arm-kernel On Thu, Feb 28, 2013 at 04:39:12PM +0800, Huang Shijie wrote: > 于 2013年02月27日 23:25, Shawn Guo 写道: > > +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt > > @@ -7,10 +7,12 @@ Required properties: > > - compatible : should be "fsl,<chip>-gpmi-nand" > > - reg : should contain registers location and length for gpmi and bch. > > - reg-names: Should contain the reg names "gpmi-nand" and "bch" > > - - interrupts : The first is the DMA interrupt number for GPMI. > > - The second is the BCH interrupt number. > > - - interrupt-names : The interrupt names "gpmi-dma", "bch"; > > - - fsl,gpmi-dma-channel : Should contain the dma channel it uses. > > + - interrupts : BCH interrupt number. > > + - interrupt-names : Should be "bch". > why split out the bch interrupt? It seems no use to do it. > The real change here is to remove gpmi-dma interrupt, since we have all dma interrupts defined in dma controller node. Shawn ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-02-27 15:25 ` [PATCH 07/12] mtd: gpmi: move to use generic DMA helper Shawn Guo 2013-02-28 8:39 ` Huang Shijie @ 2013-03-08 13:19 ` Artem Bityutskiy 2013-03-08 14:06 ` Arnd Bergmann ` (2 more replies) 1 sibling, 3 replies; 8+ messages in thread From: Artem Bityutskiy @ 2013-03-08 13:19 UTC (permalink / raw) To: Shawn Guo Cc: Fabio Estevam, Arnd Bergmann, Huang Shijie, Vinod Koul, Marek Vasut, linux-mtd, linux-arm-kernel On Wed, 2013-02-27 at 23:25 +0800, Shawn Guo wrote: > With the generic DMA device tree helper supported by mxs-dma driver, > client devices only need to call dma_request_slave_channel() for > requesting a DMA channel from dmaengine. > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > Cc: Artem Bityutskiy <dedekind1@gmail.com> > Cc: linux-mtd@lists.infradead.org It looks like this ne is rather independent and can go via the MTD tree. So pushed this one to l2-mtd.git - let me know if I am confused. Thanks! -- Best Regards, Artem Bityutskiy ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-03-08 13:19 ` Artem Bityutskiy @ 2013-03-08 14:06 ` Arnd Bergmann 2013-03-11 7:32 ` Artem Bityutskiy 2013-03-08 16:26 ` Huang Shijie 2013-03-11 3:03 ` Shawn Guo 2 siblings, 1 reply; 8+ messages in thread From: Arnd Bergmann @ 2013-03-08 14:06 UTC (permalink / raw) To: dedekind1 Cc: Fabio Estevam, Huang Shijie, Vinod Koul, Marek Vasut, linux-mtd, Shawn Guo, linux-arm-kernel On Friday 08 March 2013, Artem Bityutskiy wrote: > On Wed, 2013-02-27 at 23:25 +0800, Shawn Guo wrote: > > With the generic DMA device tree helper supported by mxs-dma driver, > > client devices only need to call dma_request_slave_channel() for > > requesting a DMA channel from dmaengine. > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > > Cc: Artem Bityutskiy <dedekind1@gmail.com> > > Cc: linux-mtd@lists.infradead.org > > It looks like this ne is rather independent and can go via the MTD tree. > So pushed this one to l2-mtd.git - let me know if I am confused. Thanks! I think you should not apply this patch on a tree that does not already have the first three patches in the series. The easiest way would be to keep the series together. As an alternative, Shawn could create a git branch with those three patches and let you (and the other subsystem maintainers) pull that branch in before applying the subsystem specific patch. Arnd ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-03-08 14:06 ` Arnd Bergmann @ 2013-03-11 7:32 ` Artem Bityutskiy 0 siblings, 0 replies; 8+ messages in thread From: Artem Bityutskiy @ 2013-03-11 7:32 UTC (permalink / raw) To: Arnd Bergmann Cc: Fabio Estevam, Huang Shijie, Vinod Koul, Marek Vasut, linux-mtd, Shawn Guo, linux-arm-kernel On Fri, 2013-03-08 at 14:06 +0000, Arnd Bergmann wrote: > On Friday 08 March 2013, Artem Bityutskiy wrote: > > On Wed, 2013-02-27 at 23:25 +0800, Shawn Guo wrote: > > > With the generic DMA device tree helper supported by mxs-dma driver, > > > client devices only need to call dma_request_slave_channel() for > > > requesting a DMA channel from dmaengine. > > > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > > > Cc: Artem Bityutskiy <dedekind1@gmail.com> > > > Cc: linux-mtd@lists.infradead.org > > > > It looks like this ne is rather independent and can go via the MTD tree. > > So pushed this one to l2-mtd.git - let me know if I am confused. Thanks! > > I think you should not apply this patch on a tree that does not already > have the first three patches in the series. The easiest way would be > to keep the series together. As an alternative, Shawn could create a > git branch with those three patches and let you (and the other subsystem > maintainers) pull that branch in before applying the subsystem specific > patch. OK, this one looked independent to me. Anyway, dropped it and for this one: Acked-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> -- Best Regards, Artem Bityutskiy ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-03-08 13:19 ` Artem Bityutskiy 2013-03-08 14:06 ` Arnd Bergmann @ 2013-03-08 16:26 ` Huang Shijie 2013-03-11 3:03 ` Shawn Guo 2 siblings, 0 replies; 8+ messages in thread From: Huang Shijie @ 2013-03-08 16:26 UTC (permalink / raw) To: dedekind1 Cc: Fabio Estevam, Arnd Bergmann, Marek Vasut, Vinod Koul, Huang Shijie, linux-mtd, Shawn Guo, linux-arm-kernel On Fri, Mar 8, 2013 at 8:19 AM, Artem Bityutskiy <dedekind1@gmail.com> wrote: > On Wed, 2013-02-27 at 23:25 +0800, Shawn Guo wrote: >> With the generic DMA device tree helper supported by mxs-dma driver, >> client devices only need to call dma_request_slave_channel() for >> requesting a DMA channel from dmaengine. >> >> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> >> Cc: Artem Bityutskiy <dedekind1@gmail.com> >> Cc: linux-mtd@lists.infradead.org > > It looks like this ne is rather independent and can go via the MTD tree. > So pushed this one to l2-mtd.git - let me know if I am confused. Thanks! I suggest do not apply this patch. the whole patch set is still under review now. Best Regards Huang Shijie > > -- > Best Regards, > Artem Bityutskiy > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 07/12] mtd: gpmi: move to use generic DMA helper 2013-03-08 13:19 ` Artem Bityutskiy 2013-03-08 14:06 ` Arnd Bergmann 2013-03-08 16:26 ` Huang Shijie @ 2013-03-11 3:03 ` Shawn Guo 2 siblings, 0 replies; 8+ messages in thread From: Shawn Guo @ 2013-03-11 3:03 UTC (permalink / raw) To: Artem Bityutskiy Cc: Fabio Estevam, Arnd Bergmann, Huang Shijie, Vinod Koul, Marek Vasut, linux-mtd, linux-arm-kernel Artem, On Fri, Mar 08, 2013 at 03:19:45PM +0200, Artem Bityutskiy wrote: > On Wed, 2013-02-27 at 23:25 +0800, Shawn Guo wrote: > > With the generic DMA device tree helper supported by mxs-dma driver, > > client devices only need to call dma_request_slave_channel() for > > requesting a DMA channel from dmaengine. > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > > Cc: Artem Bityutskiy <dedekind1@gmail.com> > > Cc: linux-mtd@lists.infradead.org > > It looks like this ne is rather independent and can go via the MTD tree. > So pushed this one to l2-mtd.git - let me know if I am confused. Thanks! First of all, there is a new version (v2) of the patch (series) to address review comments. Secondly, as Arnd pointed it out, you shouldn't apply this single patch, because it depends on the first 3 patches in the series to work. Applying this single patch will result in a non-functional gpmi driver. As I mentioned in the cover letter, I prefer to have your ACK on the patch to merge the series through arm-soc tree as a whole. If you insist that you merge the patch through your tree, I can also create a topic branch containing the first 3 patches, as Arnd suggests. Please just let me know. Shawn ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-03-11 7:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1361978748-25281-1-git-send-email-shawn.guo@linaro.org>
2013-02-27 15:25 ` [PATCH 07/12] mtd: gpmi: move to use generic DMA helper Shawn Guo
2013-02-28 8:39 ` Huang Shijie
2013-03-01 1:14 ` Shawn Guo
2013-03-08 13:19 ` Artem Bityutskiy
2013-03-08 14:06 ` Arnd Bergmann
2013-03-11 7:32 ` Artem Bityutskiy
2013-03-08 16:26 ` Huang Shijie
2013-03-11 3:03 ` Shawn Guo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox