Hi Ulf, thank you for looking into this! On Mon, Apr 27, 2020 at 9:20 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: [...] > > +static void meson_mx_sdhc_wait_cmd_ready(struct mmc_host *mmc) > > +{ > > + struct meson_mx_sdhc_host *host = mmc_priv(mmc); > > + u32 stat, esta; > > + int ret; > > + > > + ret = regmap_read_poll_timeout(host->regmap, MESON_SDHC_STAT, stat, > > + !(stat & MESON_SDHC_STAT_CMD_BUSY), 1, > > + 100000); > > Please use defines for timeout values. I'll take care of this here and all other places which you have found [...] > > + if (cmd->data) > > + host->platform->set_pdma(mmc); > > + > > + if (host->platform->wait_before_send) > > + host->platform->wait_before_send(mmc); > > + > > + regmap_write(host->regmap, MESON_SDHC_SEND, send); > > Isn't there a configurable timeout to set for the command? > > I mean the driver sets mmc->max_busy_timeout to 30s in ->probe(), but > can the timeout be configured to a lower value? there's MESON_SDHC_CTRL_RX_TIMEOUT and MESON_SDHC_CTRL_RX_PERIOD here's what the datasheet has to say about them: - rx_timeout(cmd or wcrc Receiving Timeout, default 64) - rc_period(Period between response/cmd and default next cmd,default 8) - I'm not even sure if this is related somehow if you have a specific test-case for me to provoke these timeouts I can try playing around with these values otherwise we have to ask Jianxin and see whether he can get some information about this from the internal team at Amlogic [...] > > + mmc->caps |= MMC_CAP_ERASE | MMC_CAP_HW_RESET; > > Should you also set MMC_CAP_WAIT_WHILE_BUSY? It sounded like the > driver supported this. I can try setting it. >From our previous discussion (on the meson-mx-sdio driver) I have learned that eMMC will be a good test-case for it ;-) [...] > FYI: I left out all comments related to the clock provider > initialization. I think it makes better sense to review that code, > after you have converted to use the devm_clk_hw_register() and avoid > registering a separate driver for it. yes, that makes sense I expect the code to be easier since it'll be one big driver with the next version (so no more platform device allocation, etc.) > Other than the minor comments, this looks good to me. great - it would be great if this could finally make it into v5.8 Martin