From: Huang Shijie <b32955@freescale.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-mtd@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, ffainelli@freebox.fr
Subject: Re: [ PATCH V2 4/7] MTD : add the common code for GPMI controller driver
Date: Mon, 28 Mar 2011 10:04:14 +0800 [thread overview]
Message-ID: <4D8FEC9E.1000900@freescale.com> (raw)
In-Reply-To: <20110326000148.GB13574@n2100.arm.linux.org.uk>
Hi:
> On Fri, Mar 25, 2011 at 06:22:58PM +0800, Huang Shijie wrote:
>> +/* Can we use the upper's buffer directly for DMA? */
>> +void prepare_data_dma(struct gpmi_nfc_data *this, enum dma_data_direction dr)
>> +{
>> + struct mil *mil =&this->mil;
>> + struct scatterlist *sgl =&mil->data_sgl;
>> + int ret;
>> +
>> + mil->direct_dma_map_ok = true;
>> +
>> + /* first try to map the upper buffer directly */
>> + sg_init_one(sgl, mil->upper_buf, mil->upper_len);
>> + ret = dma_map_sg(this->dev, sgl, 1, dr);
>> + if (ret == 0) {
>> + /* We have to use our own DMA buffer. */
>> + sg_init_one(sgl, mil->data_buffer_dma, PAGE_SIZE);
>> + ret = dma_map_sg(this->dev, sgl, 1, dr);
>> + BUG_ON(ret == 0);
>> +
>> + if (dr == DMA_TO_DEVICE)
>> + memcpy(mil->data_buffer_dma, mil->upper_buf,
>> + mil->upper_len);
> Buggy. Ensure data is present in the buffers _before_ mapping.
>
thanks.
>> + case DMA_FOR_READ_DATA:
>> + if (mil->direct_dma_map_ok == false)
>> + memcpy(mil->upper_buf, (char *)mil->data_buffer_dma,
>> + mil->upper_len);
>> + dma_unmap_sg(this->dev,&mil->data_sgl, 1, DMA_FROM_DEVICE);
> Buggy. Only read data from buffers _after_ unmapping.
>
thanks.
Best Regards
Huang Shijie
WARNING: multiple messages have this Message-ID (diff)
From: b32955@freescale.com (Huang Shijie)
To: linux-arm-kernel@lists.infradead.org
Subject: [ PATCH V2 4/7] MTD : add the common code for GPMI controller driver
Date: Mon, 28 Mar 2011 10:04:14 +0800 [thread overview]
Message-ID: <4D8FEC9E.1000900@freescale.com> (raw)
In-Reply-To: <20110326000148.GB13574@n2100.arm.linux.org.uk>
Hi:
> On Fri, Mar 25, 2011 at 06:22:58PM +0800, Huang Shijie wrote:
>> +/* Can we use the upper's buffer directly for DMA? */
>> +void prepare_data_dma(struct gpmi_nfc_data *this, enum dma_data_direction dr)
>> +{
>> + struct mil *mil =&this->mil;
>> + struct scatterlist *sgl =&mil->data_sgl;
>> + int ret;
>> +
>> + mil->direct_dma_map_ok = true;
>> +
>> + /* first try to map the upper buffer directly */
>> + sg_init_one(sgl, mil->upper_buf, mil->upper_len);
>> + ret = dma_map_sg(this->dev, sgl, 1, dr);
>> + if (ret == 0) {
>> + /* We have to use our own DMA buffer. */
>> + sg_init_one(sgl, mil->data_buffer_dma, PAGE_SIZE);
>> + ret = dma_map_sg(this->dev, sgl, 1, dr);
>> + BUG_ON(ret == 0);
>> +
>> + if (dr == DMA_TO_DEVICE)
>> + memcpy(mil->data_buffer_dma, mil->upper_buf,
>> + mil->upper_len);
> Buggy. Ensure data is present in the buffers _before_ mapping.
>
thanks.
>> + case DMA_FOR_READ_DATA:
>> + if (mil->direct_dma_map_ok == false)
>> + memcpy(mil->upper_buf, (char *)mil->data_buffer_dma,
>> + mil->upper_len);
>> + dma_unmap_sg(this->dev,&mil->data_sgl, 1, DMA_FROM_DEVICE);
> Buggy. Only read data from buffers _after_ unmapping.
>
thanks.
Best Regards
Huang Shijie
next prev parent reply other threads:[~2011-03-28 2:04 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-25 10:22 [ PATCH V2 0/7] add the GPMI controller driver for IMX23/IMX28 Huang Shijie
2011-03-25 10:22 ` Huang Shijie
2011-03-25 10:22 ` [ PATCH V2 1/7] ARM: add GPMI support for imx23/imx28 Huang Shijie
2011-03-25 10:22 ` Huang Shijie
2011-03-25 10:22 ` [ PATCH V2 2/7] dmaengine: change the flags of request_irq() Huang Shijie
2011-03-25 10:22 ` Huang Shijie
2011-03-25 10:22 ` [ PATCH V2 3/7] MTD : add the database for the NANDs Huang Shijie
2011-03-25 10:22 ` Huang Shijie
2011-03-25 10:34 ` Florian Fainelli
2011-03-25 10:34 ` Florian Fainelli
2011-03-28 2:00 ` Huang Shijie
2011-03-28 2:00 ` Huang Shijie
2011-03-31 10:00 ` Artem Bityutskiy
2011-03-31 10:00 ` Artem Bityutskiy
2011-03-31 10:12 ` Huang Shijie
2011-03-31 10:12 ` Huang Shijie
2011-03-25 10:22 ` [ PATCH V2 4/7] MTD : add the common code for GPMI controller driver Huang Shijie
2011-03-25 10:22 ` Huang Shijie
2011-03-26 0:01 ` Russell King - ARM Linux
2011-03-26 0:01 ` Russell King - ARM Linux
2011-03-28 2:04 ` Huang Shijie [this message]
2011-03-28 2:04 ` Huang Shijie
2011-03-25 10:22 ` [ PATCH V2 5/7] MTD : add GPMI support for imx23 Huang Shijie
2011-07-08 17:38 ` Huang Shijie
2011-03-25 10:23 ` [ PATCH V2 6/7] MTD : add GPMI support for imx28 Huang Shijie
2011-03-25 10:23 ` Huang Shijie
2011-03-25 10:23 ` [ PATCH V2 7/7] MTD : add GPMI driver in the config and Makefile Huang Shijie
2011-03-25 10:23 ` Huang Shijie
2011-03-25 15:36 ` [ PATCH V2 0/7] add the GPMI controller driver for IMX23/IMX28 Lothar Waßmann
2011-03-25 15:36 ` Lothar Waßmann
2011-03-25 15:39 ` Wolfram Sang
2011-03-25 15:39 ` Wolfram Sang
2011-03-28 2:06 ` Huang Shijie
2011-03-28 2:06 ` Huang Shijie
2011-03-28 2:34 ` Huang Shijie
2011-03-28 2:34 ` Huang Shijie
2011-03-28 7:01 ` Lothar Waßmann
2011-03-28 7:01 ` Lothar Waßmann
2011-03-28 7:38 ` Huang Shijie
2011-03-28 7:38 ` Huang Shijie
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=4D8FEC9E.1000900@freescale.com \
--to=b32955@freescale.com \
--cc=ffainelli@freebox.fr \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
/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.