Deleted Added
full compact
busdma_machdep-v4.c (171623) busdma_machdep-v4.c (171890)
1/*-
2 * Copyright (c) 2004 Olivier Houchard
3 * Copyright (c) 2002 Peter Grehan
4 * Copyright (c) 1997, 1998 Justin T. Gibbs.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 15 unchanged lines hidden (view full) ---

24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * From i386/busdma_machdep.c,v 1.26 2002/04/19 22:58:09 alfred
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2004 Olivier Houchard
3 * Copyright (c) 2002 Peter Grehan
4 * Copyright (c) 1997, 1998 Justin T. Gibbs.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 15 unchanged lines hidden (view full) ---

24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * From i386/busdma_machdep.c,v 1.26 2002/04/19 22:58:09 alfred
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/arm/arm/busdma_machdep.c 171623 2007-07-27 14:46:43Z cognet $");
32__FBSDID("$FreeBSD: head/sys/arm/arm/busdma_machdep.c 171890 2007-08-18 16:47:28Z cognet $");
33
34/*
35 * ARM bus dma support routines
36 */
37
38#define _ARM32_BUS_DMA_PRIVATE
39#include <sys/param.h>
40#include <sys/systm.h>

--- 1045 unchanged lines hidden (view full) ---

1086 return;
1087}
1088
1089static void
1090bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op)
1091{
1092 char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align];
1093
33
34/*
35 * ARM bus dma support routines
36 */
37
38#define _ARM32_BUS_DMA_PRIVATE
39#include <sys/param.h>
40#include <sys/systm.h>

--- 1045 unchanged lines hidden (view full) ---

1086 return;
1087}
1088
1089static void
1090bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op)
1091{
1092 char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align];
1093
1094 if (op & BUS_DMASYNC_PREWRITE) {
1094 if ((op & BUS_DMASYNC_PREWRITE) && !(op & BUS_DMASYNC_PREREAD)) {
1095 cpu_dcache_wb_range((vm_offset_t)buf, len);
1096 cpu_l2cache_wb_range((vm_offset_t)buf, len);
1097 }
1098 if (op & BUS_DMASYNC_PREREAD) {
1095 cpu_dcache_wb_range((vm_offset_t)buf, len);
1096 cpu_l2cache_wb_range((vm_offset_t)buf, len);
1097 }
1098 if (op & BUS_DMASYNC_PREREAD) {
1099 cpu_idcache_wbinv_range((vm_offset_t)buf, len);
1100 cpu_l2cache_wbinv_range((vm_offset_t)buf, len);
1099 if ((op & BUS_DMASYNC_PREWRITE) ||
1100 ((((vm_offset_t)(buf) | len) & arm_dcache_align_mask) == 0)) {
1101 cpu_dcache_inv_range((vm_offset_t)buf, len);
1102 cpu_l2cache_inv_range((vm_offset_t)buf, len);
1103 } else {
1104 cpu_dcache_wbinv_range((vm_offset_t)buf, len);
1105 cpu_l2cache_wbinv_range((vm_offset_t)buf, len);
1106 }
1101 }
1102 if (op & BUS_DMASYNC_POSTREAD) {
1103 if ((vm_offset_t)buf & arm_dcache_align_mask) {
1104 memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~
1105 arm_dcache_align_mask),
1106 (vm_offset_t)buf & arm_dcache_align_mask);
1107 }
1108 if (((vm_offset_t)buf + len) & arm_dcache_align_mask) {

--- 358 unchanged lines hidden ---
1107 }
1108 if (op & BUS_DMASYNC_POSTREAD) {
1109 if ((vm_offset_t)buf & arm_dcache_align_mask) {
1110 memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~
1111 arm_dcache_align_mask),
1112 (vm_offset_t)buf & arm_dcache_align_mask);
1113 }
1114 if (((vm_offset_t)buf + len) & arm_dcache_align_mask) {

--- 358 unchanged lines hidden ---