File tree Expand file tree Collapse file tree
sys/external/bsd/drm2/dist/drm/i915/gt Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -254,6 +254,7 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
254254 bus_dmamap_t map = vma -> pages -> sgl [0 ].sg_dmamap ;
255255 unsigned seg ;
256256 unsigned pgno ;
257+ unsigned pgextra ;
257258#else
258259 struct sgt_iter sgt_iter ;
259260 gen8_pte_t __iomem * gtt_entries ;
@@ -269,17 +270,23 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
269270
270271#ifdef __NetBSD__
271272 pgno = vma -> node .start / I915_GTT_PAGE_SIZE ;
273+ pgend = pgno + vma -> node .size / I915_GTT_PAGE_SIZE ;
272274 for (seg = 0 ; seg < map -> dm_nsegs ; seg ++ ) {
273275 addr = map -> dm_segs [seg ].ds_addr ;
274276 bus_size_t len = map -> dm_segs [seg ].ds_len ;
275277 KASSERT ((addr % I915_GTT_PAGE_SIZE ) == 0 );
276278 KASSERT ((len % I915_GTT_PAGE_SIZE ) == 0 );
277279 for (;
278280 len >= I915_GTT_PAGE_SIZE ;
279- addr += I915_GTT_PAGE_SIZE , len -= I915_GTT_PAGE_SIZE ) {
281+ addr += I915_GTT_PAGE_SIZE , len -= I915_GTT_PAGE_SIZE )
280282 gen8_set_pte (ggtt -> gsmt , ggtt -> gsmh , pgno ++ ,
281283 pte_encode | addr );
282284 }
285+ /* Fill the allocated but "unused" space beyond the end of the buffer */
286+ for (;pgno < pgend ;pgno ++ ,len -- )
287+ {
288+ gen8_set_pte (ggtt -> gsmt + pgno , vm -> scratch [0 ].encode );
289+ }
283290 KASSERT (len == 0 );
284291 }
285292#else
You can’t perform that action at this time.
0 commit comments