From: Vipin Kumar <vipin.kumar@st.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: "dedekind1@gmail.com" <dedekind1@gmail.com>,
Vinod Koul <vinod.koul@intel.com>,
spear-devel <spear-devel@list.st.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"plagnioj@jcrosoft.com" <plagnioj@jcrosoft.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 07/11] fsmc/nand: Provide contiguous buffers to dma
Date: Thu, 11 Oct 2012 09:38:42 +0530 [thread overview]
Message-ID: <5076464A.6070309@st.com> (raw)
In-Reply-To: <CACRpkdb6ArMUQ6MAsue+Gh15UfOUrWNAc9wrxd6awc0BTwOGiw@mail.gmail.com>
On 10/10/2012 10:37 PM, Linus Walleij wrote:
> On Tue, Oct 9, 2012 at 12:44 PM, Vipin Kumar<vipin.kumar@st.com> wrote:
>
>> read_buf/write_buf callbacks should be able to accept a user space memory
>> address (virtually contiguous memory) as buffer pointer.
>>
>> This patch allocates a logically contiguous memory area which is use for dma
>
> You mean PHYSICALLY contigous, don't you?
>
Yes Sorry for that :)
>> xfers during read and write accesses.
>>
>> Signed-off-by: Vipin Kumar<vipin.kumar@st.com>
>
> If you really want a physically contigous buffer you need to use
> CMA, but I don't think that is the real problem here...
>
> We're already using userspace buffers in e.g. the MMCI driver
> (drivers/mmc/host/mmci.c).
>
> The real problem is likely the DMA driver. The stuf that get
> fed into dma.device_prep_dma_memcpy() needs to be
> converted to a scatterlist and then set up in the LLI list
> for the controller.
>
> IIRC SPEAr is using drivers/dma/dw_dmac.c so
> check this driver's dwc_prep_dma_memcpy().
> It does seem like it is checking whether src or
> dest is scattered in this for() loop:
>
> for (offset = 0; offset< len; offset += xfer_count<< src_width) {}
>
> dma_sync_single_for_device() is translating the virtual
> address to physical for every chunk BTW.
>
> So instead of doing this copying, debug the problem, and
> see if there is a bug in that for()-loop or similar, if it needs
> to be rewritten or so.
>
I would debug again and reply to this mail soon
> Yours,
> Linus Walleij
> .
>
WARNING: multiple messages have this Message-ID (diff)
From: vipin.kumar@st.com (Vipin Kumar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 07/11] fsmc/nand: Provide contiguous buffers to dma
Date: Thu, 11 Oct 2012 09:38:42 +0530 [thread overview]
Message-ID: <5076464A.6070309@st.com> (raw)
In-Reply-To: <CACRpkdb6ArMUQ6MAsue+Gh15UfOUrWNAc9wrxd6awc0BTwOGiw@mail.gmail.com>
On 10/10/2012 10:37 PM, Linus Walleij wrote:
> On Tue, Oct 9, 2012 at 12:44 PM, Vipin Kumar<vipin.kumar@st.com> wrote:
>
>> read_buf/write_buf callbacks should be able to accept a user space memory
>> address (virtually contiguous memory) as buffer pointer.
>>
>> This patch allocates a logically contiguous memory area which is use for dma
>
> You mean PHYSICALLY contigous, don't you?
>
Yes Sorry for that :)
>> xfers during read and write accesses.
>>
>> Signed-off-by: Vipin Kumar<vipin.kumar@st.com>
>
> If you really want a physically contigous buffer you need to use
> CMA, but I don't think that is the real problem here...
>
> We're already using userspace buffers in e.g. the MMCI driver
> (drivers/mmc/host/mmci.c).
>
> The real problem is likely the DMA driver. The stuf that get
> fed into dma.device_prep_dma_memcpy() needs to be
> converted to a scatterlist and then set up in the LLI list
> for the controller.
>
> IIRC SPEAr is using drivers/dma/dw_dmac.c so
> check this driver's dwc_prep_dma_memcpy().
> It does seem like it is checking whether src or
> dest is scattered in this for() loop:
>
> for (offset = 0; offset< len; offset += xfer_count<< src_width) {}
>
> dma_sync_single_for_device() is translating the virtual
> address to physical for every chunk BTW.
>
> So instead of doing this copying, debug the problem, and
> see if there is a bug in that for()-loop or similar, if it needs
> to be rewritten or so.
>
I would debug again and reply to this mail soon
> Yours,
> Linus Walleij
> .
>
next prev parent reply other threads:[~2012-10-11 4:08 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-09 10:44 [PATCH 00/11] mtd/nand: fsmc driver updates Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 10:44 ` [PATCH 01/11] fsmc/nand:FIX: Change the type for regs to void __iomem * Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 17:14 ` viresh kumar
2012-10-09 17:14 ` viresh kumar
2012-10-10 16:49 ` Linus Walleij
2012-10-10 16:49 ` Linus Walleij
2012-10-17 12:30 ` Artem Bityutskiy
2012-10-17 12:30 ` Artem Bityutskiy
2012-10-09 10:44 ` [PATCH 02/11] fsmc/nand: Rearrange the fsmc_nand_data structure and update comments Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 11:52 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 11:52 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-11 4:24 ` Vipin Kumar
2012-10-11 4:24 ` Vipin Kumar
2012-10-09 17:15 ` viresh kumar
2012-10-09 17:15 ` viresh kumar
2012-10-09 10:44 ` [PATCH 03/11] fsmc/nand: Support multiple banks connected to controller Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 11:55 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 11:55 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-10 10:28 ` Vipin Kumar
2012-10-10 10:28 ` Vipin Kumar
2012-10-17 12:31 ` Artem Bityutskiy
2012-10-17 12:31 ` Artem Bityutskiy
2012-10-09 10:44 ` [PATCH 04/11] fsmc/nand: Accept nand timing parameters via DT Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 11:57 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 11:57 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-11 4:25 ` Vipin Kumar
2012-10-11 4:25 ` Vipin Kumar
2012-10-09 17:20 ` viresh kumar
2012-10-09 17:20 ` viresh kumar
2012-10-09 10:44 ` [PATCH 05/11] fsmc: Implement ready/busy through gpio pin Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 11:59 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 11:59 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 17:34 ` viresh kumar
2012-10-09 17:34 ` viresh kumar
2012-10-09 10:44 ` [PATCH 06/11] fsmc/nand: Modify the wait to uninterruptible Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-10 17:10 ` Linus Walleij
2012-10-10 17:10 ` Linus Walleij
2012-10-17 12:47 ` Artem Bityutskiy
2012-10-17 12:47 ` Artem Bityutskiy
2012-10-09 10:44 ` [PATCH 07/11] fsmc/nand: Provide contiguous buffers to dma Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 17:41 ` viresh kumar
2012-10-09 17:41 ` viresh kumar
2012-10-10 17:07 ` Linus Walleij
2012-10-10 17:07 ` Linus Walleij
2012-10-11 3:16 ` viresh kumar
2012-10-11 3:16 ` viresh kumar
2012-10-11 4:07 ` Vipin Kumar
2012-10-11 4:07 ` Vipin Kumar
2012-10-11 4:08 ` Vipin Kumar [this message]
2012-10-11 4:08 ` Vipin Kumar
2012-10-11 4:15 ` viresh kumar
2012-10-11 4:15 ` viresh kumar
2012-10-11 16:06 ` Linus Walleij
2012-10-11 16:06 ` Linus Walleij
2012-10-11 17:07 ` viresh kumar
2012-10-11 17:07 ` viresh kumar
2012-10-11 21:51 ` Linus Walleij
2012-10-11 21:51 ` Linus Walleij
2012-10-12 3:55 ` Vipin Kumar
2012-10-12 3:55 ` Vipin Kumar
2012-10-15 13:18 ` Artem Bityutskiy
2012-10-15 13:18 ` Artem Bityutskiy
2012-10-15 16:27 ` Brian Norris
2012-10-15 16:27 ` Brian Norris
2012-10-15 19:51 ` Linus Walleij
2012-10-15 19:51 ` Linus Walleij
2012-10-16 7:14 ` Artem Bityutskiy
2012-10-16 7:14 ` Artem Bityutskiy
2012-10-16 10:05 ` Linus Walleij
2012-10-16 10:05 ` Linus Walleij
2012-10-21 7:38 ` Brian Norris
2012-10-21 7:38 ` Brian Norris
2012-10-21 11:00 ` Artem Bityutskiy
2012-10-21 11:00 ` Artem Bityutskiy
2012-10-21 12:02 ` Artem Bityutskiy
2012-10-21 12:02 ` Artem Bityutskiy
2012-10-16 7:11 ` Artem Bityutskiy
2012-10-16 7:11 ` Artem Bityutskiy
2012-10-21 7:21 ` Brian Norris
2012-10-21 7:21 ` Brian Norris
2012-10-09 10:44 ` [PATCH 08/11] fsmc/nand: Use relaxed variants of io accessors Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 17:42 ` viresh kumar
2012-10-09 17:42 ` viresh kumar
2012-10-10 17:09 ` Linus Walleij
2012-10-10 17:09 ` Linus Walleij
2012-10-09 10:44 ` [PATCH 09/11] fsmc/nand:FIX: replace change_bit routine Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-10 17:22 ` Linus Walleij
2012-10-10 17:22 ` Linus Walleij
2012-10-10 20:21 ` Nicolas Pitre
2012-10-10 20:21 ` Nicolas Pitre
2012-10-11 4:17 ` Vipin Kumar
2012-10-11 4:17 ` Vipin Kumar
2012-10-10 20:45 ` Russell King - ARM Linux
2012-10-10 20:45 ` Russell King - ARM Linux
2012-10-11 4:20 ` Vipin Kumar
2012-10-11 4:20 ` Vipin Kumar
2012-10-09 10:44 ` [PATCH 10/11] fsmc/nand: Add sw bch support for ecc calculation/correction Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-09 11:50 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-09 11:50 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-10 10:33 ` Vipin Kumar
2012-10-10 10:33 ` Vipin Kumar
2012-10-09 10:44 ` [PATCH 11/11] nand: Increase the ecc placement locations to 640 Vipin Kumar
2012-10-09 10:44 ` Vipin Kumar
2012-10-17 12:47 ` Artem Bityutskiy
2012-10-17 12:47 ` Artem Bityutskiy
2012-10-18 6:36 ` Brian Norris
2012-10-18 6:36 ` Brian Norris
2012-10-17 12:48 ` [PATCH 00/11] mtd/nand: fsmc driver updates Artem Bityutskiy
2012-10-17 12:48 ` Artem Bityutskiy
2012-10-18 4:13 ` Vipin Kumar
2012-10-18 4:13 ` Vipin Kumar
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=5076464A.6070309@st.com \
--to=vipin.kumar@st.com \
--cc=dedekind1@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=plagnioj@jcrosoft.com \
--cc=spear-devel@list.st.com \
--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: 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.