Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Mar 2013 20:00:11 +0000 (UTC)
From:      Oleksandr Tymoshenko <gonzo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r247855 - head/sys/arm/broadcom/bcm2835
Message-ID:  <201303052000.r25K0BIn007618@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gonzo
Date: Tue Mar  5 20:00:11 2013
New Revision: 247855
URL: http://svnweb.freebsd.org/changeset/base/247855

Log:
  - Reset DMA channel if error occured
  - Initialize info field in bcm_dma_reset
  
  Submitted by:	Daisuke Aoyama <aoyama@peach.ne.jp>

Modified:
  head/sys/arm/broadcom/bcm2835/bcm2835_dma.c

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_dma.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_dma.c	Tue Mar  5 19:37:29 2013	(r247854)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_dma.c	Tue Mar  5 20:00:11 2013	(r247855)
@@ -199,6 +199,7 @@ bcm_dma_reset(device_t dev, int ch)
 	/* Reset control block */
 	cb = sc->sc_dma_ch[ch].cb;
 	bzero(cb, sizeof(cb));
+	cb->info = INFO_WAIT_RESP;
 }
 
 static int
@@ -615,6 +616,7 @@ bcm_dma_intr(void *arg)
 			debug & DEBUG_ERROR_MASK, ch->ch);
 		bus_write_4(sc->sc_mem, BCM_DMA_DEBUG(ch->ch), 
 		    debug & DEBUG_ERROR_MASK);
+		bcm_dma_reset(sc->sc_dev, ch->ch);
 	}
 
 	if (cs & CS_INT) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303052000.r25K0BIn007618>