diff options
author | px4dev <px4@purgatory.org> | 2013-09-01 13:23:15 -0700 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-09-01 13:23:15 -0700 |
commit | 19593da73af399dc142b5795a9fadf8ca6607ef0 (patch) | |
tree | 5022695b84880dae1089bec09571607b8c655e6d /nuttx/drivers | |
parent | db966877698d63a58a28f5fa32a2ecbda640d290 (diff) | |
download | px4-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.c | 28 |
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 |