From patchwork Fri Feb 14 05:41:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 236324 List-Id: U-Boot discussion From: yamada.masahiro at socionext.com (Masahiro Yamada) Date: Fri, 14 Feb 2020 14:41:33 +0900 Subject: [PATCH v2 00/11] mmc: sdhci: code clean-up and fix cache coherency problem Message-ID: <20200214054144.18315-1-yamada.masahiro@socionext.com> My main motivation of this series is the last patch "mmc: sdhci: fix missing cache invalidation after reading by DMA". Currently, read data are occasionally corrupted due to the missing cache invalidation. To fix it nicely (adds dma_unmap_single(), which follows the Linux coding style), I did some cleaups first. Patch 01-04 tidies up the DMA helpers. Patch 05-10 are code clean-ups. Patch 11 fixes the bug. Masahiro Yamada (11): dma-mapping: fix the prototype of dma_map_single() dma-mapping: fix the prototype of dma_unmap_single() dma-mapping: move dma_map_(un)single() to dma-mapping: add for all architectures mmc: sdhci: put the aligned buffer pointer to struct sdhci_host mmc: sdhci: reduce code duplication for aligned buffer mmc: sdhci: use lower_32_bit2() and upper_32_bits() for setting adma_addr mmc: sdhci: remove unneeded casts mmc: add mmc_get_dma_dir() helper mmc: sdhci: use dma_map_single() instead of flush_cache() before DMA mmc: sdhci: fix missing cache invalidation after reading by DMA arch/arc/include/asm/dma-mapping.h | 1 + arch/arm/include/asm/dma-mapping.h | 29 +------ arch/m68k/include/asm/dma-mapping.h | 1 + arch/microblaze/include/asm/dma-mapping.h | 1 + arch/mips/include/asm/dma-mapping.h | 1 + arch/nds32/include/asm/dma-mapping.h | 27 +------ arch/nios2/include/asm/dma-mapping.h | 25 +----- arch/powerpc/include/asm/dma-mapping.h | 1 + arch/riscv/include/asm/dma-mapping.h | 29 +------ arch/sandbox/include/asm/dma-mapping.h | 1 + arch/sh/include/asm/dma-mapping.h | 1 + arch/x86/include/asm/dma-mapping.h | 29 +------ arch/xtensa/include/asm/dma-mapping.h | 1 + drivers/dma/ti/k3-udma.c | 2 +- drivers/mmc/sdhci.c | 96 +++++++++++------------ drivers/mmc/tmio-common.c | 5 +- drivers/mtd/nand/raw/denali.c | 5 +- drivers/net/altera_tse.c | 2 +- drivers/net/ftmac110.c | 2 +- drivers/net/macb.c | 4 +- drivers/soc/ti/k3-navss-ringacc.c | 2 +- drivers/ufs/ufs.c | 2 +- drivers/usb/cdns3/gadget.c | 2 +- drivers/usb/dwc3/core.c | 8 +- drivers/usb/dwc3/gadget.c | 2 +- drivers/usb/gadget/udc/udc-core.c | 4 +- include/linux/dma-mapping.h | 63 +++++++++++++++ include/mmc.h | 6 ++ include/sdhci.h | 3 + 29 files changed, 150 insertions(+), 205 deletions(-) create mode 100644 arch/arc/include/asm/dma-mapping.h create mode 100644 arch/m68k/include/asm/dma-mapping.h create mode 100644 arch/microblaze/include/asm/dma-mapping.h create mode 100644 arch/mips/include/asm/dma-mapping.h create mode 100644 arch/powerpc/include/asm/dma-mapping.h create mode 100644 arch/sandbox/include/asm/dma-mapping.h create mode 100644 arch/sh/include/asm/dma-mapping.h create mode 100644 arch/xtensa/include/asm/dma-mapping.h create mode 100644 include/linux/dma-mapping.h