Rev 3243 | Rev 5270 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3243 | Rev 3391 | ||
---|---|---|---|
1 | /* Common header for intel-gtt.ko and i915.ko */ |
1 | /* Common header for intel-gtt.ko and i915.ko */ |
2 | 2 | ||
3 | #ifndef _DRM_INTEL_GTT_H |
3 | #ifndef _DRM_INTEL_GTT_H |
4 | #define _DRM_INTEL_GTT_H |
4 | #define _DRM_INTEL_GTT_H |
5 | 5 | ||
6 | struct agp_bridge_data; |
6 | struct agp_bridge_data; |
7 | - | ||
8 | struct intel_gtt { |
- | |
9 | /* Size of memory reserved for graphics by the BIOS */ |
- | |
10 | unsigned int stolen_size; |
- | |
11 | /* Total number of gtt entries. */ |
7 | |
12 | unsigned int gtt_total_entries; |
8 | void intel_gtt_get(size_t *gtt_total, size_t *stolen_size, |
13 | /* Part of the gtt that is mappable by the cpu, for those chips where |
- | |
14 | * this is not the full gtt. */ |
- | |
15 | unsigned int gtt_mappable_entries; |
- | |
16 | /* Whether i915 needs to use the dmar apis or not. */ |
- | |
17 | unsigned int needs_dmar : 1; |
- | |
18 | /* Whether we idle the gpu before mapping/unmapping */ |
- | |
19 | unsigned int do_idle_maps : 1; |
- | |
20 | /* Share the scratch page dma with ppgtts. */ |
- | |
21 | dma_addr_t scratch_page_dma; |
- | |
22 | struct page *scratch_page; |
- | |
23 | /* for ppgtt PDE access */ |
- | |
24 | u32 __iomem *gtt; |
- | |
25 | /* needed for ioremap in drm/i915 */ |
- | |
26 | phys_addr_t gma_bus_addr; |
- | |
27 | } *intel_gtt_get(void); |
9 | phys_addr_t *mappable_base, unsigned long *mappable_end); |
28 | 10 | ||
29 | int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev, |
11 | int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev, |
30 | struct agp_bridge_data *bridge); |
12 | struct agp_bridge_data *bridge); |
31 | void intel_gmch_remove(void); |
13 | void intel_gmch_remove(void); |
32 | 14 | ||
33 | bool intel_enable_gtt(void); |
15 | bool intel_enable_gtt(void); |
34 | 16 | ||
35 | void intel_gtt_chipset_flush(void); |
17 | void intel_gtt_chipset_flush(void); |
36 | void intel_gtt_insert_sg_entries(struct sg_table *st, |
18 | void intel_gtt_insert_sg_entries(struct sg_table *st, |
37 | unsigned int pg_start, |
19 | unsigned int pg_start, |
38 | unsigned int flags); |
20 | unsigned int flags); |
39 | void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries); |
21 | void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries); |
40 | 22 | ||
41 | /* Special gtt memory types */ |
23 | /* Special gtt memory types */ |
42 | #define AGP_DCACHE_MEMORY 1 |
24 | #define AGP_DCACHE_MEMORY 1 |
43 | #define AGP_PHYS_MEMORY 2 |
25 | #define AGP_PHYS_MEMORY 2 |
44 | - | ||
45 | /* New caching attributes for gen6/sandybridge */ |
- | |
46 | #define AGP_USER_CACHED_MEMORY_LLC_MLC (AGP_USER_TYPES + 2) |
- | |
47 | #define AGP_USER_UNCACHED_MEMORY (AGP_USER_TYPES + 4) |
- | |
48 | 26 | ||
49 | /* flag for GFDT type */ |
27 | /* flag for GFDT type */ |
50 | #define AGP_USER_CACHED_MEMORY_GFDT (1 << 3) |
28 | #define AGP_USER_CACHED_MEMORY_GFDT (1 << 3) |
51 | 29 | ||
52 | #ifdef CONFIG_INTEL_IOMMU |
30 | #ifdef CONFIG_INTEL_IOMMU |
53 | extern int intel_iommu_gfx_mapped; |
31 | extern int intel_iommu_gfx_mapped; |
54 | #endif |
32 | #endif |
55 | 33 | ||
56 | #endif><> |
34 | #endif><> |