root/arch/mips/loongson64/loongson-3/dma.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. __phys_to_dma
  2. __dma_to_phys
  3. plat_swiotlb_setup

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include <linux/dma-direct.h>
   3 #include <linux/init.h>
   4 #include <linux/swiotlb.h>
   5 
   6 dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
   7 {
   8         /* We extract 2bit node id (bit 44~47, only bit 44~45 used now) from
   9          * Loongson-3's 48bit address space and embed it into 40bit */
  10         long nid = (paddr >> 44) & 0x3;
  11         return ((nid << 44) ^ paddr) | (nid << 37);
  12 }
  13 
  14 phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t daddr)
  15 {
  16         /* We extract 2bit node id (bit 44~47, only bit 44~45 used now) from
  17          * Loongson-3's 48bit address space and embed it into 40bit */
  18         long nid = (daddr >> 37) & 0x3;
  19         return ((nid << 37) ^ daddr) | (nid << 44);
  20 }
  21 
  22 void __init plat_swiotlb_setup(void)
  23 {
  24         swiotlb_init(1);
  25 }

/* [<][>][^][v][top][bottom][index][help] */