From c5ebd7356b9fcad1be744adefa3296bbd0827b59 Mon Sep 17 00:00:00 2001 From: markj Date: Sun, 9 Jul 2017 22:53:24 +0000 Subject: [PATCH] Add a helper function to agp(4) which installs a single GTT entry. Submitted by: dumbbell MFC after: 1 week --- sys/dev/agp/agp_i810.c | 17 +++++++++++++++++ sys/dev/agp/agp_i810.h | 1 + sys/modules/agp/Makefile | 1 + 3 files changed, 19 insertions(+) diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c index 7a0b2ff5151..63315308aae 100644 --- a/sys/dev/agp/agp_i810.c +++ b/sys/dev/agp/agp_i810.c @@ -2242,6 +2242,16 @@ agp_intel_gtt_map_memory(device_t dev, vm_page_t *pages, u_int num_entries, return (0); } +static void +agp_intel_gtt_install_pte(device_t dev, u_int index, vm_paddr_t addr, + u_int flags) +{ + struct agp_i810_softc *sc; + + sc = device_get_softc(dev); + sc->match->driver->install_gtt_pte(dev, index, addr, flags); +} + void agp_intel_gtt_insert_sg_entries(device_t dev, struct sglist *sg_list, u_int first_entry, u_int flags) @@ -2320,6 +2330,13 @@ intel_gtt_insert_sg_entries(struct sglist *sg_list, u_int first_entry, agp_intel_gtt_insert_sg_entries(intel_agp, sg_list, first_entry, flags); } +void +intel_gtt_install_pte(u_int index, vm_paddr_t addr, u_int flags) +{ + + agp_intel_gtt_install_pte(intel_agp, index, addr, flags); +} + device_t intel_gtt_get_bridge_device(void) { diff --git a/sys/dev/agp/agp_i810.h b/sys/dev/agp/agp_i810.h index 2cb71eb6502..1df5e78a162 100644 --- a/sys/dev/agp/agp_i810.h +++ b/sys/dev/agp/agp_i810.h @@ -87,6 +87,7 @@ struct intel_gtt *intel_gtt_get(void); int intel_gtt_chipset_flush(void); void intel_gtt_unmap_memory(struct sglist *sg_list); void intel_gtt_clear_range(u_int first_entry, u_int num_entries); +void intel_gtt_install_pte(u_int index, vm_paddr_t addr, u_int flags); int intel_gtt_map_memory(vm_page_t *pages, u_int num_entries, struct sglist **sg_list); void intel_gtt_insert_sg_entries(struct sglist *sg_list, u_int pg_start, diff --git a/sys/modules/agp/Makefile b/sys/modules/agp/Makefile index 383788f9d6b..a96dfc9fa7c 100644 --- a/sys/modules/agp/Makefile +++ b/sys/modules/agp/Makefile @@ -35,6 +35,7 @@ EXPORT_SYMS= agp_find_device \ .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" EXPORT_SYMS+= intel_gtt_clear_range \ intel_gtt_insert_pages \ + intel_gtt_install_pte \ intel_gtt_get \ intel_gtt_chipset_flush \ intel_gtt_unmap_memory \ -- 2.45.0