Re: [PATCH] gpiolib: of: don't mark hog nodes OF_POPULATED before a chip is found
Daniel Drake <[email protected]>
| Newsgroups | org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On 15/08/2026 21:44, Abdurrahman Hussain wrote: > When a gpio-hog node is attached by a device-tree overlay before its > 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 <[email protected]> > Fixes: a23226b7c1f6 ("gpiolib: handle gpio-hogs only once") > Cc: [email protected] Looks correct, and this is consistent with OF_POPULATED handling in of_i2c_notify() and of_spi_notify(). Reviewed-by: Daniel Drake <[email protected]>