On 24 August 2018 at 03:50, Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > 2018-08-23 19:43 GMT+09:00 Ulf Hansson <ulf.hansson@xxxxxxxxxx>: >> [...] >> >>> +static void uniphier_sd_external_dma_request(struct tmio_mmc_host *host, >>> + struct tmio_mmc_data *pdata) >>> +{ >>> + struct uniphier_sd_priv *priv = uniphier_sd_priv(host); >>> + struct dma_chan *chan; >>> + >>> + chan = dma_request_chan(mmc_dev(host->mmc), "rx-tx"); >>> + if (IS_ERR(chan)) { >>> + dev_warn(mmc_dev(host->mmc), >>> + "failed to request DMA channel. falling back to PIO\n"); >>> + return; /* just use PIO even for -EPROBE_DEFER */ >>> + } >>> + >>> + /* this driver uses a single channel for both RX an TX */ >>> + priv->chan = chan; >>> + host->chan_rx = chan; >>> + host->chan_tx = chan; >>> + >>> + tasklet_init(&host->dma_issue, uniphier_sd_external_dma_issue, >>> + (unsigned long)host); >> >> Isn't it time to get rid of tasklets for tmio? >> >> No worries, I don't require that to be changed prior $subject patch, >> however using threaded IRQs is a justified modernization for the tmio >> variants. > > > Yeah, I also thought this. > > But, the irq handler is in the TMIO common code, > so it would affect Renesas code. Yep. > > tmio-mmc has lots to be improved. > Tasklet is not the only problem. Sure. > > > Before investing more effort, > I want working code base for my platform. Totally acceptable! [...] Kind regards Uffe