Hi Shimoda-san, thank you for this update! > +static void renesas_sdhi_init_card(struct mmc_host *mmc, struct mmc_card *card) > +{ > + struct tmio_mmc_host *host = mmc_priv(mmc); > + > + if (host->pdev->dev.iommu_group && I wonder if I am too cautious, but maybe we should have another condition here to be checked first, namely "host->mmc->max_segs < 512"? > + (mmc_card_mmc(card) || mmc_card_sd(card))) > + host->mmc->max_segs = 512; > + else > + host->mmc->max_segs = host->pdata->max_segs; max_segs can be 0, so we should probably have: + host->mmc->max_segs = host->pdata->max_segs ?: 32; That also means, for the sys-dmac and Gen2, we then use 512 for the IOMMU case and 32 (default TMIO value) for the non IOMMU case. My understanding is that SYS DMAC can handle 512 in both cases. Maybe it makes sense then to make an incremental patch setting the max_segs value explicitly to 512 in the sys-dmac driver for Gen2? Kind regards, Wolfram