linux/drivers/mmc/host
Aidan MacDonald afadb04f1d mmc: jz4740: Apply DMA engine limits to maximum segment size
Do what is done in other DMA-enabled MMC host drivers (cf. host/mmci.c) and
limit the maximum segment size based on the DMA engine's capabilities. This
is needed to avoid warnings like the following with CONFIG_DMA_API_DEBUG=y.

------------[ cut here ]------------
WARNING: CPU: 0 PID: 21 at kernel/dma/debug.c:1162 debug_dma_map_sg+0x2f4/0x39c
DMA-API: jz4780-dma 13420000.dma-controller: mapping sg segment longer than device claims to support [len=98304] [max=65536]
CPU: 0 PID: 21 Comm: kworker/0:1H Not tainted 5.18.0-rc1 #19
Workqueue: kblockd blk_mq_run_work_fn
Stack : 81575aec 00000004 80620000 80620000 80620000 805e7358 00000009 801537ac
        814c832c 806276e3 806e34b4 80620000 81575aec 00000001 81575ab8 09291444
        00000000 00000000 805e7358 81575958 ffffffea 8157596c 00000000 636f6c62
        6220646b 80387a70 0000000f 6d5f6b6c 80620000 00000000 81575ba4 00000009
        805e170c 80896640 00000001 00010000 00000000 00000000 00006098 806e0000
        ...
Call Trace:
[<80107670>] show_stack+0x84/0x120
[<80528cd8>] __warn+0xb8/0xec
[<80528d78>] warn_slowpath_fmt+0x6c/0xb8
[<8016f1d4>] debug_dma_map_sg+0x2f4/0x39c
[<80169d4c>] __dma_map_sg_attrs+0xf0/0x118
[<8016a27c>] dma_map_sg_attrs+0x14/0x28
[<804f66b4>] jz4740_mmc_prepare_dma_data+0x74/0xa4
[<804f6714>] jz4740_mmc_pre_request+0x30/0x54
[<804f4ff4>] mmc_blk_mq_issue_rq+0x6e0/0x7bc
[<804f5590>] mmc_mq_queue_rq+0x220/0x2d4
[<8038b2c0>] blk_mq_dispatch_rq_list+0x480/0x664
[<80391040>] blk_mq_do_dispatch_sched+0x2dc/0x370
[<80391468>] __blk_mq_sched_dispatch_requests+0xec/0x164
[<80391540>] blk_mq_sched_dispatch_requests+0x44/0x94
[<80387900>] __blk_mq_run_hw_queue+0xb0/0xcc
[<80134c14>] process_one_work+0x1b8/0x264
[<80134ff8>] worker_thread+0x2ec/0x3b8
[<8013b13c>] kthread+0x104/0x10c
[<80101dcc>] ret_from_kernel_thread+0x14/0x1c

