Message ID | 20200225050828.56458-4-john.stultz@linaro.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | driver core: Improve and cleanup driver_deferred_probe_check_state() | expand |
Sending again because of accidental HTML email. On Mon, Feb 24, 2020 at 9:08 PM John Stultz <john.stultz@linaro.org> wrote: > > With the earlier sanity fixes to > driver_deferred_probe_check_state() it should be usable for the > pinctrl logic here. > > So tweak the logic to use driver_deferred_probe_check_state() > instead of driver_deferred_probe_check_state_continue() > > Cc: Rob Herring <robh@kernel.org> > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> > Cc: Kevin Hilman <khilman@kernel.org> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Pavel Machek <pavel@ucw.cz> > Cc: Len Brown <len.brown@intel.com> > Cc: Todd Kjos <tkjos@google.com> > Cc: Saravana Kannan <saravanak@google.com> > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Liam Girdwood <lgirdwood@gmail.com> > Cc: Mark Brown <broonie@kernel.org> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Linus Walleij <linus.walleij@linaro.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: linux-pm@vger.kernel.org > Acked-by: Linus Walleij <linus.walleij@linaro.org> > Signed-off-by: John Stultz <john.stultz@linaro.org> > --- > drivers/pinctrl/devicetree.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c > index 9357f7c46cf3..1ed20ac2243f 100644 > --- a/drivers/pinctrl/devicetree.c > +++ b/drivers/pinctrl/devicetree.c > @@ -127,11 +127,12 @@ static int dt_to_map_one_config(struct pinctrl *p, > np_pctldev = of_get_next_parent(np_pctldev); > if (!np_pctldev || of_node_is_root(np_pctldev)) { > of_node_put(np_pctldev); > + ret = driver_deferred_probe_check_state(p->dev); > /* keep deferring if modules are enabled unless we've timed out */ > - if (IS_ENABLED(CONFIG_MODULES) && !allow_default) > - return driver_deferred_probe_check_state_continue(p->dev); > - > - return driver_deferred_probe_check_state(p->dev); > + if (IS_ENABLED(CONFIG_MODULES) && !allow_default && Is this IS_ENABLED(CONFIG_MODULES) still necessary? At the end of this series, doesn't driver_deferred_probe_check_state() already return -EPROBE_DEFER if modules are enabled and timeout hasn't happened? -Saravana > + (ret == -ENODEV)) > + ret = -EPROBE_DEFER; > + return ret; > } > /* If we're creating a hog we can use the passed pctldev */ > if (hog_pctldev && (np_pctldev == p->dev->of_node)) { > -- > 2.17.1 >
On Tue, Feb 25, 2020 at 6:11 PM Saravana Kannan <saravanak@google.com> wrote: > On Mon, Feb 24, 2020 at 9:08 PM John Stultz <john.stultz@linaro.org> wrote: > > > > With the earlier sanity fixes to > > driver_deferred_probe_check_state() it should be usable for the > > pinctrl logic here. > > > > So tweak the logic to use driver_deferred_probe_check_state() > > instead of driver_deferred_probe_check_state_continue() > > > > Cc: Rob Herring <robh@kernel.org> > > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> > > Cc: Kevin Hilman <khilman@kernel.org> > > Cc: Ulf Hansson <ulf.hansson@linaro.org> > > Cc: Pavel Machek <pavel@ucw.cz> > > Cc: Len Brown <len.brown@intel.com> > > Cc: Todd Kjos <tkjos@google.com> > > Cc: Saravana Kannan <saravanak@google.com> > > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > > Cc: Liam Girdwood <lgirdwood@gmail.com> > > Cc: Mark Brown <broonie@kernel.org> > > Cc: Thierry Reding <treding@nvidia.com> > > Cc: Linus Walleij <linus.walleij@linaro.org> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > Cc: linux-pm@vger.kernel.org > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > Signed-off-by: John Stultz <john.stultz@linaro.org> > > --- > > drivers/pinctrl/devicetree.c | 9 +++++---- > > 1 file changed, 5 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c > > index 9357f7c46cf3..1ed20ac2243f 100644 > > --- a/drivers/pinctrl/devicetree.c > > +++ b/drivers/pinctrl/devicetree.c > > @@ -127,11 +127,12 @@ static int dt_to_map_one_config(struct pinctrl *p, > > np_pctldev = of_get_next_parent(np_pctldev); > > if (!np_pctldev || of_node_is_root(np_pctldev)) { > > of_node_put(np_pctldev); > > + ret = driver_deferred_probe_check_state(p->dev); > > /* keep deferring if modules are enabled unless we've timed out */ > > - if (IS_ENABLED(CONFIG_MODULES) && !allow_default) > > - return driver_deferred_probe_check_state_continue(p->dev); > > - > > - return driver_deferred_probe_check_state(p->dev); > > + if (IS_ENABLED(CONFIG_MODULES) && !allow_default && > > Is this IS_ENABLED(CONFIG_MODULES) still necessary? At the end of this > series, doesn't driver_deferred_probe_check_state() already return > -EPROBE_DEFER if modules are enabled and timeout hasn't happened? > Yea, good point. With the reworked logic in v5, the IS_ENABLED(CONFIG_MODULES) check could go. thanks -john
diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c index 9357f7c46cf3..1ed20ac2243f 100644 --- a/drivers/pinctrl/devicetree.c +++ b/drivers/pinctrl/devicetree.c @@ -127,11 +127,12 @@ static int dt_to_map_one_config(struct pinctrl *p, np_pctldev = of_get_next_parent(np_pctldev); if (!np_pctldev || of_node_is_root(np_pctldev)) { of_node_put(np_pctldev); + ret = driver_deferred_probe_check_state(p->dev); /* keep deferring if modules are enabled unless we've timed out */ - if (IS_ENABLED(CONFIG_MODULES) && !allow_default) - return driver_deferred_probe_check_state_continue(p->dev); - - return driver_deferred_probe_check_state(p->dev); + if (IS_ENABLED(CONFIG_MODULES) && !allow_default && + (ret == -ENODEV)) + ret = -EPROBE_DEFER; + return ret; } /* If we're creating a hog we can use the passed pctldev */ if (hog_pctldev && (np_pctldev == p->dev->of_node)) {