[RFC v1 PATCH 1/2] of/pci: add of_pci_dma_configure() update dma configuration
From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-12-23 22:43:12
Also in:
linux-devicetree, linux-pci, lkml
From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-12-23 22:43:12
Also in:
linux-devicetree, linux-pci, lkml
On Tuesday 23 December 2014 12:42:05 Murali Karicheri wrote:
quoted
here.Arnd, I guess so. Besides we need to keep the default coherent dma mask to 32bit 0xffffffffull as well to work on Keystone and also in sync with current defaults used in pci_device_add() so that we don't break this behavior. Here is the summary of changes need to make on top of my existing patch. 1. of_dma_configure() - change size = dev->coherent_dma_mask to size = dev->coherent_dma_mask + 1. This is a new patch to fix existing code.
ok
2. Do the above change to of_pci_dma_configure() as well.
ok
3. in arch_setup_dma_ops() update the DMA mask to min((*dev->dma_mask), dma_base + size - 1) asdiff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index c17f6a9..88b4769 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c@@ -2053,8 +2053,13 @@ void arch_setup_dma_ops(struct device *dev, u64dma_base, u64 size, { struct dma_map_ops *dma_ops; + + *dev->dma_mask = min((*dev->dma_mask), (dma_base + size - 1)); I have tested this on keystone and it works fine with rootfs on PCI SATA harddisk. I will be doing more tests with this change. If you are in agreement with the above changes, I will re-spin the patch to accomodate them and send v1 of the same.
Ok, sounds good. I noticed that you did not put Russell into the Cc list for the emails. Please do so when you send it again, as he may have some additional comments. Arnd