mirror of
https://github.com/apache/nuttx.git
synced 2026-05-31 14:27:37 +08:00
sdio,stm32h7: fixed an issue with not starting IDMA data transfer in case of IO_RW_EXTENDED command (CMD53);
corrected setting SDMMC_DCTRL.DTMODE field for block data transfers ending on block count and for block data transfers ending with STOP_TRANSMISSION command; stm32_sdio: added more debug messages
This commit is contained in:
committed by
Xiang Xiao
parent
2dd081ed7d
commit
f7c8875fd7
@@ -226,15 +226,15 @@ int sdio_io_rw_extended(FAR struct sdio_dev_s *dev, bool write,
|
||||
if ((SDIO_CAPABILITIES(dev) & SDIO_CAPS_DMABEFOREWRITE) != 0)
|
||||
{
|
||||
SDIO_DMASENDSETUP(dev, buf, blocklen * nblocks);
|
||||
SDIO_SENDCMD(dev, SD_ACMD53, arg.value);
|
||||
SDIO_SENDCMD(dev, SD_ACMD53WR, arg.value);
|
||||
|
||||
wkupevent = SDIO_EVENTWAIT(dev);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53, &data);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53WR, &data);
|
||||
}
|
||||
else
|
||||
{
|
||||
sdio_sendcmdpoll(dev, SD_ACMD53, arg.value);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53, &data);
|
||||
sdio_sendcmdpoll(dev, SD_ACMD53WR, arg.value);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53WR, &data);
|
||||
|
||||
SDIO_DMASENDSETUP(dev, buf, blocklen * nblocks);
|
||||
wkupevent = SDIO_EVENTWAIT(dev);
|
||||
@@ -244,10 +244,10 @@ int sdio_io_rw_extended(FAR struct sdio_dev_s *dev, bool write,
|
||||
{
|
||||
wlinfo("prep read %d\n", blocklen * nblocks);
|
||||
SDIO_DMARECVSETUP(dev, buf, blocklen * nblocks);
|
||||
SDIO_SENDCMD(dev, SD_ACMD53, arg.value);
|
||||
SDIO_SENDCMD(dev, SD_ACMD53RD, arg.value);
|
||||
|
||||
wkupevent = SDIO_EVENTWAIT(dev);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53, &data);
|
||||
ret = SDIO_RECVR5(dev, SD_ACMD53RD, &data);
|
||||
}
|
||||
|
||||
wlinfo("Transaction ends\n");
|
||||
|
||||
Reference in New Issue
Block a user