On Thu, 16 Jul 2020 at 20:23, Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Thu, Jul 16, 2020 at 4:16 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > > + /* Continue with the SD express init, if the card supports it. */ > > + resp &= 0x3000; > > + if (pcie_bits && resp) { > > + if (resp == 0x3000) > > + host->ios.timing = MMC_TIMING_SD_EXP_1_2V; > > + else > > + host->ios.timing = MMC_TIMING_SD_EXP; > > + > > + /* > > + * According to the spec the clock shall also be gated, but > > + * let's leave this to the host driver for more flexibility. > > + */ > > + return host->ops->init_sd_express(host, &host->ios); > > + } > > + > > return 0; > > } > > Does this need an additional handshake or timeout to see if the > device was successfully probed by the nvme driver? > > It looks like the card would just disappear here if e.g. the nvme driver > is not loaded or runs into a runtime error. You are correct! In principle, the card would not be detected (it doesn't disappear as it never gets registered). Instead, it's left in "half-initialized" state, waiting for the nvme driver to take over. I simply didn't want to go that far, to introduce synchronizations steps between the nvme driver and mmc driver, but rather started simple. Perhaps we can discuss these things as improvements on top instead? What do you think? Kind regards Uffe