For David Jander and Vitaly Bordug: Regarding DMA allocation for CPM uarts, we had a similar issue with our MPC857T and MPC885 boards. I think the real problem is that bus_to_virt() and virt_to_bus() don't work on 8xx platforms for addresses allocated using dma_alloc_coherent(). We had a previous discussion Pantelis Antoniou and he agreed that the use of bus_to_virt() and virt_to_bus() should be deprecated. This is also recommended in the whitepaper series that discussed porting device drivers from 2.4 to 2.6.
What we did was use dma_alloc_coherent() in cpm_uart_cpm1.c, saving dma_addr in the pinfo structure. The in cpm_uart_core.c, we use dma_addr as the base address for the cbd_bufaddr values in each of the descriptors. The software, when accessing the DMA buffers, uses mem_addr as the base, applying the same offset computed previously for the dma addresses. This technique is used in other drivers all over 2.6. This avoids the configuration dependencies on the conversion functions. Ken Poole kpoole at bos.mrv.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060418/17bdc6cc/attachment.htm