Thread (17 messages) 17 messages, 4 authors, 2010-08-27

ARM: 2.6.3[45] PCI regression (IXP4xx and PXA?)

From: fujita.tomonori@lab.ntt.co.jp (FUJITA Tomonori)
Date: 2010-08-26 11:55:49
Also in: lkml

On Fri, 20 Aug 2010 07:51:52 +1000
Benjamin Herrenschmidt [off-list ref] wrote:
On Thu, 2010-08-19 at 23:50 +0900, FUJITA Tomonori wrote:
quoted
You mean that you like to permit architectures to modify
dev->coherent_dma_mask behind a device? If so, I'm against it because
it means dev->coherent_dma_mask has two meanings. That's confusing.
No it's not. It has one and only one meaning which is the mask defining
where the coherent memory can come from for that device. Nobody cares if
the device can do more and has been "clipped" at set_coherent_dma_mask()
time by the bus. This is not useful information.
Ok.

I've seen that someone submitted a patch to print the dma_mask under
sysfs, I supposed, for debugging to check if a driver misuses the DMA
API or the bus can't do 64bit DMA when the device can support 64bit
DMA but only gets a buffer under 32bit.

But yeah, we can live withtout it.

Lots of drivers call dma_set_coherent_mask with 64bit mask and then
call it with 32bit mask if 64bit mask fails. So we don't have driver's
coherent mask anyway.

So I beleive the arch should hook the later and modify the mask as it
gets applied -once-.
OK. like dma_set_mask(), we could make every architecutre have the own
dma_set_coherent_mask(). But looks like only ARM needs own
dma_set_coherent_mask() (at least now), so adding
ARCH_HAS_DMA_SET_COHERENT_MASK define might be better. I don't like
the asymmetry of dma_set_mask and dma_set_coherent_mask much though.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help