---[ end trace 0000000000000000 ]---

Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
Link: https://lore.kernel.org/r/20220411153753.50443-1-aidanmacdonald.0x0@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2022-04-26 14:05:21 +02:00
..
alcor.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v5.4 2020-09-07 14:24:21 +02:00
atmel-mci.c mmc: atmel-mci: Use new tasklet API 2021-02-08 13:00:31 +01:00
au1xmmc.c mmc: au1xmmc: propagate errors from platform_get_irq() 2021-12-28 17:42:51 +01:00
bcm2835.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
cavium-octeon.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
cavium-thunderx.c
cavium.c mmc: cavium: Use '"%s...", __func__' to print function name 2021-03-30 11:42:06 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Use new tasklet API 2021-02-15 10:43:23 +01:00
cb710-mmc.h
cqhci-core.c Merge branch 'fixes' into next 2021-10-26 17:37:06 +02:00
cqhci-crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
cqhci-crypto.h mmc: core: Store pointer to bio_crypt_ctx in mmc_request 2021-08-24 10:15:32 +02:00
cqhci.h mmc: cqhci: add cqhci_host_ops::program_key 2021-02-01 12:02:33 +01:00
davinci_mmc.c mmc: davinci_mmc: Handle error for clk_enable 2022-03-15 10:29:53 +01:00
dw_mmc-bluefield.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19 2020-09-07 14:24:21 +02:00
dw_mmc-exynos.c mmc: dw_mmc: Do not wait for DTO in case of error 2021-12-21 13:28:41 +01:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3798cv200: use common_caps 2021-12-14 21:35:25 +01:00
dw_mmc-k3.c mmc: dw_mmc-k3: use the correct HiSilicon copyright 2021-03-31 14:47:53 +02:00
dw_mmc-pci.c
dw_mmc-pltfm.c mmc: dw_mmc-pltfm: Remove unused <linux/clk.h> 2021-06-14 13:57:42 +02:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw-mmc-rockchip: Fix handling invalid clock rates 2022-03-07 12:56:48 +01:00
dw_mmc.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
dw_mmc.h mmc: dw_mmc: Support setting f_min from host drivers 2022-03-07 12:56:38 +01:00
jz4740_mmc.c mmc: jz4740: Apply DMA engine limits to maximum segment size 2022-04-26 14:05:21 +02:00
Kconfig mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
litex_mmc.c mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
Makefile mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
meson-gx-mmc.c mmc: meson: Fix usage of meson_mmc_post_req() 2022-02-28 13:18:12 +01:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Drop unused MESON_SDHC_NUM_BUILTIN_CLKS macro 2021-12-20 11:19:01 +01:00
meson-mx-sdhc-mmc.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
meson-mx-sdhc.h mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host 2020-05-28 11:22:14 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: add IRQ check 2021-12-21 13:22:34 +01:00
mmc_hsq.c mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_hsq.h mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
mmci_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: use a buffer for unaligned DMA requests 2022-04-26 14:05:18 +02:00
mmci.c mmc: mmci: increase stm32 sdmmcv2 clock max freq 2021-12-21 13:06:10 +01:00
mmci.h
moxart-mmc.c moxart: fix potential use-after-free on remove path 2022-01-31 15:36:34 +01:00
mtk-sd.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
mvsdio.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
mvsdio.h
mxcmmc.c PM: core: Remove static qualifier in DEFINE_SIMPLE_DEV_PM_OPS macro 2022-01-12 19:59:05 +01:00
mxs-mmc.c mmc: mxs-mmc: disable regulator on error and in the remove function 2021-10-19 13:02:58 +02:00
of_mmc_spi.c mmc: mmc_spi: parse speed mode options 2022-04-26 14:05:19 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Revert special init for wl1251 2021-12-14 21:35:24 +01:00
omap.c mmc: omap: Make it CCF clk API compatible 2022-04-26 14:05:19 +02:00
owl-mmc.c mmc: owl-mmc: Remove unnecessary error log 2021-04-12 13:52:47 +02:00
pxamci.c mmc: pxamci: Fix error return code in pxamci_probe 2020-11-24 12:35:34 +01:00
pxamci.h
renesas_sdhi_core.c mmc: renesas_sdhi: remove outdated headers 2022-04-26 14:05:17 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: remove superfluous specific M3W entry 2022-04-26 14:05:20 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
renesas_sdhi.h mmc: renesas_sdhi: make 'dmac_only_one_rx' a quirk 2022-04-26 14:05:18 +02:00
rtsx_pci_sdmmc.c Char/Misc and other driver updates for 5.18-rc1 2022-03-28 12:27:35 -07:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: simplify the return expression of sd_change_phase() 2020-09-25 13:24:02 +02:00
s3cmci.c mmc: s3cmci: move to use request_irq by IRQF_NO_AUTOEN flag 2021-06-14 13:57:34 +02:00
s3cmci.h
sdhci_am654.c mmc: sdhci_am654: Add Support for TI's AM62 SoC 2022-02-28 13:23:51 +01:00
sdhci_f_sdh30.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci_f_sdh30.h
sdhci-acpi.c mmc: sdhci-acpi: Use the new soc_intel_is_byt() helper 2021-12-01 20:14:26 +01:00
sdhci-bcm-kona.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Remove CQE quirk 2021-03-30 12:42:44 +02:00
sdhci-cadence.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
sdhci-cns3xxx.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-dove.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: Add sdhc support for i.MXRT series 2021-12-14 21:35:26 +01:00
sdhci-esdhc-mcf.c mmc: sdhci: replace mmc->parent with mmc_dev() for consistency 2021-03-30 11:42:07 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: make sure delay chain locked for HS400 2020-10-28 11:07:01 +01:00
sdhci-iproc.c Revert "mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN on BCM2711" 2021-08-27 16:30:36 +02:00
sdhci-milbeaut.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-msm.c mmc: sdhci-msm: Use maximum possible data timeout value 2021-08-24 10:15:34 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Add intel Thunder Bay SOC support to the arasan eMMC driver 2021-10-12 10:21:17 +02:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: Remove some unnecessary casts from KUnit tests 2021-06-23 16:39:08 -06:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: Turn down a phase correction warning 2021-06-14 13:57:44 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: Use of_device_get_match_data() helper 2022-02-28 13:06:22 +01:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: set MMC_CAP_WAIT_WHILE_BUSY 2021-03-30 11:42:07 +02:00
sdhci-of-esdhc.c mmc: host: Drop commas after SoC match table sentinels 2022-03-07 12:54:31 +01:00
sdhci-of-hlwd.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-of-sparx5.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-omap.c mmc: sdhci-omap: Fix build if CONFIG_PM_SLEEP is not set 2021-10-21 21:39:50 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci: Add PCI ID for Intel ADL 2021-12-14 21:35:25 +01:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Add runtime PM for GL9763E 2022-03-15 10:27:49 +01:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Restore the SD clock's base clock frequency 2021-12-28 17:26:41 +01:00
sdhci-pci.h mmc: sdhci-pci: Add PCI ID for Intel ADL 2021-12-14 21:35:25 +01:00
sdhci-pic32.c mmc: sdhci-pic32: Make pic32_sdhci_probe_platform() void 2020-11-16 11:59:30 +01:00
sdhci-pltfm.c
sdhci-pltfm.h mmc: sdhci-pltfm: Fix linking err for sdhci-brcmstb 2021-02-01 11:13:09 +01:00
sdhci-pxav2.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-pxav3.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-s3c.c mmc: sdhci-s3c: drop unneeded MODULE_ALIAS 2021-10-12 10:21:18 +02:00
sdhci-spear.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Wait until DLL locked after being configured 2021-10-12 10:21:19 +02:00
sdhci-st.c mmc: sdhci-st: Remove unnecessary error log 2021-04-12 13:52:48 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Use of_device_get_match_data() helper 2022-02-28 13:06:22 +01:00
sdhci-xenon-phy.c mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci-xenon.c Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" 2022-04-04 12:17:46 +02:00
sdhci-xenon.h mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
sdhci.h mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB 2021-11-17 10:34:06 +01:00
sdricoh_cs.c mmc: sdricoh_cs: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:22:14 +02:00
sh_mmcif.c mmc: sh_mmcif: Simplify division/shift logic 2022-02-28 16:11:47 +01:00
sunxi-mmc.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
tifm_sd.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
tmio_mmc_core.c mmc: tmio: reinit card irqs in reset routine 2021-12-14 21:35:22 +01:00
tmio_mmc.c mmc: tmio: do not print real IOMEM pointer 2020-11-17 12:46:39 +01:00
tmio_mmc.h mmc: tmio: remove outdated members from host struct 2022-03-15 10:31:24 +01:00
toshsd.c
toshsd.h
uniphier-sd.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
usdhi6rol0.c mmc: usdhi6rol0: Implement card_busy function 2021-08-24 15:16:08 +02:00
ushc.c
via-sdmmc.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
vub300.c mmc: vub300: fix control-message timeouts 2021-10-26 17:31:58 +02:00
wbsd.c mmc: wbsd: Use new tasklet API 2021-02-08 13:00:31 +01:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Use of_device_get_match_data() helper 2022-02-28 13:06:22 +01:00