From: Russell King Date: Mon, 9 Dec 2013 23:26:07 +0000 (+0000) Subject: Merge branches 'amba', 'fixes', 'kees' and 'misc' into for-next X-Git-Tag: next-20131212~101^2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=f464ce8ba7ef76c6d974eff397ffcea384444ada;p=karo-tx-linux.git Merge branches 'amba', 'fixes', 'kees' and 'misc' into for-next --- f464ce8ba7ef76c6d974eff397ffcea384444ada diff --cc arch/arm/mm/dma-mapping.c index f6b6bfa88ecf,79f8b39801a8,f61a5707823a,f0ea0134e5a3,79f8b39801a8..1a77450e728a --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@@@@@ -176,34 -173,32 -212,8 -173,32 -173,32 +212,8 @@@@@@ static u64 get_coherent_dma_mask(struc return 0; } - max_dma_pfn = min(max_pfn, arm_dma_pfn_limit); - -- -- /* -- -- * If the mask allows for more memory than we can address, -- -- * and we actually have that much memory, then fail the -- -- * allocation. -- -- */ -- -- if (sizeof(mask) != sizeof(dma_addr_t) && -- -- mask > (dma_addr_t)~0 && - dma_to_pfn(dev, ~0) > max_dma_pfn) { - -- dma_to_pfn(dev, ~0) > arm_dma_pfn_limit) { -- -- dev_warn(dev, "Coherent DMA mask %#llx is larger than dma_addr_t allows\n", -- -- mask); -- -- dev_warn(dev, "Driver did not use or check the return value from dma_set_coherent_mask()?\n"); -- -- return 0; -- -- } -- -- -- -- /* -- -- * Now check that the mask, when translated to a PFN, -- -- * fits within the allowable addresses which we can -- -- * allocate. -- -- */ - if (dma_to_pfn(dev, mask) < max_dma_pfn) { - -- if (dma_to_pfn(dev, mask) < arm_dma_pfn_limit) { -- -- dev_warn(dev, "Coherent DMA mask %#llx (pfn %#lx-%#lx) covers a smaller range of system memory than the DMA zone pfn 0x0-%#lx\n", -- -- mask, -- -- dma_to_pfn(dev, 0), dma_to_pfn(dev, mask) + 1, -- -- arm_dma_pfn_limit + 1); ++ ++ if (!__dma_supported(dev, mask, true)) return 0; -- -- } } return mask;