Module Name: src
Committed By: jmcneill
Date: Tue Apr 10 00:59:55 UTC 2018
Modified Files:
src/sys/arch/arm/sunxi: sun4i_dma.c
Log Message:
Initialize DDMA_PARA_REG with a sane value
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/sunxi/sun4i_dma.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/sunxi/sun4i_dma.c
diff -u src/sys/arch/arm/sunxi/sun4i_dma.c:1.1 src/sys/arch/arm/sunxi/sun4i_dma.c:1.2
--- src/sys/arch/arm/sunxi/sun4i_dma.c:1.1 Sun Aug 27 16:05:26 2017
+++ src/sys/arch/arm/sunxi/sun4i_dma.c Tue Apr 10 00:59:55 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sun4i_dma.c,v 1.1 2017/08/27 16:05:26 jmcneill Exp $ */
+/* $NetBSD: sun4i_dma.c,v 1.2 2018/04/10 00:59:55 jmcneill Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -29,7 +29,7 @@
#include "opt_ddb.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sun4i_dma.c,v 1.1 2017/08/27 16:05:26 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sun4i_dma.c,v 1.2 2018/04/10 00:59:55 jmcneill Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -90,6 +90,11 @@ __KERNEL_RCSID(0, "$NetBSD: sun4i_dma.c,
#define DDMA_PARA_DST_WAIT_CLK_CYC __BITS(23,16)
#define DDMA_PARA_SRC_DATA_BLK_SIZE __BITS(15,8)
#define DDMA_PARA_SRC_WAIT_CLK_CYC __BITS(7,0)
+#define DDMA_PARA_VALUE \
+ (__SHIFTIN(1, DDMA_PARA_DST_DATA_BLK_SIZE) | \
+ __SHIFTIN(1, DDMA_PARA_SRC_DATA_BLK_SIZE) | \
+ __SHIFTIN(2, DDMA_PARA_DST_WAIT_CLK_CYC) | \
+ __SHIFTIN(2, DDMA_PARA_SRC_WAIT_CLK_CYC))
static const struct of_compat_data compat_data[] = {
{ "allwinner,sun4i-a10-dma", 1 },
@@ -259,7 +264,7 @@ sun4idma_transfer_ddma(struct sun4idma_s
DMA_WRITE(sc, DDMA_SRC_ADDR_REG(ch->ch_index), src);
DMA_WRITE(sc, DDMA_DEST_ADDR_REG(ch->ch_index), dst);
DMA_WRITE(sc, DDMA_BC_REG(ch->ch_index), req->dreq_segs[0].ds_len);
- DMA_WRITE(sc, DDMA_PARA_REG(ch->ch_index), 0);
+ DMA_WRITE(sc, DDMA_PARA_REG(ch->ch_index), DDMA_PARA_VALUE);
DMA_WRITE(sc, DDMA_CTRL_REG(ch->ch_index), cfg | DDMA_CTRL_LOAD);
return 0;