Re: [PATCH] gpiolib: of: don't mark hog nodes OF_POPULATED before a chip is found
From: Daniel Drake
Date: Sun Aug 16 2026 - 04:57:11 EST
On 15/08/2026 21:44, Abdurrahman Hussain wrote:
When a gpio-hog node is attached by a device-tree overlay before itsLooks correct, and this is consistent with OF_POPULATED handling in of_i2c_notify() and of_spi_notify().
parent GPIO chip has been registered, of_gpio_notify() sets
OF_POPULATED on the node via of_node_test_and_set_flag() and only then
discovers that there is no gpio_device for the parent, returning
NOTIFY_DONE without clearing the flag.
Since gpiochip_hog_lines() skips any hog child whose of_node carries
OF_POPULATED, the leaked flag makes the hog silently ignored when the
chip is registered later. Applying an overlay containing both a GPIO
controller node and its hog children - and populating devices only
after the overlay apply completes - hits this on every boot; the hog
is only applied if the chip driver is unbound (which clears the flag
in the remove path) and rebound.
Look up the parent gpio_device before claiming the node so that a hog
attached ahead of its chip stays unclaimed and is picked up normally
by gpiochip_hog_lines() at registration time.
Signed-off-by: Abdurrahman Hussain <abdurrahman@xxxxxxxxxx>
Fixes: a23226b7c1f6 ("gpiolib: handle gpio-hogs only once")
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Daniel Drake <dan@xxxxxxxxxxxxxxx>