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