linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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

  reply	other threads:[~2011-03-28  2:04 UTC|newest]

Thread overview: 20+ 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 ` [ PATCH V2 1/7] ARM: add GPMI support for imx23/imx28 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 ` [ PATCH V2 3/7] MTD : add the database for the NANDs Huang Shijie
2011-03-25 10:34   ` Florian Fainelli
2011-03-28  2:00     ` Huang Shijie
2011-03-31 10:00       ` Artem Bityutskiy
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-26  0:01   ` Russell King - ARM Linux
2011-03-28  2:04     ` Huang Shijie [this message]
2011-03-25 10:23 ` [ PATCH V2 6/7] MTD : add GPMI support for imx28 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 15:36 ` [ PATCH V2 0/7] add the GPMI controller driver for IMX23/IMX28 Lothar Waßmann
2011-03-25 15:39   ` Wolfram Sang
2011-03-28  2:06     ` Huang Shijie
2011-03-28  2:34   ` Huang Shijie
2011-03-28  7:01     ` Lothar Waßmann
2011-03-28  7:38       ` Huang Shijie
2011-07-08 17:38 ` [ PATCH V2 5/7] MTD : add GPMI support for imx23 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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).