linux-uconsole/drivers/mmc/host
Russell King 0867cfaabc mmc: omap_hsmmc: fix DMA API warning
commit 0b47979068 upstream.

While booting with rootfs on MMC, the following warning is encountered
on OMAP4430:

omap-dma-engine 4a056000.dma-controller: DMA-API: mapping sg segment longer than device claims to support [len=69632] [max=65536]

This is because the DMA engine has a default maximum segment size of 64K
but HSMMC sets:

        mmc->max_blk_size = 512;       /* Block Length at max can be 1024 */
        mmc->max_blk_count = 0xFFFF;    /* No. of Blocks is 16 bits */
        mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
        mmc->max_seg_size = mmc->max_req_size;

which ends up telling the block layer that we support a maximum segment
size of 65535*512, which exceeds the advertised DMA engine capabilities.

Fix this by clamping the maximum segment size to the lower of the
maximum request size and of the DMA engine device used for either DMA
channel.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-29 13:37:56 +01:00
..
android-goldfish.c mmc: android-goldfish: fix bad logic of sg_copy_{from,to}_buffer conversion 2018-08-21 16:06:17 +02:00
atmel-mci.c mmc: atmel-mci: fix bad logic of sg_copy_{from,to}_buffer conversion 2018-08-21 16:06:17 +02:00
au1xmmc.c mmc: au1xmmc: handle highmem pages 2018-05-29 12:24:26 +02:00
bcm2835.c mmc: bcm2835: Don't overwrite max frequency unconditionally 2018-02-14 11:30:10 +01:00
cavium-octeon.c mmc: cavium-octeon: Convert to use module_platform_driver 2017-08-30 15:03:38 +02:00
cavium-thunderx.c mmc: cavium: Fix use-after-free in of_platform_device_destroy 2017-09-08 15:38:22 +02:00
cavium.c mmc: cavium: catch all errors when getting regulators 2017-10-30 11:50:33 +01:00
cavium.h mmc: cavium: Add scatter-gather DMA support 2017-04-24 21:42:10 +02:00
cb710-mmc.c
cb710-mmc.h
cqhci.c mmc: cqhci: support for command queue enabled host 2017-12-11 12:44:34 +01:00
cqhci.h mmc: cqhci: Ensure macro parameters are wrapped in parentheses 2017-12-11 13:11:21 +01:00
davinci_mmc.c mmc: host: simplify getting .drvdata 2018-05-02 15:08:48 +02:00
dw_mmc-bluefield.c mmc: dw_mmc-bluefield: Add driver extension 2018-05-21 10:44:40 +02:00
dw_mmc-exynos.c mmc: dw_mmc-exynos: fix potential external abort in resume_noirq() 2018-07-16 11:21:45 +02:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc: add support for hi3798cv200 specific extensions of dw-mshc 2018-03-15 14:43:22 +01:00
dw_mmc-k3.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-02-27 15:12:25 +01:00
dw_mmc-pci.c mmc: dw_mmc: remove the deprecated "num-slots" 2018-03-15 09:27:11 +01:00
dw_mmc-pltfm.c mmc: dw_mmc: Remove the public dw_mmc header file 2017-02-13 13:19:59 +01:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc: fix misleading comment in dw_mci_rk3288_set_ios 2018-05-02 15:08:38 +02:00
dw_mmc-zx.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-02-27 15:12:25 +01:00
dw_mmc-zx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dw_mmc.c mmc: dw_mmc: fix card threshold control configuration 2018-07-03 10:57:16 +02:00
dw_mmc.h mmc: dw_mmc: add support for hi3798cv200 specific extensions of dw-mshc 2018-03-15 14:43:22 +01:00
jz4740_mmc.c mmc: jz4740: Use dma_request_chan() 2018-05-02 15:08:34 +02:00
Kconfig mmc: sdhci-of-dwcmshc: add SDHCI OF Synopsys DWC MSHC driver 2018-07-16 11:21:45 +02:00
Makefile mmc: sdhci-pci-dwc-mshc: synopsys dwc mshc support 2018-07-16 11:21:45 +02:00
meson-gx-mmc.c mmc: meson-gx: add device reset 2018-05-21 10:50:45 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: fix OF child-node lookup 2018-09-05 08:28:45 +02:00
mmc_spi.c mmc: use new core function mmc_get_dma_dir 2017-04-24 21:41:52 +02:00
mmci.c mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml 2018-08-01 12:01:13 +02:00
mmci.h mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml 2018-08-01 12:01:13 +02:00
mmci_qcom_dml.c mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml 2018-08-01 12:01:13 +02:00
mmci_qcom_dml.h mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml 2018-08-01 12:01:13 +02:00
moxart-mmc.c mmc: moxart: constify mmc_host_ops structures 2017-08-30 14:01:41 +02:00
mtk-sd.c mmc: mediatek: add 64G DRAM DMA support 2018-05-02 15:08:51 +02:00
mvsdio.c mmc: mvsdio: Enable MMC_CAP_ERASE 2018-05-31 15:02:16 +02:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: Fix missing parentheses and brace 2018-07-16 11:45:44 +02:00
mxs-mmc.c mmc: mxs-mmc: Implement CMD23 support 2017-02-13 13:20:27 +01:00
of_mmc_spi.c mmc: of_mmc_spi: fix restricted cast warning of sparse 2017-08-30 14:01:45 +02:00
omap.c MMC: OMAP: fix broken MMC on OMAP15XX/OMAP5910/OMAP310 2018-12-19 19:19:51 +01:00
omap_hsmmc.c mmc: omap_hsmmc: fix DMA API warning 2018-12-29 13:37:56 +01:00
pxamci.c mmc: pxamci: provide a short-hand for &pdev->dev 2018-07-16 11:21:45 +02:00
pxamci.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
renesas_sdhi.h mmc: tmio,renesas_sdhi: move ssc_tappos to renesas_sdhi.h 2017-12-19 08:50:04 +01:00
renesas_sdhi_core.c mmc: renesas_sdhi: Fix sampling clock position selecting 2018-08-01 12:02:03 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi_internal_dmac: mask DMAC interrupts 2018-08-23 10:00:49 +02:00
renesas_sdhi_sys_dmac.c mmc: sdhi: sys_dmac: check for all Gen3 types when whitelisting 2018-09-17 20:15:40 +02:00
rtsx_pci_sdmmc.c misc: rtsx: Move Realtek Card Reader Driver to misc 2017-11-29 10:16:44 +00:00
rtsx_usb_sdmmc.c mmc: rtsx_usb: Enable MMC_CAP_ERASE to allow erase/discard/trim requests 2018-05-08 09:43:27 +02:00
s3cmci.c Merge branch 'fixes' into next 2018-01-04 12:44:21 +01:00
s3cmci.h mmc: s3cmci: Register cpufreq notifier only on S3C24xx 2016-07-25 10:34:46 +02:00
sdhci-acpi.c sdhci: acpi: add free_slot callback 2018-11-13 11:08:23 -08:00
sdhci-bcm-kona.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-brcmstb.c mmc: sdhci: enable/disable the clock in sdhci_pltfm_suspend/resume 2017-08-30 15:03:44 +02:00
sdhci-cadence.c mmc: sdhci-cadence: fix logically and structurally dead code 2018-05-02 15:08:49 +02:00
sdhci-cns3xxx.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-dove.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: fix indent 2018-07-16 11:41:13 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: support ESDHC_CAPABILITIES_1 accessing 2017-08-30 15:03:36 +02:00
sdhci-iproc.c mmc: sdhci-iproc: add SDHCI_QUIRK2_HOST_OFF_CARD_ON for cygnus 2018-05-21 13:27:22 +02:00
sdhci-msm.c mmc: sdhci-msm: Remove redundant dev_err call in sdhci_msm_probe() 2018-07-16 11:21:45 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Add quirk for unstable clocks 2018-07-16 11:21:45 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: make function sdhci_at91_set_uhs_signaling static 2017-10-30 11:46:01 +01:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: add SDHCI OF Synopsys DWC MSHC driver 2018-07-16 11:21:45 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: set proper dma mask for ls104x chips 2018-07-16 11:21:45 +02:00
sdhci-of-hlwd.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-omap.c mmc: sdhci-omap: Fix DCRC error handling during tuning 2018-12-19 19:19:51 +01:00
sdhci-pci-arasan.c mmc:host:sdhci-pci:Addition of Arasan PCI Controller with integrated phy. 2018-01-04 12:46:11 +01:00
sdhci-pci-core.c mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value 2018-12-01 09:37:26 +01:00
sdhci-pci-data.c mmc: sdhci-pci: Use ACPI DSM to get driver strength for some Intel devices 2017-04-24 21:41:28 +02:00
sdhci-pci-dwc-mshc.c mmc: sdhci-pci-dwc-mshc: synopsys dwc mshc support 2018-07-16 11:21:45 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01 2018-11-13 11:08:22 -08:00
sdhci-pci.h mmc: sdhci-pci-dwc-mshc: synopsys dwc mshc support 2018-07-16 11:21:45 +02:00
sdhci-pic32.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: export sdhci_pltfm_suspend/resume 2017-08-30 15:03:45 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: export sdhci_pltfm_suspend/resume 2017-08-30 15:03:45 +02:00
sdhci-pxav2.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-pxav3.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-s3c.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-sirf.c mmc: sdhci: enable/disable the clock in sdhci_pltfm_suspend/resume 2017-08-30 15:03:44 +02:00
sdhci-spear.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-st.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-tegra.c mmc: tegra: Force correct divider calculation on DDR50/52 2018-07-30 15:06:31 +02:00
sdhci-xenon-phy.c mmc: sdhci-xenon: mark expected switch fall-through 2018-07-16 11:21:45 +02:00
sdhci-xenon.c mmc: sdhci-xenon: wait 5ms after set 1.8V signal enable 2017-12-19 08:53:04 +01:00
sdhci-xenon.h mmc: sdhci-xenon: Fix clock resource by adding an optional bus clock 2017-10-04 10:50:36 +02:00
sdhci.c mmc: sdhci: fix the timeout check window for clock and reset 2018-12-19 19:19:51 +01:00
sdhci.h mmc: sdhci: Export sdhci tuning function symbol 2018-07-30 14:25:06 +02:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: add ACPI support 2018-01-11 15:50:53 +01:00
sdricoh_cs.c mmc: sdricoh_cs: constify mmc_host_ops structures 2017-08-30 14:01:44 +02:00
sh_mmcif.c mmc: sh_mmcif: remove some cruft 2018-03-05 09:00:59 +01:00
sunxi-mmc.c mmc: sunxi: remove output of virtual base address 2018-08-01 12:02:03 +02:00
tifm_sd.c mmc: Convert timers to use timer_setup() 2017-11-02 15:20:28 +01:00
tmio_mmc.c mmc: tmio: remove dma_ops from tmio_mmc_host_probe() argument 2018-01-18 09:08:56 +01:00
tmio_mmc.h mmc: tmio: add eMMC HS400 mode support 2018-07-16 11:21:45 +02:00
tmio_mmc_core.c mmc: tmio: remove unneeded variable in tmio_mmc_start_command() 2018-08-01 12:02:03 +02:00
toshsd.c mmc: toshsd: constify mmc_host_ops structures 2017-08-30 14:01:42 +02:00
toshsd.h
usdhi6rol0.c mmc: usdhi6rol0: catch all errors when getting regulators 2017-10-30 11:50:37 +01:00
ushc.c mmc: ushc: handle highmem pages 2018-05-21 15:49:20 +02:00
via-sdmmc.c mmc: Convert timers to use timer_setup() 2017-11-02 15:20:28 +01:00
vub300.c mmc: vub300: Use common code in __download_offload_pseudocode() 2017-11-02 15:20:29 +01:00
wbsd.c mmc: wbsd: handle highmem pages 2018-05-21 15:49:21 +02:00
wbsd.h
wmt-sdmmc.c mmc: host: simplify getting .drvdata 2018-05-02 15:08:48 +02:00