From: Deepak Saxena <dsaxena@plexity.net>
To: Martin Diehl <lists@mdiehl.de>
Cc: "David S. Miller" <davem@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: [Patch] dma_sync_to_device
Date: Tue, 10 Feb 2004 23:17:53 -0700 [thread overview]
Message-ID: <20040211061753.GA22167@plexity.net> (raw)
In-Reply-To: <Pine.LNX.4.44.0402101815550.2349-100000@notebook.home.mdiehl.de>
On Feb 10 2004, at 18:31, Martin Diehl was caught saying:
[snip]
> --- linux-2.6.0-test8/Documentation/DMA-mapping.txt Wed Oct 8 21:24:06 2003
> +++ v2.6.0-test8-md/Documentation/DMA-mapping.txt Tue Oct 21 11:27:17 2003
> @@ -543,8 +543,11 @@
> all bus addresses.
>
> If you need to use the same streaming DMA region multiple times and touch
> -the data in between the DMA transfers, just map it with
> -pci_map_{single,sg}, and after each DMA transfer call either:
> +the data in between the DMA transfers, the buffer needs to be synced
> +depending on the transfer direction.
> +
> +When reading from the device, just map it with pci_map_{single,sg},
> +and after each DMA transfer call either:
>
> pci_dma_sync_single(dev, dma_handle, size, direction);
>
> @@ -553,6 +556,20 @@
> pci_dma_sync_sg(dev, sglist, nents, direction);
>
> as appropriate.
> +
> +When writing to the mapped the buffer, prepare the data and
> +then before giving the buffer to the hardware call either:
> +
> + pci_dma_sync_to_device_single(dev, dma_handle, size, direction);
> +
> +or:
> +
> + pci_dma_sync_to_device_sg(dev, sglist, nents, direction);
Maybe I am missunderstanding something, but how is this
any different than simply doing:
pci_dma_sync_single(dev, dma_handle, size, DMA_TO_DEVICE);
My understanding of the API is that I can map a buffer
as DMA_BIDIRECTIONAL and then specify the direction. An
existing working example is in the eepro100 driver
in speedo_init_rx_ring():
sp->rx_ring_dma[i] = pci_map_single(sp->pdev, rxf,
PKT_BUF_SZ + sizeof(struct RxFD), PCI_DMA_BIDIRECTIONAL);
later in the same function:
pci_dma_sync_single(sp->pdev, sp->rx_ring_dma[i],
sizeof(struct RxFD), PCI_DMA_TODEVICE);
If this is not allowed, then the docs and this driver
(along with any others using it) need to be updated.
If this acceptable, why add an existing function to
achieve the same goal?
~Deepak
--
Deepak Saxena - dsaxena at plexity dot net - http://www.plexity.net/
next prev parent reply other threads:[~2004-02-11 6:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-10 17:31 [Patch] dma_sync_to_device Martin Diehl
2004-02-10 18:42 ` David S. Miller
2004-02-10 18:59 ` Martin Diehl
2004-02-11 6:17 ` Deepak Saxena [this message]
2004-02-11 6:51 ` Martin Diehl
2004-02-11 16:39 ` Deepak Saxena
2004-02-11 17:51 ` David S. Miller
2004-02-11 18:18 ` Matt Porter
2004-02-11 18:30 ` David S. Miller
2004-02-11 18:57 ` Deepak Saxena
2004-02-11 19:08 ` David S. Miller
2004-02-12 3:46 ` Deepak Saxena
2004-02-12 3:58 ` David S. Miller
2004-02-13 1:49 ` Jamie Lokier
2004-02-14 7:24 ` David S. Miller
2004-02-11 19:23 ` Matt Porter
2004-02-11 19:30 ` David S. Miller
2004-02-11 18:43 ` linux-2.6.2 Kernel Problem Elikster
2004-02-14 11:51 ` Adrian Bunk
-- strict thread matches above, loose matches on Subject: below --
2004-02-13 14:27 [Patch] dma_sync_to_device James Bottomley
2004-02-14 8:51 ` Martin Diehl
2004-02-14 22:34 ` James Bottomley
2004-02-14 23:18 ` David S. Miller
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=20040211061753.GA22167@plexity.net \
--to=dsaxena@plexity.net \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lists@mdiehl.de \
/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