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. tmio-mmc has lots to be improved. Tasklet is not the only problem. Before investing more effort, I want working code base for my platform. Anyway, thanks for applying this! > [...] > > Kind regards > Uffe -- Best Regards Masahiro Yamada