drivers/mmcsd: Pass the right buffer size to SDIO_DMAPREFLIGHT

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2021-09-07 01:44:58 +08:00 committed by Gustavo Henrique Nihei
parent acf18bd82d
commit 60b2a0e2a0

View File

@ -1502,7 +1502,7 @@ static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
FAR uint8_t *buffer, off_t startblock,
size_t nblocks)
{
size_t nbytes;
size_t nbytes = nblocks << priv->blockshift;
off_t offset;
int ret;
@ -1524,7 +1524,7 @@ static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
if ((priv->caps & SDIO_CAPS_DMASUPPORTED) != 0)
{
ret = SDIO_DMAPREFLIGHT(priv->dev, buffer, priv->blocksize);
ret = SDIO_DMAPREFLIGHT(priv->dev, buffer, nbytes);
if (ret != OK)
{
@ -1552,7 +1552,6 @@ static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
* offset
*/
nbytes = nblocks << priv->blockshift;
if (IS_BLOCK(priv->type))
{
offset = startblock;
@ -1878,8 +1877,8 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
FAR const uint8_t *buffer,
off_t startblock, size_t nblocks)
{
size_t nbytes = nblocks << priv->blockshift;
off_t offset;
size_t nbytes;
int ret;
int evret = OK;
@ -1903,7 +1902,7 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
if ((priv->caps & SDIO_CAPS_DMASUPPORTED) != 0)
{
ret = SDIO_DMAPREFLIGHT(priv->dev, buffer, priv->blocksize);
ret = SDIO_DMAPREFLIGHT(priv->dev, buffer, nbytes);
if (ret != OK)
{
@ -1931,7 +1930,6 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
* offset
*/
nbytes = nblocks << priv->blockshift;
if (IS_BLOCK(priv->type))
{
offset = startblock;