From: Linus Walleij <linus.walleij@linaro.org> To: Geert Uytterhoeven <geert+renesas@glider.be> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>, Jonathan Corbet <corbet@lwn.net>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Harish Jenny K N <harish_kandiga@mentor.com>, Eugeniu Rosca <erosca@de.adit-jv.com>, Alexander Graf <graf@amazon.com>, Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Phil Reid <preid@electromag.com.au>, Marc Zyngier <marc.zyngier@arm.com>, Christoffer Dall <christoffer.dall@arm.com>, Magnus Damm <magnus.damm@gmail.com>, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, Linux Doc Mailing List <linux-doc@vger.kernel.org>, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree@vger.kernel.org>, Linux-Renesas <linux-renesas-soc@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, QEMU Developers <qemu-devel@nongnu.org> Subject: Re: [PATCH v3 2/7] gpiolib: Add support for gpiochipN-based table lookup Date: Thu, 12 Dec 2019 14:20:45 +0100 [thread overview] Message-ID: <CACRpkdYyY0eGipdK6ixZxLtdJ5px=U2mOa79VZb00NEEAEL=6g@mail.gmail.com> (raw) In-Reply-To: <20191127084253.16356-3-geert+renesas@glider.be> Hi Geert! On Wed, Nov 27, 2019 at 9:43 AM Geert Uytterhoeven <geert+renesas@glider.be> wrote: > Currently GPIO controllers can only be referred to by label in GPIO > lookup tables. > > Add support for looking them up by "gpiochipN" name, with "N" either the > corresponding GPIO device's ID number, or the GPIO controller's first > GPIO number. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> What the commit message is missing is a rationale, why is this needed? > If this is rejected, the GPIO Aggregator documentation must be updated. > > The second variant is currently used by the legacy sysfs interface only, > so perhaps the chip->base check should be dropped? Anything improving the sysfs is actively discouraged by me. If it is just about staying compatible it is another thing. > +static int gpiochip_match_id(struct gpio_chip *chip, void *data) > +{ > + int id = (uintptr_t)data; > + > + return id == chip->base || id == chip->gpiodev->id; > +} > static struct gpio_chip *find_chip_by_name(const char *name) > { > - return gpiochip_find((void *)name, gpiochip_match_name); > + struct gpio_chip *chip; > + int id; > + > + chip = gpiochip_find((void *)name, gpiochip_match_name); > + if (chip) > + return chip; > + > + if (!str_has_prefix(name, GPIOCHIP_NAME)) > + return NULL; > + > + if (kstrtoint(name + strlen(GPIOCHIP_NAME), 10, &id)) > + return NULL; > + > + return gpiochip_find((void *)(uintptr_t)id, gpiochip_match_id); Isn't it easier to just augment the existing match function to check like this: static int gpiochip_match_name(struct gpio_chip *chip, void *data) { const char *name = data; if (!strcmp(chip->label, name)) return 0; return !strcmp(dev_name(&chip->gpiodev->dev), name); } We should I guess also add some kerneldoc to say we first match on the label and second on dev_name(). Yours, Linus Walleij
WARNING: multiple messages have this Message-ID (diff)
From: Linus Walleij <linus.walleij@linaro.org> To: Geert Uytterhoeven <geert+renesas@glider.be> Cc: Mark Rutland <mark.rutland@arm.com>, Peter Maydell <peter.maydell@linaro.org>, QEMU Developers <qemu-devel@nongnu.org>, Phil Reid <preid@electromag.com.au>, Jonathan Corbet <corbet@lwn.net>, Marc Zyngier <marc.zyngier@arm.com>, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, Linux Doc Mailing List <linux-doc@vger.kernel.org>, Magnus Damm <magnus.damm@gmail.com>, Christoffer Dall <christoffer.dall@arm.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Linux-Renesas <linux-renesas-soc@vger.kernel.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com>, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree@vger.kernel.org>, Rob Herring <robh+dt@kernel.org>, Harish Jenny K N <harish_kandiga@mentor.com>, Paolo Bonzini <pbonzini@redhat.com>, Alexander Graf <graf@amazon.com>, Eugeniu Rosca <erosca@de.adit-jv.com> Subject: Re: [PATCH v3 2/7] gpiolib: Add support for gpiochipN-based table lookup Date: Thu, 12 Dec 2019 14:20:45 +0100 [thread overview] Message-ID: <CACRpkdYyY0eGipdK6ixZxLtdJ5px=U2mOa79VZb00NEEAEL=6g@mail.gmail.com> (raw) In-Reply-To: <20191127084253.16356-3-geert+renesas@glider.be> Hi Geert! On Wed, Nov 27, 2019 at 9:43 AM Geert Uytterhoeven <geert+renesas@glider.be> wrote: > Currently GPIO controllers can only be referred to by label in GPIO > lookup tables. > > Add support for looking them up by "gpiochipN" name, with "N" either the > corresponding GPIO device's ID number, or the GPIO controller's first > GPIO number. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> What the commit message is missing is a rationale, why is this needed? > If this is rejected, the GPIO Aggregator documentation must be updated. > > The second variant is currently used by the legacy sysfs interface only, > so perhaps the chip->base check should be dropped? Anything improving the sysfs is actively discouraged by me. If it is just about staying compatible it is another thing. > +static int gpiochip_match_id(struct gpio_chip *chip, void *data) > +{ > + int id = (uintptr_t)data; > + > + return id == chip->base || id == chip->gpiodev->id; > +} > static struct gpio_chip *find_chip_by_name(const char *name) > { > - return gpiochip_find((void *)name, gpiochip_match_name); > + struct gpio_chip *chip; > + int id; > + > + chip = gpiochip_find((void *)name, gpiochip_match_name); > + if (chip) > + return chip; > + > + if (!str_has_prefix(name, GPIOCHIP_NAME)) > + return NULL; > + > + if (kstrtoint(name + strlen(GPIOCHIP_NAME), 10, &id)) > + return NULL; > + > + return gpiochip_find((void *)(uintptr_t)id, gpiochip_match_id); Isn't it easier to just augment the existing match function to check like this: static int gpiochip_match_name(struct gpio_chip *chip, void *data) { const char *name = data; if (!strcmp(chip->label, name)) return 0; return !strcmp(dev_name(&chip->gpiodev->dev), name); } We should I guess also add some kerneldoc to say we first match on the label and second on dev_name(). Yours, Linus Walleij
next prev parent reply other threads:[~2019-12-12 13:20 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-27 8:42 [PATCH v3 0/7] gpio: Add GPIO Aggregator/Repeater Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-27 8:42 ` [PATCH v3 1/7] gpiolib: Add GPIOCHIP_NAME definition Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-28 3:38 ` Ulrich Hecht 2019-11-28 3:38 ` Ulrich Hecht 2019-12-02 21:17 ` Eugeniu Rosca 2019-12-02 21:17 ` Eugeniu Rosca 2019-12-12 10:37 ` Linus Walleij 2019-12-12 10:37 ` Linus Walleij 2019-11-27 8:42 ` [PATCH v3 2/7] gpiolib: Add support for gpiochipN-based table lookup Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-28 3:38 ` Ulrich Hecht 2019-11-28 3:38 ` Ulrich Hecht 2019-12-12 13:20 ` Linus Walleij [this message] 2019-12-12 13:20 ` Linus Walleij 2019-12-12 13:33 ` Geert Uytterhoeven 2019-12-12 13:33 ` Geert Uytterhoeven 2019-12-12 14:36 ` Linus Walleij 2019-12-12 14:36 ` Linus Walleij 2019-11-27 8:42 ` [PATCH v3 3/7] gpiolib: Add support for GPIO line " Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-28 3:39 ` Ulrich Hecht 2019-11-28 3:39 ` Ulrich Hecht 2019-12-12 13:40 ` Linus Walleij 2019-12-12 13:40 ` Linus Walleij 2019-11-27 8:42 ` [PATCH v3 4/7] dt-bindings: gpio: Add gpio-repeater bindings Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-28 3:39 ` Ulrich Hecht 2019-11-28 3:39 ` Ulrich Hecht 2019-12-03 5:51 ` Harish Jenny K N 2019-12-03 5:51 ` Harish Jenny K N 2019-12-05 21:06 ` Rob Herring 2019-12-05 21:06 ` Rob Herring 2019-12-06 9:17 ` Geert Uytterhoeven 2019-12-06 9:17 ` Geert Uytterhoeven 2019-12-06 15:03 ` Rob Herring 2019-12-06 15:03 ` Rob Herring 2020-01-06 8:12 ` Geert Uytterhoeven 2020-01-06 8:12 ` Geert Uytterhoeven 2020-01-07 9:22 ` Harish Jenny K N 2020-01-07 9:22 ` Harish Jenny K N 2020-01-16 5:09 ` Harish Jenny K N 2020-01-16 5:09 ` Harish Jenny K N 2019-11-27 8:42 ` [PATCH v3 5/7] gpio: Add GPIO Aggregator/Repeater driver Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-27 14:15 ` Eugeniu Rosca 2019-11-27 14:15 ` Eugeniu Rosca 2019-11-27 14:33 ` Geert Uytterhoeven 2019-11-27 14:33 ` Geert Uytterhoeven 2019-11-28 3:40 ` Ulrich Hecht 2019-11-28 3:40 ` Ulrich Hecht 2019-12-03 5:42 ` Harish Jenny K N 2019-12-03 5:42 ` Harish Jenny K N 2019-12-03 8:17 ` Geert Uytterhoeven 2019-12-03 8:17 ` Geert Uytterhoeven 2019-12-03 8:51 ` Harish Jenny K N 2019-12-03 8:51 ` Harish Jenny K N 2019-12-03 10:51 ` Eugeniu Rosca 2019-12-03 10:51 ` Eugeniu Rosca 2020-01-09 13:35 ` Geert Uytterhoeven 2020-01-09 13:35 ` Geert Uytterhoeven 2020-01-09 13:49 ` Eugeniu Rosca 2020-01-09 13:49 ` Eugeniu Rosca 2019-12-12 14:34 ` Linus Walleij 2019-12-12 14:34 ` Linus Walleij 2019-12-12 15:24 ` Geert Uytterhoeven 2019-12-12 15:24 ` Geert Uytterhoeven 2020-01-04 0:38 ` Linus Walleij 2020-01-04 0:38 ` Linus Walleij 2020-01-06 8:23 ` Geert Uytterhoeven 2020-01-06 8:23 ` Geert Uytterhoeven 2020-01-08 23:12 ` Linus Walleij 2020-01-08 23:12 ` Linus Walleij 2019-11-27 8:42 ` [PATCH v3 6/7] docs: gpio: Add GPIO Aggregator/Repeater documentation Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-11-28 3:41 ` Ulrich Hecht 2019-11-28 3:41 ` Ulrich Hecht 2019-12-12 14:42 ` Linus Walleij 2019-12-12 14:42 ` Linus Walleij 2019-12-12 14:48 ` Geert Uytterhoeven 2019-12-12 14:48 ` Geert Uytterhoeven 2020-01-04 0:21 ` Linus Walleij 2020-01-04 0:21 ` Linus Walleij 2020-01-06 8:06 ` Geert Uytterhoeven 2020-01-06 8:06 ` Geert Uytterhoeven 2019-11-27 8:42 ` [PATCH v3 7/7] MAINTAINERS: Add GPIO Aggregator/Repeater section Geert Uytterhoeven 2019-11-27 8:42 ` Geert Uytterhoeven 2019-12-03 5:38 ` Harish Jenny K N 2019-12-03 5:38 ` Harish Jenny K N 2020-01-18 1:46 ` [PATCH v3 0/7] gpio: Add GPIO Aggregator/Repeater Eugeniu Rosca 2020-01-18 1:46 ` Eugeniu Rosca 2020-01-20 9:33 ` Geert Uytterhoeven 2020-01-20 9:33 ` Geert Uytterhoeven 2020-01-20 12:14 ` Eugeniu Rosca 2020-01-20 12:14 ` Eugeniu Rosca
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CACRpkdYyY0eGipdK6ixZxLtdJ5px=U2mOa79VZb00NEEAEL=6g@mail.gmail.com' \ --to=linus.walleij@linaro.org \ --cc=bgolaszewski@baylibre.com \ --cc=christoffer.dall@arm.com \ --cc=corbet@lwn.net \ --cc=devicetree@vger.kernel.org \ --cc=erosca@de.adit-jv.com \ --cc=geert+renesas@glider.be \ --cc=graf@amazon.com \ --cc=harish_kandiga@mentor.com \ --cc=linux-doc@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=magnus.damm@gmail.com \ --cc=marc.zyngier@arm.com \ --cc=mark.rutland@arm.com \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=preid@electromag.com.au \ --cc=qemu-devel@nongnu.org \ --cc=robh+dt@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.