aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/mmc/host
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2024-01-27 01:19:49 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2024-02-13 13:40:55 +0100
commitbc169ad24308ff3304966af10bea2df9219a0189 (patch)
treec1d37cddb8e6cafcd337b01e9408eaf6f43c47c8 /drivers/mmc/host
parentmmc: davinci_mmc: Use sg_miter for PIO (diff)
downloadwireguard-linux-bc169ad24308ff3304966af10bea2df9219a0189.tar.xz
wireguard-linux-bc169ad24308ff3304966af10bea2df9219a0189.zip
mmc: moxart-mmc: Factor out moxart_use_dma() helper
The same code is in two places and we will add a third place. Break this out into its own function. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20240127-mmc-proper-kmap-v2-2-d8e732aa97d1@linaro.org Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r--drivers/mmc/host/moxart-mmc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mmc/host/moxart-mmc.c b/drivers/mmc/host/moxart-mmc.c
index 5cfdd3a86e54..d12d7d79b19c 100644
--- a/drivers/mmc/host/moxart-mmc.c
+++ b/drivers/mmc/host/moxart-mmc.c
@@ -254,6 +254,11 @@ static void moxart_dma_complete(void *param)
complete(&host->dma_complete);
}
+static bool moxart_use_dma(struct moxart_host *host)
+{
+ return (host->data_len > host->fifo_width) && host->have_dma;
+}
+
static void moxart_transfer_dma(struct mmc_data *data, struct moxart_host *host)
{
u32 len, dir_slave;
@@ -375,7 +380,7 @@ static void moxart_prepare_data(struct moxart_host *host)
if (data->flags & MMC_DATA_WRITE)
datactrl |= DCR_DATA_WRITE;
- if ((host->data_len > host->fifo_width) && host->have_dma)
+ if (moxart_use_dma(host))
datactrl |= DCR_DMA_EN;
writel(DCR_DATA_FIFO_RESET, host->base + REG_DATA_CONTROL);
@@ -407,7 +412,7 @@ static void moxart_request(struct mmc_host *mmc, struct mmc_request *mrq)
moxart_send_command(host, host->mrq->cmd);
if (mrq->cmd->data) {
- if ((host->data_len > host->fifo_width) && host->have_dma) {
+ if (moxart_use_dma(host)) {
writel(CARD_CHANGE, host->base + REG_INTERRUPT_MASK);