On 18 May 2017 at 00:17, David Woods <dwo...@mellanox.com> wrote: > Using the device_property interfaces allows mmc drivers to work > on platforms which run on either device tree or ACPI. > > Signed-off-by: David Woods <dwo...@mellanox.com> > Reviewed-by: Chris Metcalf <cmetc...@mellanox.com> > Cc: sta...@vger.linux.org > --- > drivers/mmc/core/host.c | 72 > ++++++++++++++++++++++++------------------------- > 1 file changed, 35 insertions(+), 37 deletions(-) > > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > index 3f8c85d..d2c059e 100644 > --- a/drivers/mmc/core/host.c > +++ b/drivers/mmc/core/host.c > @@ -176,19 +176,17 @@ static void mmc_retune_timer(unsigned long data) > */ > int mmc_of_parse(struct mmc_host *host) > { > - struct device_node *np; > + struct device *dev = host->parent; > u32 bus_width; > int ret; > bool cd_cap_invert, cd_gpio_invert = false; > bool ro_cap_invert, ro_gpio_invert = false; > > - if (!host->parent || !host->parent->of_node) > + if (!dev) > return 0; >
So earlier we stopped executing the OF parsing at this point, unless we had valid a of_node pointer. To be safe, I think we need to do something similar here. In other words, perhaps check the result from dev_fwnode(), before continue. [...] mmc_pwrseq_alloc() is called from mmc_of_parse() which currently only supports OF parsing. I assume you would like to convert that as well? Perhaps that should even be the first step? Kind regards Uffe