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

Reply via email to