]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pinctrl: starfive: jh7110: ignore disabled device tree nodes
authorNam Cao <namcao@linutronix.de>
Fri, 1 Dec 2023 09:23:28 +0000 (10:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jan 2024 12:42:45 +0000 (12:42 +0000)
commit f6e3b40a2c89c1d832ed9cb031dc9825bbf43b7c upstream.

The driver always registers pin configurations in device tree. This can
cause some inconvenience to users, as pin configurations in the base
device tree cannot be disabled in the device tree overlay, even when the
relevant devices are not used.

Ignore disabled pin configuration nodes in device tree.

Fixes: 447976ab62c5 ("pinctrl: starfive: Add StarFive JH7110 sys controller driver")
Cc: <stable@vger.kernel.org>
Signed-off-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/r/fd8bf044799ae50a6291ae150ef87b4f1923cacb.1701422582.git.namcao@linutronix.de
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c

index 640f827a9b2ca6c0e9e05364b00e29874f0078d9..b4f79957268940b3b5c0e2d5c0a23dc1e5d966b4 100644 (file)
@@ -135,7 +135,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev,
        int ret;
 
        ngroups = 0;
-       for_each_child_of_node(np, child)
+       for_each_available_child_of_node(np, child)
                ngroups += 1;
        nmaps = 2 * ngroups;
 
@@ -150,7 +150,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev,
        nmaps = 0;
        ngroups = 0;
        mutex_lock(&sfp->mutex);
-       for_each_child_of_node(np, child) {
+       for_each_available_child_of_node(np, child) {
                int npins = of_property_count_u32_elems(child, "pinmux");
                int *pins;
                u32 *pinmux;