aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakeshi Saito <takeshi.saito.xv@renesas.com>2019-03-20 18:18:10 +0900
committerRyo Kataoka <ryo.kataoka.wt@renesas.com>2019-03-22 20:50:21 +0900
commitcaabf4e7396a2b9bef48f180d6dd3644b243c8d1 (patch)
treebb3cf4f863dc4da33e6842ff8e8e9c0d88401e6a
parent0533172faca88bd946493f719bca659f9a4cc525 (diff)
downloadrenesas-bsp-caabf4e7396a2b9bef48f180d6dd3644b243c8d1.tar.gz
mmc: renesas_sdhi: max_segs_on_iommu applies only no-sdio port
In Gen3 IOMMU, SG entries page size expects a multiple of PAGE_SIZE. However, SG entries are allocated in small segment in SDIO. max_segs_on_iommu applies only "no-sdio" port in DeviceTree. In Atheros SDIO WiFi, the SDIO firmware crashes during the execution of iperf3 command. iperf3 -c <IP address> [ 53.457669] ath6kl: firmware crashed [ 53.473327] ath6kl: crash dump: : Signed-off-by: Takeshi Saito <takeshi.saito.xv@renesas.com>
-rw-r--r--drivers/mmc/host/renesas_sdhi_core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
index 345232bff5b0f7..0b3d94fe1795b9 100644
--- a/drivers/mmc/host/renesas_sdhi_core.c
+++ b/drivers/mmc/host/renesas_sdhi_core.c
@@ -853,7 +853,9 @@ int renesas_sdhi_probe(struct platform_device *pdev,
mmc_data->capabilities2 |= of_data->capabilities2;
mmc_data->dma_rx_offset = of_data->dma_rx_offset;
mmc_data->max_blk_count = of_data->max_blk_count;
- if (pdev->dev.iommu_group)
+ /* IOMMU multiple segments applies only No-SDIO port */
+ if (pdev->dev.iommu_group &&
+ host->mmc->caps2 & MMC_CAP2_NO_SDIO)
mmc_data->max_segs = of_data->max_segs_on_iommu;
else
mmc_data->max_segs = of_data->max_segs;