Messages in this thread | | | Subject | Re: [PATCH v2 2/3] MIPS: Loongson: Add DMA support for 7A1000 | From | Tiezhu Yang <> | Date | Thu, 26 Mar 2020 10:44:06 +0800 |
| |
On 03/25/2020 09:27 PM, Christoph Hellwig wrote: > On Mon, Mar 23, 2020 at 10:59:14AM +0800, Tiezhu Yang wrote: >> Implement __phys_to_dma() and __dma_to_phys() according to the >> node id offset in the 7A1000 DMA route config register. > Can you please try to just use the dma_pfn_offset field in struct device > for all loongson platforms? I'm pretty sure I asked for that last time > around..
Oh, sorry, I don't quite understand what you mean last time.
Do you mean use the default implementation in include/linux/dma-direct.h when CONFIG_ARCH_HAS_PHYS_TO_DMA is not set?
#ifdef CONFIG_ARCH_HAS_PHYS_TO_DMA #include <asm/dma-direct.h> #else static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr) { dma_addr_t dev_addr = (dma_addr_t)paddr;
return dev_addr - ((dma_addr_t)dev->dma_pfn_offset << PAGE_SHIFT); }
static inline phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dev_addr) { phys_addr_t paddr = (phys_addr_t)dev_addr;
return paddr + ((phys_addr_t)dev->dma_pfn_offset << PAGE_SHIFT); } #endif /* !CONFIG_ARCH_HAS_PHYS_TO_DMA */
If so, I will verify it used with the AMD RS780E and Loongson 7A1000 bridge chip.
Thanks,
Tiezhu Yang
| |