Am Mittwoch, 30. März 2016, 15:24:56 schrieb Guodong Xu: [...] > @@ -2949,7 +2956,9 @@ int dw_mci_probe(struct dw_mci *host) > > if (!host->pdata) { > host->pdata = dw_mci_parse_dt(host); > - if (IS_ERR(host->pdata)) { > + if (PTR_ERR(host->pdata) == -EPROBE_DEFER) { > + return -EPROBE_DEFER; > + } else if (IS_ERR(host->pdata)) { how is this related to adding the reset handling? Making the driver handle probe deferral better should be a separate patch. > dev_err(host->dev, "platform data not available\n"); > return -EINVAL; > } > @@ -3012,6 +3021,9 @@ int dw_mci_probe(struct dw_mci *host) > } > } > > + if (!IS_ERR(host->pdata->rstc)) > + reset_control_deassert(host->pdata->rstc); > + Wouldn't reset_control_reset be better? The way it is now it would expect the reset to be asserted somewhere else before dw_mmc probes? > setup_timer(&host->cmd11_timer, > dw_mci_cmd11_timer, (unsigned long)host); > [...] > diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h > index 7b41c6d..b95cd84 100644 > --- a/include/linux/mmc/dw_mmc.h > +++ b/include/linux/mmc/dw_mmc.h > @@ -14,9 +14,10 @@ > #ifndef LINUX_MMC_DW_MMC_H > #define LINUX_MMC_DW_MMC_H > > -#include <linux/scatterlist.h> > -#include <linux/mmc/core.h> > #include <linux/dmaengine.h> > +#include <linux/mmc/core.h> > +#include <linux/reset.h> > +#include <linux/scatterlist.h> unrelated changed regarding the reordering of includes. Heiko -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html