Module Name: src
Committed By: riastradh
Date: Mon Aug 27 15:29:31 UTC 2018
Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_prime.c
src/sys/external/bsd/drm2/include/drm: bus_dma_hacks.h
Log Message:
At chuq's suggestion, use paddr_t rather than struct vm_page *.
Doesn't make much of a substantive difference.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_prime.c
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.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/drm_prime.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.5 Mon Aug 27 15:26:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_prime.c Mon Aug 27 15:29:31 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: drm_prime.c,v 1.5 2018/08/27 15:26:50 riastradh Exp $ */
+/* $NetBSD: drm_prime.c,v 1.6 2018/08/27 15:29:31 riastradh Exp $ */
/*
* Copyright © 2012 Red Hat
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.5 2018/08/27 15:26:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.6 2018/08/27 15:29:31 riastradh Exp $");
#include <linux/export.h>
#include <linux/dma-buf.h>
@@ -54,7 +54,7 @@ __KERNEL_RCSID(0, "$NetBSD: drm_prime.c,
*/
struct sg_table {
- struct vm_page **sgt_pgs;
+ paddr_t *sgt_pgs;
unsigned sgt_npgs;
};
@@ -73,7 +73,7 @@ sg_alloc_table_from_pages(struct sg_tabl
sgt->sgt_npgs = npages;
for (i = 0; i < npages; i++)
- sgt->sgt_pgs[i] = &pages[i]->p_vmp;
+ sgt->sgt_pgs[i] = VM_PAGE_TO_PHYS(&pages[i]->p_vmp);
return 0;
}
@@ -96,7 +96,7 @@ sg_alloc_table_from_pglist(struct sg_tab
i = 0;
TAILQ_FOREACH(pg, pglist, pageq.queue) {
KASSERT(i < npages);
- sgt->sgt_pgs[i] = pg;
+ sgt->sgt_pgs[i] = VM_PAGE_TO_PHYS(pg);
}
KASSERT(i == npages);
Index: src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.h
diff -u src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.h:1.14 src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.h:1.15
--- src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.h:1.14 Mon Aug 27 15:29:08 2018
+++ src/sys/external/bsd/drm2/include/drm/bus_dma_hacks.h Mon Aug 27 15:29:31 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: bus_dma_hacks.h,v 1.14 2018/08/27 15:29:08 riastradh Exp $ */
+/* $NetBSD: bus_dma_hacks.h,v 1.15 2018/08/27 15:29:31 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -120,7 +120,7 @@ out: kmem_free(segs, (nsegs * sizeof(seg
static inline int
bus_dmamem_export_pages(bus_dma_tag_t dmat, const bus_dma_segment_t *segs,
- int nsegs, struct vm_page **pgs, unsigned npgs)
+ int nsegs, paddr_t *pgs, unsigned npgs)
{
int seg;
unsigned i;
@@ -134,7 +134,7 @@ bus_dmamem_export_pages(bus_dma_tag_t dm
paddr_t paddr = BUS_MEM_TO_PHYS(dmat, baddr);
KASSERT(i < npgs);
- pgs[i++] = PHYS_TO_VM_PAGE(paddr);
+ pgs[i++] = paddr;
baddr += PAGE_SIZE;
len -= PAGE_SIZE;
@@ -148,14 +148,14 @@ bus_dmamem_export_pages(bus_dma_tag_t dm
static inline int
bus_dmamem_import_pages(bus_dma_tag_t dmat, bus_dma_segment_t *segs,
- int nsegs, int *rsegs, struct vm_page *const *pgs, unsigned npgs)
+ int nsegs, int *rsegs, const paddr_t *pgs, unsigned npgs)
{
int seg;
unsigned i;
seg = 0;
for (i = 0; i < npgs; i++) {
- paddr_t paddr = VM_PAGE_TO_PHYS(pgs[i]);
+ paddr_t paddr = pgs[i];
bus_addr_t baddr = PHYS_TO_BUS_MEM(dmat, paddr);
if (seg > 0 && segs[seg - 1].ds_addr + PAGE_SIZE == baddr) {