>Четверг, 14 июля 2016, 15:37 +03:00 от Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>: > >This reverts commit 8a6896971d093b9d8d1c36eb0d7af891b6ca5369. > >With this patch it's no longer possible to call detect on the >physical device which is necessary for example to make environment >on MMC work. Unlike the commit message for 8a6896971d claims >mci_detect_card() is not called from mci_register(). > >Signed-off-by: Sascha Hauer < s.hauer@xxxxxxxxxxxxxx > >--- > drivers/mci/imx-esdhc.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > >diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c >index 4c45e92..66786ff 100644 >--- a/drivers/mci/imx-esdhc.c >+++ b/drivers/mci/imx-esdhc.c >@@ -550,6 +550,13 @@ static int esdhc_reset(struct fsl_esdhc_host *host) > return 0; > } > >+static int fsl_esdhc_detect(struct device_d *dev) >+{ >+struct fsl_esdhc_host *host = dev->priv; >+ >+return mci_detect_card(&host->mci); >+} >+ > static int fsl_esdhc_probe(struct device_d *dev) > { > struct resource *iores; >@@ -608,6 +615,8 @@ static int fsl_esdhc_probe(struct device_d *dev) > host->mci.card_present = esdhc_card_present; > host->mci.hw_dev = dev; > >+dev->detect = fsl_esdhc_detect, >+ > rate = clk_get_rate(host->clk); > host->mci.f_min = rate >> 12; > if (host->mci.f_min < 200000) ... I can not understand why this is happening in your case. The mci_register() function contains the following line: mci->dev.detect = mci_detect; I.e. detect() call will be always overrided by mci core. And it defined as: static int mci_detect(struct device_d *dev) { struct mci *mci = container_of(dev, struct mci, dev); return mci_detect_card(mci->host); } So, result should be same. Is'nt it? --- _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox