* default values for pci dma_mask and coherent_dma_mask
@ 2005-07-31 10:36 Manfred Spraul
2005-07-31 18:37 ` Lee Revell
0 siblings, 1 reply; 2+ messages in thread
From: Manfred Spraul @ 2005-07-31 10:36 UTC (permalink / raw)
To: Linux Kernel Mailing List
Hi,
From Documentation/DMA-mapping.txt:
> pci_alloc_consistent() by default will return 32-bit DMA addresses.
> PCI-X specification requires PCI-X devices to support 64-bit
> addressing (DAC) for all transactions. And at least one platform (SGI
> SN2) requires 64-bit consistent allocations to operate correctly when
> the IO bus is in PCI-X mode. Therefore, like with pci_set_dma_mask(),
> it's good practice to call pci_set_consistent_dma_mask() to set the
> appropriate mask even if your device only supports 32-bit DMA
> (default) and especially if it's a PCI-X device.
What does "good practice" mean? Is the default 32-bit on all archs or not?
Recent nForce nics support 32-bit for the (coherent) ring buffer and
40-bit for the rx/tx data buffers. I intend to add these lines to the
driver:
+ if (pci_set_dma_mask(pci_dev, 0x0000007fffffffffULL)) {
+ printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit
addressing for device %s.\n",
+ pci_name(pci_dev));
+ }
Is this sufficient, or is it mandatory to add
pci_set_dma_mask(,DMA_32BIT_MASK) and pci_set_consistent_dma_mask (with
error handling - IMHO 10 useless lines).
--
Manfred
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: default values for pci dma_mask and coherent_dma_mask
2005-07-31 10:36 default values for pci dma_mask and coherent_dma_mask Manfred Spraul
@ 2005-07-31 18:37 ` Lee Revell
0 siblings, 0 replies; 2+ messages in thread
From: Lee Revell @ 2005-07-31 18:37 UTC (permalink / raw)
To: Manfred Spraul; +Cc: Linux Kernel Mailing List
On Sun, 2005-07-31 at 12:36 +0200, Manfred Spraul wrote:
> I intend to add these lines to the
> driver:
>
> + if (pci_set_dma_mask(pci_dev, 0x0000007fffffffffULL)) {
> + printk(KERN_INFO "forcedeth: 64-bit DMA failed, using
> 32-bit
> addressing for device %s.\n",
Please don't do this. Instead, add a DMA_40BIT_MASK define to
dma_mapping.h.
Lee
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-07-31 18:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-31 10:36 default values for pci dma_mask and coherent_dma_mask Manfred Spraul
2005-07-31 18:37 ` Lee Revell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox