Re: [PATCH] gpiolib: use of_node_name if line-name is missing
From: Andy Shevchenko
Date: Thu Sep 17 2026 - 09:45:04 EST
On Thu, Sep 17, 2026 at 03:20:49PM +0200, Frank Wunderlich (linux) wrote:
> Am 2026-09-17 15:00, schrieb Andy Shevchenko:
> > On Thu, Sep 17, 2026 at 02:28:13PM +0200, Frank Wunderlich wrote:
...
> > > int gpiochip_add_hog(struct gpio_chip *gc, struct fwnode_handle
> > > *fwnode)
> >
> > > fwnode_property_read_string(fwnode, "line-name", &name);
> > >
> > > + if (!name && is_of_node(fwnode))
> > > + name = to_of_node(fwnode)->name;
> >
> > Can we move it inside the loop? Yes, I understand that it will be
> > unnecessarily
> > called more times than required, but gpiod_hog() is called anyway in the
> > loop,
> > so I don't think it will be a big deal. With that it will allow to group
> > OF-specific code in one location.
> >
> > > for (unsigned int i = 0; i < num_hogs; i++) {
> > > if (is_of_node(fwnode)) {
> >
> > ...somewhere inside this conditional...
> >
> > > /*
>
> I'm not sure what you want to achieve here (maybe only to have the
> is_of_node-condition once?, as the loop imho is only for enumerating
> multiple gpio (like "gpios = <3 0>, <4 0>;") inside one hog of_node.
The primary goal is stop spreading OF-specific code. If you have noticed the
function was also rewritten (during the move) to be fwnode agnostic, but that
was not feasible by 100%, the leftover is collected inside the mentioned loop.
That's why I really prefer to keep all OF code there.
> Here the node-name will never change (like the line-name above) and read-once
> is correct.
> But while looking at the code i also thought about these multi-gpio-hogs
> (label and output-X). Imho here something like the gpio-controllers
> "line-names" would make sense as well as something similar for the output
> (or just handling this with the GPIO_ACTIVE_HIGH/LOW param).
>
> But if you think the part should be moved into the loop, that's no big deal.
Yes, I think that way.
--
With Best Regards,
Andy Shevchenko