From bfaf64e54e008589f522a51009cc1b256a52a1c7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 6 Aug 2013 15:47:09 -0600 Subject: [PATCH] Fix SAM bug: Parmaters reversed in DMA function call --- ChangeLog | 3 +++ arch/arm/src/sam34/sam3u_dmac.c | 4 ++-- arch/arm/src/sam34/sam_hsmci.c | 4 ++-- arch/arm/src/sama5/sam_dmac.c | 6 +++--- arch/arm/src/sama5/sam_hsmci.c | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index af29cb9190..f503656f54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5323,3 +5323,6 @@ correct some bad register address and some bad assertions that caused false alarms. These latter were backported to the SAM34 DMAC driver as well (2013-8-6). + * arch/arm/src/sama5/sam_dmac.c and sam34/sam34_dmac.c: Correct + some parameters reversed in function call (2013-8-6). + diff --git a/arch/arm/src/sam34/sam3u_dmac.c b/arch/arm/src/sam34/sam3u_dmac.c index 3d9708cb70..cf0c8b2552 100644 --- a/arch/arm/src/sam34/sam3u_dmac.c +++ b/arch/arm/src/sam34/sam3u_dmac.c @@ -903,7 +903,7 @@ static int sam_rxbuffer(struct sam_dma_s *dmach, uint32_t paddr, ctrlb = sam_rxctrlb(dmach); } - ctrla = sam_rxctrla(dmach, regval, nbytes); + ctrla = sam_rxctrla(dmach, nbytes, regval); /* Add the new link list entry */ @@ -1159,7 +1159,7 @@ static int sam_dmainterrupt(int irq, void *context) void weak_function up_dmainitialize(void) { - dmallvdbg("Iinitialize DMAC0\n"); + dmallvdbg("Initialize DMAC0\n"); /* Enable peripheral clock */ diff --git a/arch/arm/src/sam34/sam_hsmci.c b/arch/arm/src/sam34/sam_hsmci.c index ae71b4a33a..ee252e5789 100644 --- a/arch/arm/src/sam34/sam_hsmci.c +++ b/arch/arm/src/sam34/sam_hsmci.c @@ -1108,7 +1108,7 @@ static int sam_interrupt(int irq, void *context) /* Handle in progress, interrupt driven data transfers ****************/ /* Do any of these interrupts signal the end a data transfer? */ - pending = enabled & priv->xfrmask; + pending = enabled & priv->xfrmask; if (pending != 0) { /* Yes.. the transfer is complete. Did it complete with an error? */ @@ -1142,7 +1142,7 @@ static int sam_interrupt(int irq, void *context) /* Handle wait events *************************************************/ /* Do any of these interrupts signal wakeup event? */ - pending = enabled & priv->waitmask; + pending = enabled & priv->waitmask; if (pending != 0) { sdio_eventset_t wkupevent = 0; diff --git a/arch/arm/src/sama5/sam_dmac.c b/arch/arm/src/sama5/sam_dmac.c index 4495209c14..6f19594abc 100644 --- a/arch/arm/src/sama5/sam_dmac.c +++ b/arch/arm/src/sama5/sam_dmac.c @@ -1158,7 +1158,7 @@ static int sam_rxbuffer(struct sam_dmach_s *dmach, uint32_t paddr, ctrlb = sam_rxctrlb(dmach); } - ctrla = sam_rxctrla(dmach, regval, nbytes); + ctrla = sam_rxctrla(dmach, nbytes, regval); /* Add the new link list entry */ @@ -1480,7 +1480,7 @@ void sam_dmainitialize(struct sam_dmac_s *dmac) void weak_function up_dmainitialize(void) { #ifdef CONFIG_SAMA5_DMAC0 - dmallvdbg("Iinitialize DMAC0\n"); + dmallvdbg("Initialize DMAC0\n"); /* Enable peripheral clock */ @@ -1500,7 +1500,7 @@ void weak_function up_dmainitialize(void) #endif #ifdef CONFIG_SAMA5_DMAC1 - dmallvdbg("Iinitialize DMAC1\n"); + dmallvdbg("Initialize DMAC1\n"); /* Enable peripheral clock */ diff --git a/arch/arm/src/sama5/sam_hsmci.c b/arch/arm/src/sama5/sam_hsmci.c index 482a7b0e4b..cc775b12f5 100644 --- a/arch/arm/src/sama5/sam_hsmci.c +++ b/arch/arm/src/sama5/sam_hsmci.c @@ -1339,7 +1339,7 @@ static int sam_hsmci_interrupt(struct sam_dev_s *priv) /* Handle in progress, interrupt driven data transfers ****************/ /* Do any of these interrupts signal the end a data transfer? */ - pending = enabled & priv->xfrmask; + pending = enabled & priv->xfrmask; if (pending != 0) { /* Yes.. the transfer is complete. Did it complete with an error? */ @@ -1373,7 +1373,7 @@ static int sam_hsmci_interrupt(struct sam_dev_s *priv) /* Handle wait events *************************************************/ /* Do any of these interrupts signal wakeup event? */ - pending = enabled & priv->waitmask; + pending = enabled & priv->waitmask; if (pending != 0) { sdio_eventset_t wkupevent = 0;