Hi Wolfram-san, Thank you for your comments! > From: Wolfram Sang, Sent: Friday, November 29, 2019 6:07 AM > > Hi Shimoda-san, > > Interesting series! > > > - .dma_buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES, > > + .dma_buswidth = DMA_SLAVE_BUSWIDTH_32_BYTES, > > Two very high level questions: > > 1) can't we set dma_priv->dma_buswidth at runtime when we know what the > card is capable of? Either DMA_SLAVE_BUSWIDTH_32_BYTES or > DMA_SLAVE_BUSWIDTH_4_BYTES? Then we don't need to fallback to PIO. > AFAIS, we only Gen2 sets .dma_buswidth in of_data, so we could even > remove it from of_data entirely? As I replied to Ulrich-san on other email thread, for now, rcar-dmac has a limitation on dmaengine_slave_config(), we should not call it at runtime. But, I don't think any sd card have such a limitation. In other words, if rcar-dmac doesn't have the limitation, I think we can change the buswidth at runtime and then we can remove the .dma_buswidth from of_data. > 2) Just by grepping in mmc/hosts, I see that no driver uses > DMA_SLAVE_BUSWIDTH_32_BYTES. Do you have an idea why? Because it is the > convenient setting which works for all cards? I also grepped in drivers/dma, and all dmaengine drivers except Renesas related SoCs don't support DMA_SLAVE_BUSWIDTH_32_BYTES. So, I think no driver uses the 32 bytes on mmc/hosts :) Best regards, Yoshihiro Shimoda > Thanks and kind regards, > > Wolfram