linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Aaro Koskinen <aaro.koskinen@iki.fi>,
	Janusz Krzysztofik <jmkrzyszt@gmail.com>,
	Tony Lindgren <tony@atomide.com>,
	Russell King <linux@armlinux.org.uk>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	Dipen Patel <dipenp@nvidia.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Hans de Goede <hdegoede@redhat.com>,
	Mark Gross <markgross@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-acpi@vger.kernel.org, timestamp@lists.linux.dev,
	linux-tegra@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [RFT PATCH 15/21] arm: omap1: ams-delta: stop using gpiochip_find()
Date: Tue,  5 Sep 2023 20:53:03 +0200	[thread overview]
Message-ID: <20230905185309.131295-16-brgl@bgdev.pl> (raw)
In-Reply-To: <20230905185309.131295-1-brgl@bgdev.pl>

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

gpiochip_find() is going away as it's not hot-unplug safe. This platform
is not affected by any of the related problems as this GPIO controller
cannot really go away but in order to finally remove this function, we
need to convert it to using gpio_device_find() as well.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 arch/arm/mach-omap1/board-ams-delta.c | 36 +++++++++++++--------------
 1 file changed, 17 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c
index 9808cd27e2cf..a28ea6ac1eba 100644
--- a/arch/arm/mach-omap1/board-ams-delta.c
+++ b/arch/arm/mach-omap1/board-ams-delta.c
@@ -560,22 +560,6 @@ static struct gpiod_lookup_table *ams_delta_gpio_tables[] __initdata = {
 	&ams_delta_nand_gpio_table,
 };
 
-/*
- * Some drivers may not use GPIO lookup tables but need to be provided
- * with GPIO numbers.  The same applies to GPIO based IRQ lines - some
- * drivers may even not use GPIO layer but expect just IRQ numbers.
- * We could either define GPIO lookup tables then use them on behalf
- * of those devices, or we can use GPIO driver level methods for
- * identification of GPIO and IRQ numbers. For the purpose of the latter,
- * defina a helper function which identifies GPIO chips by their labels.
- */
-static int gpiochip_match_by_label(struct gpio_chip *chip, void *data)
-{
-	char *label = data;
-
-	return !strcmp(label, chip->label);
-}
-
 static struct gpiod_hog ams_delta_gpio_hogs[] = {
 	GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_KEYBRD_DATAOUT, "keybrd_dataout",
 		 GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW),
