Module Name: src Committed By: riastradh Date: Mon Aug 27 07:08:07 UTC 2018
Modified Files: src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c i915_gem_gtt.h Log Message: Some tweaks en route to i915_gem_gtt. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.9 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.9 Mon Aug 27 07:07:23 2018 +++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c Mon Aug 27 07:08:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.9 2018/08/27 07:07:23 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.10 2018/08/27 07:08:07 riastradh Exp $ */ /* * Copyright © 2010 Daniel Vetter @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.9 2018/08/27 07:07:23 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.10 2018/08/27 07:08:07 riastradh Exp $"); #include <linux/err.h> #include <linux/seq_file.h> @@ -328,8 +328,10 @@ static int __setup_page_dma(struct drm_d error = bus_dmamem_alloc(dev->dmat, PAGE_SIZE, PAGE_SIZE, PAGE_SIZE, &p->seg, nseg, &nseg, BUS_DMA_WAITOK); - if (error) -fail0: return -error; /* XXX errno NetBSD->Linux */ + if (error) { +fail0: p->map = NULL; + return -error; /* XXX errno NetBSD->Linux */ + } KASSERT(nseg == 1); error = bus_dmamap_create(dev->dmat, PAGE_SIZE, 1, PAGE_SIZE, PAGE_SIZE, BUS_DMA_WAITOK, &p->map); @@ -375,8 +377,9 @@ static void cleanup_page_dma(struct drm_ return; bus_dmamap_unload(dev->dmat, p->map); - bus_dmamap_destroy(dev->dmat, p->dmap); + bus_dmamap_destroy(dev->dmat, p->map); bus_dmamem_free(dev->dmat, &p->seg, 1); + p->map = NULL; #else if (WARN_ON(!p->page)) return; @@ -390,7 +393,8 @@ static void cleanup_page_dma(struct drm_ static void *kmap_page_dma(struct i915_page_dma *p) { #ifdef __NetBSD__ - return kmap_atomic(PHYS_TO_VM_PAGE(p->seg.ds_addr)); + return kmap_atomic(container_of(PHYS_TO_VM_PAGE(p->seg.ds_addr), + struct page, p_vmp)); #else return kmap_atomic(p->page); #endif @@ -455,7 +459,9 @@ static struct i915_page_scratch *alloc_s return ERR_PTR(ret); } +#ifndef __NetBSD__ /* XXX ??? */ set_pages_uc(px_page(sp), 1); +#endif return sp; } @@ -463,7 +469,9 @@ static struct i915_page_scratch *alloc_s static void free_scratch_page(struct drm_device *dev, struct i915_page_scratch *sp) { +#ifndef __NetBSD__ /* XXX ??? */ set_pages_wb(px_page(sp), 1); +#endif cleanup_px(dev, sp); kfree(sp); Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.7 --- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.6 Mon Aug 27 07:01:42 2018 +++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h Mon Aug 27 07:08:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.h,v 1.6 2018/08/27 07:01:42 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.h,v 1.7 2018/08/27 07:08:07 riastradh Exp $ */ /* * Copyright © 2014 Intel Corporation @@ -252,10 +252,11 @@ struct i915_page_dma { }; #define px_base(px) (&(px)->base) -#define px_page(px) (px_base(px)->page) #ifdef __NetBSD__ +#define px_page(px) (px_base(px)->map) #define px_dma(px) (px_base(px)->map->dm_segs[0].ds_addr) #else +#define px_page(px) (px_base(px)->page) #define px_dma(px) (px_base(px)->daddr) #endif