From: Bin Meng <[email protected]>
Signed-off-by: Bin Meng <[email protected]>
Message-ID: <[email protected]>
[PMD: Split of bigger patch]
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
hw/sd/sdhci.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
index 586e4680bee..ad370407c6e 100644
--- a/hw/sd/sdhci.c
+++ b/hw/sd/sdhci.c
@@ -598,6 +598,11 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_t
value, unsigned size)
* Single DMA data transfer
*/
+static void sdhci_advance_sdma_address(SDHCIState *s, uint32_t bytes)
+{
+ s->sdmasysad += bytes;
+}
+
/* Multi block SDMA transfer */
static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
{
@@ -641,7 +646,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
}
dma_memory_write(s->dma_as, s->sdmasysad, &s->fifo_buffer[begin],
s->data_count - begin, MEMTXATTRS_UNSPECIFIED);
- s->sdmasysad += s->data_count - begin;
+ sdhci_advance_sdma_address(s, s->data_count - begin);
if (s->data_count == block_size) {
s->data_count = 0;
}
@@ -662,7 +667,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
}
dma_memory_read(s->dma_as, s->sdmasysad, &s->fifo_buffer[begin],
s->data_count - begin, MEMTXATTRS_UNSPECIFIED);
- s->sdmasysad += s->data_count - begin;
+ sdhci_advance_sdma_address(s, s->data_count - begin);
if (s->data_count == block_size) {
sdbus_write_data(&s->sdbus, s->fifo_buffer, block_size);
s->data_count = 0;
--
2.53.0