summaryrefslogtreecommitdiff
path: root/nuttx/drivers
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-09-01 13:23:15 -0700
committerpx4dev <px4@purgatory.org>2013-09-01 13:23:15 -0700
commit19593da73af399dc142b5795a9fadf8ca6607ef0 (patch)
tree5022695b84880dae1089bec09571607b8c655e6d /nuttx/drivers
parentdb966877698d63a58a28f5fa32a2ecbda640d290 (diff)
downloadpx4-nuttx-19593da73af399dc142b5795a9fadf8ca6607ef0.tar.gz
px4-nuttx-19593da73af399dc142b5795a9fadf8ca6607ef0.tar.bz2
px4-nuttx-19593da73af399dc142b5795a9fadf8ca6607ef0.zip
Teach the MMC layer to handle errors reported during DMA setup.
Diffstat (limited to 'nuttx/drivers')
-rw-r--r--nuttx/drivers/mmcsd/mmcsd_sdio.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/nuttx/drivers/mmcsd/mmcsd_sdio.c b/nuttx/drivers/mmcsd/mmcsd_sdio.c
index eb8ff8845..6d975ad63 100644
--- a/nuttx/drivers/mmcsd/mmcsd_sdio.c
+++ b/nuttx/drivers/mmcsd/mmcsd_sdio.c
@@ -1321,7 +1321,12 @@ static ssize_t mmcsd_readsingle(FAR struct mmcsd_state_s *priv,
#ifdef CONFIG_SDIO_DMA
if (priv->dma)
{
- SDIO_DMARECVSETUP(priv->dev, buffer, priv->blocksize);
+ ret = SDIO_DMARECVSETUP(priv->dev, buffer, priv->blocksize);
+ if (ret != OK)
+ {
+ fvdbg("SDIO_DMARECVSETUP: error %d\n", ret);
+ return ret;
+ }
}
else
#endif
@@ -1431,7 +1436,12 @@ static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
#ifdef CONFIG_SDIO_DMA
if (priv->dma)
{
- SDIO_DMARECVSETUP(priv->dev, buffer, nbytes);
+ ret = SDIO_DMARECVSETUP(priv->dev, buffer, nbytes);
+ if (ret != OK)
+ {
+ fvdbg("SDIO_DMARECVSETUP: error %d\n", ret);
+ return ret;
+ }
}
else
#endif
@@ -1621,7 +1631,12 @@ static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv,
#ifdef CONFIG_SDIO_DMA
if (priv->dma)
{
- SDIO_DMASENDSETUP(priv->dev, buffer, priv->blocksize);
+ ret = SDIO_DMASENDSETUP(priv->dev, buffer, priv->blocksize);
+ if (ret != OK)
+ {
+ fvdbg("SDIO_DMASENDSETUP: error %d\n", ret);
+ return ret;
+ }
}
else
#endif
@@ -1766,7 +1781,12 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
#ifdef CONFIG_SDIO_DMA
if (priv->dma)
{
- SDIO_DMASENDSETUP(priv->dev, buffer, nbytes);
+ ret = SDIO_DMASENDSETUP(priv->dev, buffer, nbytes);
+ if (ret != OK)
+ {
+ fvdbg("SDIO_DMASENDSETUP: error %d\n", ret);
+ return ret;
+ }
}
else
#endif