diff options
author | Mark Johnston <markj@FreeBSD.org> | 2017-07-09 22:53:24 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2017-07-09 22:53:24 +0000 |
commit | 8ee96d1452c6b93767920a59035d4cb66a6a6b68 (patch) | |
tree | ff7a21eb59c1df72a955fcbb385c5c1bad6c8376 /sys | |
parent | 3685b3988dbeabf29d535a374b0ec59f09c0d123 (diff) | |
download | src-8ee96d1452c6b93767920a59035d4cb66a6a6b68.tar.gz src-8ee96d1452c6b93767920a59035d4cb66a6a6b68.zip |
Add a helper function to agp(4) which installs a single GTT entry.
Submitted by: dumbbell
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=320851
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/agp/agp_i810.c | 17 | ||||
-rw-r--r-- | sys/dev/agp/agp_i810.h | 1 | ||||
-rw-r--r-- | sys/modules/agp/Makefile | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c index 7a0b2ff51519..63315308aaeb 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 2cb71eb65027..1df5e78a162c 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 383788f9d6b4..a96dfc9fa7c4 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 \ |