Blame view

kernel/linux-rt-4.4.41/arch/powerpc/include/asm/device.h 1.19 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  /*
   * Arch specific extensions to struct device
   *
   * This file is released under the GPLv2
   */
  #ifndef _ASM_POWERPC_DEVICE_H
  #define _ASM_POWERPC_DEVICE_H
  
  struct dma_map_ops;
  struct device_node;
  #ifdef CONFIG_PPC64
  struct pci_dn;
  struct iommu_table;
  #endif
  
  /*
   * Arch extensions to struct device.
   *
   * When adding fields, consider macio_add_one_device in
   * drivers/macintosh/macio_asic.c
   */
  struct dev_archdata {
  	/* DMA operations on that device */
  	struct dma_map_ops	*dma_ops;
  
  	/*
  	 * These two used to be a union. However, with the hybrid ops we need
  	 * both so here we store both a DMA offset for direct mappings and
  	 * an iommu_table for remapped DMA.
  	 */
  	dma_addr_t		dma_offset;
  
  #ifdef CONFIG_PPC64
  	struct iommu_table	*iommu_table_base;
  #endif
  
  #ifdef CONFIG_IOMMU_API
  	void			*iommu_domain;
  #endif
  #ifdef CONFIG_SWIOTLB
  	dma_addr_t		max_direct_dma_addr;
  #endif
  #ifdef CONFIG_PPC64
  	struct pci_dn		*pci_data;
  #endif
  #ifdef CONFIG_EEH
  	struct eeh_dev		*edev;
  #endif
  #ifdef CONFIG_FAIL_IOMMU
  	int fail_iommu;
  #endif
  #ifdef CONFIG_CXL_BASE
  	struct cxl_context	*cxl_ctx;
  #endif
  };
  
  struct pdev_archdata {
  	u64 dma_mask;
  };
  
  #define ARCH_HAS_DMA_GET_REQUIRED_MASK
  
  #endif /* _ASM_POWERPC_DEVICE_H */