Hi Wolfram-san,
> From: Wolfram Sang, Sent: Friday, April 26, 2019 6:37 PM
>
>
> > +static void
> > +renesas_sdhi_internal_dmac_init_card(struct tmio_mmc_host *host,
> > + struct mmc_card *card)
> > +{
> > + if (host->pdev->dev.iommu_group &&
> > + (mmc_card_mmc(card) || mmc_card_sd(card)))
> > + host->mmc->max_segs = 512;
> > + else
> > + host->mmc->max_segs = host->pdata->max_segs;
> > +}
> > +
>
> Will this work with Gen2 as well if we explicitly set max_segs in
> of_rcar_gen2_compatible (renesas_sdhi_sys_dmac.c)?
Yes, Gen2 (renesas_sdhi_sys_dmac.c) can work with max_segs = 512.
# Enabling IPMMU on Gen2 might cause some troubles anyway regardless the
max_segs value though.
> Then we could simply
> move the above chunk to renesas_sdhi_core.c and use this minimal diff.
>
> --- a/drivers/mmc/host/renesas_sdhi_core.c
> +++ b/drivers/mmc/host/renesas_sdhi_core.c
> @@ -726,6 +726,8 @@ int renesas_sdhi_probe(struct platform_device *pdev,
>
> /* SDR speeds are only available on Gen2+ */
> if (mmc_data->flags & TMIO_MMC_MIN_RCAR2) {
> + host->ops.init_card = renesas_sdhi_init_card;
> +
> /* card_busy caused issues on r8a73a4 (pre-Gen2) CD-less SDHI */
> host->ops.card_busy = renesas_sdhi_card_busy;
> host->ops.start_signal_voltage_switch =
>
> What do you think, Shimoda-san?
I think it's a nice idea. So, I'll modify this patch on v2.
Best regards,
Yoshihiro Shimoda