mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
pinctrl: make range registration defer properly
This makes the pinctrl_find_and_add_gpio_range() return -EPROBE_DEFER if the range hosting pin controller cannot be located. We may assume that the common case for why adding a range fails is that the targe pin controller device has not probed yet. Reviewed-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
192c369c61
commit
dfa9751548
@ -350,8 +350,13 @@ struct pinctrl_dev *pinctrl_find_and_add_gpio_range(const char *devname,
|
||||
{
|
||||
struct pinctrl_dev *pctldev = get_pinctrl_dev_from_devname(devname);
|
||||
|
||||
/*
|
||||
* If we can't find this device, let's assume that is because
|
||||
* it has not probed yet, so the driver trying to register this
|
||||
* range need to defer probing.
|
||||
*/
|
||||
if (!pctldev)
|
||||
return NULL;
|
||||
return ERR_PTR(-EPROBE_DEFER);
|
||||
|
||||
pinctrl_add_gpio_range(pctldev, range);
|
||||
return pctldev;
|
||||
|
Loading…
Reference in New Issue
Block a user