Thread (7 messages) flat view 7 messages, 3 authors, 2008-07-20

Re: dma_alloc_coherent() on PPC32: physical addresses above 2G possible?

From: Stefan Richter <stefanr@s5r6.in-berlin.de>
Date: 2008-07-20 19:26:38
Also in: lkml

Arjan van de Ven wrote:
On Sun, 20 Jul 2008 20:36:23 +0200
Stefan Richter [off-list ref] wrote:
quoted
PS:  I don't want to set the DMA mask of this device to
DMA_31BIT_MASK because that would be detrimental to other functions
of the device. It's a TI TSB43AB22A FireWire controller.
Hi,

just want to mention that you can set the coherent mask separately from
the generic mask... is that sufficient for your load?
(you can even set it just for this allocation..)
Hmm.  Would that be done this way?
During probe:

	if (chip_is_tsb43ab22a) {
		if (dma_supported(dev, DMA_31BIT_MASK))
			chip->needs_dma_mask_workaround = 1;
		else
			chip->needs_some_other_workaround = 1;
	}

Later on:

	if (dev->needs_dma_mask_workaround)
		pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);
	allocate_something_special;
	if (dev->needs_dma_mask_workaround)
		pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);

Or is there a variant of dma_alloc_coherent() which directly accepts a
mask argument?
-- 
Stefan Richter
-=====-==--- -=== =-=--
http://arcgraph.de/sr/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help