Re: dma_ops->map_page == NULL
From: Kumar Gala <hidden>
Date: 2009-07-07 14:37:59
On Jul 7, 2009, at 6:08 AM, Benjamin Herrenschmidt wrote:
On Tue, 2009-07-07 at 10:15 +1000, Mark Nelson wrote:quoted
When the 32 and 64bit DMA code was merged in .28 , map_/ unmap_page() was added in favour of map_/unmap_single() (which was later removed in . 29) so you'll have to replace your calls to dma_map_single() with dma_map_page(). Just pass it the page and offset rather than the address.Wait a minute ... dma_map_single() should still work, it will just call dma_map_page() underneath. All dma_ops should have a ->map page callback. Do you have any dma_ops set for your device at all ? I wonder how we set the dma_ops for platform devices nowadays ... We use to have this fallback to direct ops when the dma_ops are NULL but that is gone and I see no suitable replacement to set them on platform devices for embedded archs ... oops... Kumar, Becky, what's the situation there ? Cheers, Ben.
Is it possible the dev pointer is not valid? I can't remember if that was a .29 or .30 change that requires us to start passing a valid dev pointer to get the proper dma_ops. - k