Re: [PATCH] Revert "mci: imx-esdhc: Remove excess function"
Alexander Shiyan
shc_work at mail.ru
Thu Jul 14 14:23:53 PDT 2016
>Четверг, 14 июля 2016, 15:37 +03:00 от Sascha Hauer <s.hauer at pengutronix.de>:
>
>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 at pengutronix.de >
>---
> 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?
---
More information about the barebox
mailing list