Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: Merge branch fixes into next

Merge the mmc fixes for v6.8-rc[n] into the next branch, to allow them to
get tested together with the new mmc changes that are targeted for v6.9.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

+24
+24
drivers/mmc/host/mmci_stm32_sdmmc.c
··· 225 225 struct scatterlist *sg; 226 226 int i; 227 227 228 + host->dma_in_progress = true; 229 + 228 230 if (!host->variant->dma_lli || data->sg_len == 1 || 229 231 idma->use_bounce_buffer) { 230 232 u32 dma_addr; ··· 265 263 return 0; 266 264 } 267 265 266 + static void sdmmc_idma_error(struct mmci_host *host) 267 + { 268 + struct mmc_data *data = host->data; 269 + struct sdmmc_idma *idma = host->dma_priv; 270 + 271 + if (!dma_inprogress(host)) 272 + return; 273 + 274 + writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR); 275 + host->dma_in_progress = false; 276 + data->host_cookie = 0; 277 + 278 + if (!idma->use_bounce_buffer) 279 + dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, 280 + mmc_get_dma_dir(data)); 281 + } 282 + 268 283 static void sdmmc_idma_finalize(struct mmci_host *host, struct mmc_data *data) 269 284 { 285 + if (!dma_inprogress(host)) 286 + return; 287 + 270 288 writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR); 289 + host->dma_in_progress = false; 271 290 272 291 if (!data->host_cookie) 273 292 sdmmc_idma_unprep_data(host, data, 0); ··· 699 676 .dma_setup = sdmmc_idma_setup, 700 677 .dma_start = sdmmc_idma_start, 701 678 .dma_finalize = sdmmc_idma_finalize, 679 + .dma_error = sdmmc_idma_error, 702 680 .set_clkreg = mmci_sdmmc_set_clkreg, 703 681 .set_pwrreg = mmci_sdmmc_set_pwrreg, 704 682 .busy_complete = sdmmc_busy_complete,