lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 787/846] pinctrl/rockchip: fix gpio device creation
    Date
    From: John Keeping <john@metanate.com>

    commit bceb6732f3fd2a55d8f2e518cced1c7555e216b6 upstream.

    GPIO nodes are not themselves busses, so passing rockchip_bank_match
    here is wrong. Passing NULL instead uses the standard bus match table
    which is more appropriate.

    devm_of_platform_populate() shows that this is the normal way to call
    of_platform_populate() from a device driver, so in order to match that
    more closely also add the pinctrl device as the parent for the newly
    created GPIO controllers.

    Specifically, using the wrong match here can break dynamic GPIO hogs as
    marking the GPIO bank as a bus means that of_platform_notify() will set
    OF_POPULATED on new child nodes and if this happens before
    of_gpio_notify() is called then the new hog will be skipped as
    OF_POPULATED is already set.

    Fixes: 9ce9a02039de ("pinctrl/rockchip: drop the gpio related codes")
    Signed-off-by: John Keeping <john@metanate.com>
    Link: https://lore.kernel.org/r/20211126151352.1509583-1-john@metanate.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/pinctrl/pinctrl-rockchip.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/pinctrl/pinctrl-rockchip.c
    +++ b/drivers/pinctrl/pinctrl-rockchip.c
    @@ -2748,7 +2748,7 @@ static int rockchip_pinctrl_probe(struct

    platform_set_drvdata(pdev, info);

    - ret = of_platform_populate(np, rockchip_bank_match, NULL, NULL);
    + ret = of_platform_populate(np, NULL, NULL, &pdev->dev);
    if (ret) {
    dev_err(&pdev->dev, "failed to register gpio device\n");
    return ret;

    \
     
     \ /
      Last update: 2022-01-25 01:11    [W:4.020 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site