Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
device.h
Go to the documentation of this file.
1 /*
2  * Arch specific extensions to struct device
3  *
4  * This file is released under the GPLv2
5  */
6 #ifndef _ASM_POWERPC_DEVICE_H
7 #define _ASM_POWERPC_DEVICE_H
8 
9 struct dma_map_ops;
10 struct device_node;
11 
12 /*
13  * Arch extensions to struct device.
14  *
15  * When adding fields, consider macio_add_one_device in
16  * drivers/macintosh/macio_asic.c
17  */
18 struct dev_archdata {
19  /* DMA operations on that device */
20  struct dma_map_ops *dma_ops;
21 
22  /*
23  * When an iommu is in use, dma_data is used as a ptr to the base of the
24  * iommu_table. Otherwise, it is a simple numerical offset.
25  */
26  union {
29  } dma_data;
30 
31 #ifdef CONFIG_SWIOTLB
33 #endif
34 #ifdef CONFIG_EEH
35  struct eeh_dev *edev;
36 #endif
37 #ifdef CONFIG_FAIL_IOMMU
38  int fail_iommu;
39 #endif
40 };
41 
42 struct pdev_archdata {
43  u64 dma_mask;
44 };
45 
46 #define ARCH_HAS_DMA_GET_REQUIRED_MASK
47 
48 #endif /* _ASM_POWERPC_DEVICE_H */