Re: [PATCH] gpiolib: of: Use correct fwnode for DT-probed chips

From: Robert Marko
Date: Sat Nov 12 2022 - 08:00:14 EST



On 11. 11. 2022. 12:37, Thierry Reding wrote:
From: Thierry Reding <treding@xxxxxxxxxx>

The OF node store in chip->fwnode is used to explicitly override the FW
node for a GPIO chip. For chips that use the default FW node (i.e. that
of their parent device), this will be NULL and cause the chip not to be
fully registered.

Instead, use the GPIO device's FW node, which is set to either the node
of the parent device or the explicit override in chip->fwnode.

Fixes: 8afe82550240 ("gpiolib: of: Prepare of_gpiochip_add() / of_gpiochip_remove() for fwnode")
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>

Hi, I can confirm this fixes the blamed commit on Qualcomm IPQ8074.

Tested-by: Robert Marko <robimarko@xxxxxxxxx>

---
drivers/gpio/gpiolib-of.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 4be3c21aa718..55c3712592db 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -1067,7 +1067,7 @@ int of_gpiochip_add(struct gpio_chip *chip)
struct device_node *np;
int ret;
- np = to_of_node(chip->fwnode);
+ np = to_of_node(dev_fwnode(&chip->gpiodev->dev));
if (!np)
return 0;