1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 20ade6386SDaniel Vetter /* Common header for intel-gtt.ko and i915.ko */ 30ade6386SDaniel Vetter 40ade6386SDaniel Vetter #ifndef _DRM_INTEL_GTT_H 50ade6386SDaniel Vetter #define _DRM_INTEL_GTT_H 6c64f7ba5SChris Wilson 7ce6838afSAndy Shevchenko #include <linux/types.h> 8ce6838afSAndy Shevchenko 97e78153aSJani Nikula struct agp_bridge_data; 10ce6838afSAndy Shevchenko struct pci_dev; 11ce6838afSAndy Shevchenko struct sg_table; 125c27b9faSJani Nikula 13*64e06652SLucas De Marchi void intel_gmch_gtt_get(u64 *gtt_total, 14edd1f2feSChris Wilson phys_addr_t *mappable_base, 15b7128ef1SMatthew Auld resource_size_t *mappable_end); 1619966754SDaniel Vetter 1714be93ddSDaniel Vetter int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev, 1814be93ddSDaniel Vetter struct agp_bridge_data *bridge); 1914be93ddSDaniel Vetter void intel_gmch_remove(void); 2014be93ddSDaniel Vetter 21*64e06652SLucas De Marchi bool intel_gmch_enable_gtt(void); 228ecd1a66SDaniel Vetter 23*64e06652SLucas De Marchi void intel_gmch_gtt_flush(void); 24*64e06652SLucas De Marchi void intel_gmch_gtt_insert_page(dma_addr_t addr, 25d6473f56SChris Wilson unsigned int pg, 26d6473f56SChris Wilson unsigned int flags); 27*64e06652SLucas De Marchi void intel_gmch_gtt_insert_sg_entries(struct sg_table *st, 284080775bSDaniel Vetter unsigned int pg_start, 294080775bSDaniel Vetter unsigned int flags); 30*64e06652SLucas De Marchi void intel_gmch_gtt_clear_range(unsigned int first_entry, unsigned int num_entries); 3123ed992aSDaniel Vetter 3223ed992aSDaniel Vetter /* Special gtt memory types */ 3323ed992aSDaniel Vetter #define AGP_DCACHE_MEMORY 1 3423ed992aSDaniel Vetter #define AGP_PHYS_MEMORY 2 3523ed992aSDaniel Vetter 3623ed992aSDaniel Vetter /* flag for GFDT type */ 3723ed992aSDaniel Vetter #define AGP_USER_CACHED_MEMORY_GFDT (1 << 3) 3823ed992aSDaniel Vetter 390ade6386SDaniel Vetter #endif 40