^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Common header for intel-gtt.ko and i915.ko */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #ifndef _DRM_INTEL_GTT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #define _DRM_INTEL_GTT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/agp_backend.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/intel-iommu.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) void intel_gtt_get(u64 *gtt_total,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) phys_addr_t *mappable_base,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) resource_size_t *mappable_end);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) struct agp_bridge_data *bridge);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) void intel_gmch_remove(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) bool intel_enable_gtt(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) void intel_gtt_chipset_flush(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) void intel_gtt_insert_page(dma_addr_t addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) unsigned int pg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) unsigned int flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) void intel_gtt_insert_sg_entries(struct sg_table *st,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) unsigned int pg_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) unsigned int flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* Special gtt memory types */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define AGP_DCACHE_MEMORY 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define AGP_PHYS_MEMORY 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) /* flag for GFDT type */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define AGP_USER_CACHED_MEMORY_GFDT (1 << 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #endif