summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-10-03 22:44:54 +0000
committercognet <cognet@FreeBSD.org>2005-10-03 22:44:54 +0000
commit2feb4ae38fb40ab03fff36c380df859ceb9b68fb (patch)
tree23f5922ad3a31f93425d66685d02764837632505 /sys
parent12c8814c4626cae198759b6669ede20afcd22c90 (diff)
downloadFreeBSD-src-2feb4ae38fb40ab03fff36c380df859ceb9b68fb.zip
FreeBSD-src-2feb4ae38fb40ab03fff36c380df859ceb9b68fb.tar.gz
Bring in the good version of this file.
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/arm/busdma_machdep.c46
1 files changed, 2 insertions, 44 deletions
diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
index 0ee2d9f..39d4d82 100644
--- a/sys/arm/arm/busdma_machdep.c
+++ b/sys/arm/arm/busdma_machdep.c
@@ -494,14 +494,10 @@ bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t *segs,
} else {
curaddr = (pte & L2_S_FRAME) |
(vaddr & L2_S_OFFSET);
- pmap_uncache(ptep);
- map->flags |= DMAMAP_UNCACHED;
-#if 0
if (pte & L2_S_CACHE_MASK) {
map->flags &=
~DMAMAP_COHERENT;
}
-#endif
}
}
} else {
@@ -774,43 +770,7 @@ bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio,
*/
void
_bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
-{
- struct mbuf *m;
- struct uio *uio;
- int resid;
- struct iovec *iov;
-
- if (map->flags & DMAMAP_UNCACHED) {
- switch(map->flags & DMAMAP_TYPE_MASK) {
- case DMAMAP_LINEAR:
- pmap_recache(map->buffer, len);
- break;
- case DMAMAP_MBUF:
- m = map->buffer;
- while (m) {
- if (m->m_len > 0)
- pmap_recache(m->m_data, len);
- m = m->m_next;
- }
- break;
- case DMAMAP_UIO:
- uio = map->buffer;
- iov = uio->uio_iov;
- resid = uio->uio_resid;
- for (int i = 0; i < uio->uio_iovcnt && resid != 0; i++) {
- bus_size_t minlen = resid < iov[i].iov_len ? resid :
- iov[i].iov_len;
- if (minlen > 0) {
- pmap_recache(iov[i].iov_base, minlen);
- resid -= minlen;
- }
- }
- break;
- default:
- break;
- }
-
- }
+{
map->flags &= ~DMAMAP_TYPE_MASK;
return;
}
@@ -840,10 +800,8 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
if (!(op & (BUS_DMASYNC_PREWRITE | BUS_DMASYNC_POSTREAD)))
return;
- if (map->flags & DMAMAP_COHERENT) {
- printf("COHERENT\n");
+ if (map->flags & DMAMAP_COHERENT)
return;
- }
if ((op && BUS_DMASYNC_POSTREAD) && (map->len >= 2 * PAGE_SIZE)) {
cpu_dcache_wbinv_all();
return;
OpenPOWER on IntegriCloud