_ds_vaddr member in struct cobalt_bus_dma_segment is a virtual address,

so it should be vaddr_t rather than bus_addr_t.
This commit is contained in:
tsutsui 2006-04-16 08:10:09 +00:00
parent e331189f4e
commit c1842c746c
2 changed files with 13 additions and 13 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: bus.c,v 1.26 2006/04/05 15:03:27 tsutsui Exp $ */ /* $NetBSD: bus.c,v 1.27 2006/04/16 08:10:09 tsutsui Exp $ */
/* /*
* Copyright (c) 1998 The NetBSD Foundation, Inc. * Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -38,7 +38,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: bus.c,v 1.26 2006/04/05 15:03:27 tsutsui Exp $"); __KERNEL_RCSID(0, "$NetBSD: bus.c,v 1.27 2006/04/16 08:10:09 tsutsui Exp $");
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
@ -453,7 +453,7 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dmamap_t map, bus_addr_t offset,
bus_size_t len, int ops) bus_size_t len, int ops)
{ {
bus_size_t minlen; bus_size_t minlen;
bus_addr_t addr; vaddr_t vaddr;
int i, useindex; int i, useindex;
/* /*
@ -534,12 +534,12 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dmamap_t map, bus_addr_t offset,
minlen = len < map->dm_segs[i].ds_len - offset ? minlen = len < map->dm_segs[i].ds_len - offset ?
len : map->dm_segs[i].ds_len - offset; len : map->dm_segs[i].ds_len - offset;
addr = map->dm_segs[i]._ds_vaddr; vaddr = map->dm_segs[i]._ds_vaddr;
#ifdef BUS_DMA_DEBUG #ifdef BUS_DMA_DEBUG
printf("bus_dmamap_sync: flushing segment %d " printf("bus_dmamap_sync: flushing segment %d "
"(0x%lx..0x%lx) ...", i, addr + offset, "(0x%lx..0x%lx) ...", i, vaddr + offset,
addr + offset + minlen - 1); vaddr + offset + minlen - 1);
#endif #endif
/* /*
@ -547,7 +547,7 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dmamap_t map, bus_addr_t offset,
* Write-back,Invalidate, so just do one test. * Write-back,Invalidate, so just do one test.
*/ */
if (__predict_false(useindex)) { if (__predict_false(useindex)) {
mips_dcache_wbinv_range_index(addr + offset, minlen); mips_dcache_wbinv_range_index(vaddr + offset, minlen);
#ifdef BUS_DMA_DEBUG #ifdef BUS_DMA_DEBUG
printf("\n"); printf("\n");
#endif #endif
@ -558,19 +558,19 @@ _bus_dmamap_sync(bus_dma_tag_t t, bus_dmamap_t map, bus_addr_t offset,
switch (ops) { switch (ops) {
case BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE: case BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE:
mips_dcache_wbinv_range(addr + offset, minlen); mips_dcache_wbinv_range(vaddr + offset, minlen);
break; break;
case BUS_DMASYNC_PREREAD: case BUS_DMASYNC_PREREAD:
#if 1 #if 1
mips_dcache_wbinv_range(addr + offset, minlen); mips_dcache_wbinv_range(vaddr + offset, minlen);
#else #else
mips_dcache_inv_range(addr + offset, minlen); mips_dcache_inv_range(vaddr + offset, minlen);
#endif #endif
break; break;
case BUS_DMASYNC_PREWRITE: case BUS_DMASYNC_PREWRITE:
mips_dcache_wb_range(addr + offset, minlen); mips_dcache_wb_range(vaddr + offset, minlen);
break; break;
} }
#ifdef BUS_DMA_DEBUG #ifdef BUS_DMA_DEBUG

View File

@ -1,4 +1,4 @@
/* $NetBSD: bus.h,v 1.16 2006/04/15 11:33:33 tsutsui Exp $ */ /* $NetBSD: bus.h,v 1.17 2006/04/16 08:10:09 tsutsui Exp $ */
/* /*
* Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc. * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc.
@ -516,7 +516,7 @@ typedef struct cobalt_bus_dmamap *bus_dmamap_t;
struct cobalt_bus_dma_segment { struct cobalt_bus_dma_segment {
bus_addr_t ds_addr; /* DMA address */ bus_addr_t ds_addr; /* DMA address */
bus_size_t ds_len; /* length of transfer */ bus_size_t ds_len; /* length of transfer */
bus_addr_t _ds_vaddr; /* virtual address, 0 if invalid */ vaddr_t _ds_vaddr; /* virtual address, 0 if invalid */
}; };
typedef struct cobalt_bus_dma_segment bus_dma_segment_t; typedef struct cobalt_bus_dma_segment bus_dma_segment_t;