![]() | |||||||||||||
Messages in this thread |
Andi Kleen wrote: > Larry Finger <Larry.Finger@lwfinger.net> writes: > >> I am trying to debug a bcm43xx DMA problem on an x86_64 system with 3 >> GB RAM. Depending on the particular chip and its implementation, dma >> transfers may use 64-, 32-, or 30-bit addressing, with the problem >> interface using 30-bit addressing. From test prints, the correct mask >> (0x3FFFFFFF) is supplied to pci_set_dma_mask and >> pci_set_consistent_dma_mask. Neither call returns an error. In >> addition, several x86_64 systems with more than 1 GB RAM have worked >> with the current code. > > 30bit DMA has be bounced through GFP_DMA. The driver needs special > code for this. You can look at the b44 driver for a working reference. > > The pci_dma_* interfaces on x86-64 only support masks >= 0xffffffff, > anything smaller has to be handled manually. Thanks for the info. I obviously get to devote some effort to seeing how the b44 code handles the same problem. Shouldn't this problem be mentioned somewhere in the documentation, or did I miss something? Larry - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-11-21 16:41 [from the cache] ©2003-2008 | |||||||||||||