@@ -615,14 +599,28 @@ static void __init modem_assign_irq(struct gpio_chip *chip)
  */
 static void __init omap_gpio_deps_init(void)
 {
+	struct gpio_device *gdev;
 	struct gpio_chip *chip;
 
-	chip = gpiochip_find(OMAP_GPIO_LABEL, gpiochip_match_by_label);
-	if (!chip) {
-		pr_err("%s: OMAP GPIO chip not found\n", __func__);
+	/*
+	 * Some drivers may not use GPIO lookup tables but need to be provided
+	 * with GPIO numbers. The same applies to GPIO based IRQ lines - some
+	 * drivers may even not use GPIO layer but expect just IRQ numbers.
+	 * We could either define GPIO lookup tables then use them on behalf
+	 * of those devices, or we can use GPIO driver level methods for
+	 * identification of GPIO and IRQ numbers.
+	 *
+	 * This reference will be leaked but that's alright as this device
+	 * never goes down.
+	 */
+	gdev = gpio_device_find_by_label(OMAP_GPIO_LABEL);
+	if (!gdev) {
+		pr_err("%s: OMAP GPIO device not found\n", __func__);
 		return;
 	}
 
+	chip = gpio_device_get_chip(gdev);
+
 	/*
 	 * Start with FIQ initialization as it may have to request
 	 * and release successfully each OMAP GPIO pin in turn.
-- 
2.39.2


  parent reply	other threads:[~2023-09-05 19:10 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-05 18:52 [PATCH 00/21] gpio: convert users to gpio_device_find() and remove gpiochip_find() Bartosz Golaszewski
2023-09-05 18:52 ` [PATCH 01/21] gpiolib: make gpio_device_get() and gpio_device_put() public Bartosz Golaszewski
2023-09-07  7:02   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 02/21] gpiolib: provide gpio_device_find() Bartosz Golaszewski
2023-09-06 14:10   ` Andy Shevchenko
2023-09-11 13:14     ` Bartosz Golaszewski
2023-09-07  7:05   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 03/21] gpiolib: provide gpio_device_find_by_label() Bartosz Golaszewski
2023-09-06 14:13   ` Andy Shevchenko
2023-09-07  7:06   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 04/21] gpiolib: provide gpio_device_get_desc() Bartosz Golaszewski
2023-09-06 14:15   ` Andy Shevchenko
2023-09-07  7:07   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 05/21] gpiolib: add support for scope-based management to gpio_device Bartosz Golaszewski
2023-09-07  7:09   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 06/21] gpiolib: provide gpiod_to_device() Bartosz Golaszewski
2023-09-06 14:17   ` Andy Shevchenko
2023-09-07  7:10   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 07/21] gpiolib: provide gpio_device_get_base() Bartosz Golaszewski
2023-09-07  7:17   ` Linus Walleij
2023-09-07  7:57     ` Bartosz Golaszewski
2023-10-03 20:32       ` Dipen Patel
2023-09-05 18:52 ` [PATCH 08/21] gpio: acpi: provide acpi_gpio_device_free_interrupts() Bartosz Golaszewski
2023-09-06  7:10   ` Mika Westerberg
2023-09-05 18:52 ` [PATCH 09/21] gpiolib: reluctantly provide gpio_device_get_chip() Bartosz Golaszewski
2023-09-07  7:19   ` Linus Walleij
2023-09-05 18:52 ` [PATCH 10/21] gpiolib: replace find_chip_by_name() with gpio_device_find_by_label() Bartosz Golaszewski
2023-09-06 14:23   ` Andy Shevchenko
2023-09-07  7:20   ` Linus Walleij
2023-09-05 18:52 ` [RFT PATCH 11/21] platform: x86: android-tablets: don't access GPIOLIB private members Bartosz Golaszewski
2023-09-06 13:01   ` Hans de Goede
2023-09-06 14:27     ` Bartosz Golaszewski
2023-09-09 14:17       ` Hans de Goede
2023-09-11 10:05         ` Andy Shevchenko
2023-09-05 18:53 ` [PATCH 12/21] hte: allow building modules with COMPILE_TEST enabled Bartosz Golaszewski
2023-09-07  7:22   ` Linus Walleij
2023-09-07  7:31     ` Bartosz Golaszewski
2023-09-05 18:53 ` [PATCH 13/21] hte: tegra194: improve the GPIO-related comment Bartosz Golaszewski
2023-09-07  7:24   ` Linus Walleij
2023-09-05 18:53 ` [RFT PATCH 14/21] hte: tegra194: don't access struct gpio_chip Bartosz Golaszewski
2023-09-06 14:47   ` Andy Shevchenko
2023-09-07  7:28   ` Linus Walleij
2023-10-04 12:00     ` Bartosz Golaszewski
2023-10-04 20:30       ` Dipen Patel
2023-10-04 20:33         ` Dipen Patel
2023-10-04 22:54           ` Dipen Patel
2023-10-04 23:51             ` Dipen Patel
2023-10-05 13:48               ` Bartosz Golaszewski
2023-10-05 18:12                 ` Dipen Patel
2023-10-05 19:05                   ` Bartosz Golaszewski
2023-10-05 19:43                     ` Dipen Patel
2023-10-05 19:47                       ` Bartosz Golaszewski
2023-10-09  6:48                       ` Bartosz Golaszewski
2023-10-09 16:34                         ` Dipen Patel
2023-10-09 17:46                           ` Dipen Patel
2023-09-05 18:53 ` Bartosz Golaszewski [this message]
2023-09-06 14:48   ` [RFT PATCH 15/21] arm: omap1: ams-delta: stop using gpiochip_find() Andy Shevchenko
2023-09-06 14:56     ` Bartosz Golaszewski
2023-09-07  7:31   ` Linus Walleij
2023-09-08 18:07     ` Janusz Krzysztofik
2023-09-11 11:09       ` Bartosz Golaszewski
2023-09-11 12:50         ` Tony Lindgren
2023-09-11 17:17         ` Janusz Krzysztofik
2023-09-07  7:35   ` Linus Walleij
2023-09-07  7:57     ` Bartosz Golaszewski
2023-10-04 11:59   ` Bartosz Golaszewski
2023-09-05 18:53 ` [PATCH 16/21] gpio: of: correct notifier return codes Bartosz Golaszewski
2023-09-07  7:36   ` Linus Walleij
2023-09-05 18:53 ` [PATCH 17/21] gpio: of: replace gpiochip_find_* with gpio_device_find_* Bartosz Golaszewski
2023-09-07  7:37   ` Linus Walleij
2023-09-07  7:38   ` Linus Walleij
2023-09-05 18:53 ` [PATCH 18/21] gpio: acpi: replace gpiochip_find() with gpio_device_find() Bartosz Golaszewski
2023-09-06 14:50   ` Andy Shevchenko
2023-09-07  7:39   ` Linus Walleij
2023-09-05 18:53 ` [PATCH 19/21] gpio: swnode: replace gpiochip_find() with gpio_device_find_by_label() Bartosz Golaszewski
2023-09-06 14:52   ` Andy Shevchenko
2023-09-07  7:40   ` Linus Walleij
2024-01-24 14:59   ` Paul Cercueil
2024-01-24 15:04     ` Bartosz Golaszewski
2024-01-24 15:11       ` Paul Cercueil
2024-01-24 15:18       ` Paul Cercueil
2023-09-05 18:53 ` [PATCH 20/21] gpio: sysfs: drop the mention of gpiochip_find() from sysfs code Bartosz Golaszewski
2023-09-07  7:40   ` Linus Walleij
2023-09-05 18:53 ` [PATCH 21/21] gpiolib: remove gpiochip_find() Bartosz Golaszewski
2023-09-06 14:53   ` Andy Shevchenko
2023-09-07  7:42   ` Linus Walleij
2023-09-07  7:00 ` [PATCH 00/21] gpio: convert users to gpio_device_find() and " Linus Walleij

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=20230905185309.131295-16-brgl@bgdev.pl \
    --to=brgl@bgdev.pl \
    --cc=aaro.koskinen@iki.fi \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=dipenp@nvidia.com \
    --cc=hdegoede@redhat.com \
    --cc=jmkrzyszt@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=markgross@kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=timestamp@lists.linux.dev \
    --cc=tony@atomide.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).