root/drivers/staging/media/ipu3/ipu3-mmu.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* Copyright (C) 2018 Intel Corporation */
   3 /* Copyright 2018 Google LLC. */
   4 
   5 #ifndef __IPU3_MMU_H
   6 #define __IPU3_MMU_H
   7 
   8 #define IPU3_PAGE_SHIFT         12
   9 #define IPU3_PAGE_SIZE          (1UL << IPU3_PAGE_SHIFT)
  10 
  11 /**
  12  * struct imgu_mmu_info - Describes mmu geometry
  13  *
  14  * @aperture_start:     First address that can be mapped
  15  * @aperture_end:       Last address that can be mapped
  16  */
  17 struct imgu_mmu_info {
  18         dma_addr_t aperture_start;
  19         dma_addr_t aperture_end;
  20 };
  21 
  22 struct device;
  23 struct scatterlist;
  24 
  25 struct imgu_mmu_info *imgu_mmu_init(struct device *parent, void __iomem *base);
  26 void imgu_mmu_exit(struct imgu_mmu_info *info);
  27 void imgu_mmu_suspend(struct imgu_mmu_info *info);
  28 void imgu_mmu_resume(struct imgu_mmu_info *info);
  29 
  30 int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova,
  31                  phys_addr_t paddr, size_t size);
  32 size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova,
  33                       size_t size);
  34 size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova,
  35                        struct scatterlist *sg, unsigned int nents);
  36 #endif

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