Linux GPIO subsystem development
 help / color / mirror / Atom feed
From: "Marco Scardovi (scardracs)" <mscardovi95@gmail.com>
To: Linus Walleij <linusw@kernel.org>, Bartosz Golaszewski <brgl@kernel.org>
Cc: Mika Westerberg <westeri@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"Marco Scardovi (scardracs)" <mscardovi95@gmail.com>
Subject: [PATCH 05/12] gpiolib: acpi: Declare shared structures in gpiolib-acpi.h
Date: Mon, 18 May 2026 09:53:50 +0200	[thread overview]
Message-ID: <20260518075357.112584-6-mscardovi95@gmail.com> (raw)
In-Reply-To: <20260518075357.112584-1-mscardovi95@gmail.com>

Assisted-by: Antigravity:gemini-3-flash

Signed-off-by: Marco Scardovi <mscardovi95@gmail.com>
---
 drivers/gpio/gpiolib-acpi-core.c | 43 --------------------------------
 drivers/gpio/gpiolib-acpi.h      | 39 +++++++++++++++++++++++++++--
 2 files changed, 37 insertions(+), 45 deletions(-)

diff --git a/drivers/gpio/gpiolib-acpi-core.c b/drivers/gpio/gpiolib-acpi-core.c
index 4c8cd2038aa1..7217ec5c7fae 100644
--- a/drivers/gpio/gpiolib-acpi-core.c
+++ b/drivers/gpio/gpiolib-acpi-core.c
@@ -23,50 +23,7 @@
 #include "gpiolib.h"
 #include "gpiolib-acpi.h"
 
-/**
- * struct acpi_gpio_event - ACPI GPIO event handler data
- *
- * @node:	  list-entry of the events list of the struct acpi_gpio_chip
- * @handle:	  handle of ACPI method to execute when the IRQ triggers
- * @handler:	  handler function to pass to request_irq() when requesting the IRQ
- * @pin:	  GPIO pin number on the struct gpio_chip
- * @irq:	  Linux IRQ number for the event, for request_irq() / free_irq()
- * @irqflags:	  flags to pass to request_irq() when requesting the IRQ
- * @irq_is_wake:  If the ACPI flags indicate the IRQ is a wakeup source
- * @irq_requested:True if request_irq() has been done
- * @desc:	  struct gpio_desc for the GPIO pin for this event
- */
-struct acpi_gpio_event {
-	struct list_head node;
-	acpi_handle handle;
-	irq_handler_t handler;
-	unsigned int pin;
-	unsigned int irq;
-	unsigned long irqflags;
-	bool irq_is_wake;
-	bool irq_requested;
-	struct gpio_desc *desc;
-};
 
-struct acpi_gpio_connection {
-	struct list_head node;
-	unsigned int pin;
-	struct gpio_desc *desc;
-};
-
-struct acpi_gpio_chip {
-	/*
-	 * ACPICA requires that the first field of the context parameter
-	 * passed to acpi_install_address_space_handler() is large enough
-	 * to hold struct acpi_connection_info.
-	 */
-	struct acpi_connection_info conn_info;
-	struct list_head conns;
-	struct mutex conn_lock;
-	struct gpio_chip *chip;
-	struct list_head events;
-	struct list_head deferred_req_irqs_list_entry;
-};
 
 /**
  * struct acpi_gpio_info - ACPI GPIO specific information
diff --git a/drivers/gpio/gpiolib-acpi.h b/drivers/gpio/gpiolib-acpi.h
index a90267470a4e..bd857ead9dcc 100644
--- a/drivers/gpio/gpiolib-acpi.h
+++ b/drivers/gpio/gpiolib-acpi.h
@@ -8,10 +8,13 @@
 #ifndef GPIOLIB_ACPI_H
 #define GPIOLIB_ACPI_H
 
+#include <linux/acpi.h>
 #include <linux/err.h>
-#include <linux/types.h>
-
 #include <linux/gpio/consumer.h>
+#include <linux/interrupt.h>
+#include <linux/list.h>
+#include <linux/mutex.h>
+#include <linux/types.h>
 
 struct device;
 struct fwnode_handle;
@@ -20,6 +23,38 @@ struct gpio_chip;
 struct gpio_desc;
 struct gpio_device;
 
+struct acpi_gpio_event {
+	struct list_head node;
+	acpi_handle handle;
+	irq_handler_t handler;
+	unsigned int pin;
+	unsigned int irq;
+	unsigned long irqflags;
+	bool irq_is_wake;
+	bool irq_requested;
+	struct gpio_desc *desc;
+};
+
+struct acpi_gpio_connection {
+	struct list_head node;
+	unsigned int pin;
+	struct gpio_desc *desc;
+};
+
+struct acpi_gpio_chip {
+	/*
+	 * ACPICA requires that the first field of the context parameter
+	 * passed to acpi_install_address_space_handler() is large enough
+	 * to hold struct acpi_connection_info.
+	 */
+	struct acpi_connection_info conn_info;
+	struct list_head conns;
+	struct mutex conn_lock;
+	struct gpio_chip *chip;
+	struct list_head events;
+	struct list_head deferred_req_irqs_list_entry;
+};
+
 #ifdef CONFIG_ACPI
 void acpi_gpiochip_add(struct gpio_chip *chip);
 void acpi_gpiochip_remove(struct gpio_chip *chip);
-- 
2.54.0


  parent reply	other threads:[~2026-05-18  7:54 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-18  7:53 [PATCH 00/12] gpiolib: acpi: Refactor, harden, and modularize ACPI GPIO support Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 01/12] gpiolib: acpi: Use snprintf() for ACPI event name formatting Marco Scardovi (scardracs)
2026-05-18  8:07   ` Andy Shevchenko
2026-05-18  7:53 ` [PATCH 02/12] gpiolib: acpi: Modernize string parsing in quirks layer Marco Scardovi (scardracs)
2026-05-18  8:11   ` Andy Shevchenko
2026-05-18  7:53 ` [PATCH 03/12] gpiolib: acpi: Add robust bounds-checking for GPIO pin resources Marco Scardovi (scardracs)
2026-05-18 10:33   ` Mika Westerberg
2026-05-19  7:00     ` [PATCH v2 0/2] gpiolib: acpi: Add bounds-checking and fix leak in OpRegion Marco Scardovi (scardracs)
2026-05-19  7:00       ` [PATCH 1/2] gpiolib: acpi: Add robust bounds-checking for GPIO pin resources Marco Scardovi (scardracs)
2026-05-19  7:25         ` Andy Shevchenko
2026-05-19  7:00       ` [PATCH 2/2] gpiolib: acpi: Fix resource leak in OpRegion cleanup path Marco Scardovi (scardracs)
2026-05-19  8:28         ` Andy Shevchenko
2026-05-20  7:45           ` [PATCH v3 0/2] gpiolib: acpi: Fix bounds-checking and connection leak Marco Scardovi (scardracs)
2026-05-20  7:45             ` [PATCH v3 1/2] gpiolib: acpi: Add robust bounds-checking for GPIO pin resources Marco Scardovi (scardracs)
2026-06-02  7:34               ` Andy Shevchenko
2026-05-20  7:45             ` [PATCH v3 2/2] Fixes: gpiolib: acpi: resource leak in OpRegion Marco Scardovi (scardracs)
2026-06-02  7:45               ` Andy Shevchenko
2026-06-02  7:47             ` [PATCH v3 0/2] gpiolib: acpi: Fix bounds-checking and connection leak Andy Shevchenko
2026-05-18  7:53 ` [PATCH 04/12] gpiolib: acpi: Fix resource leak in OpRegion cleanup path Marco Scardovi (scardracs)
2026-05-18  7:53 ` Marco Scardovi (scardracs) [this message]
2026-05-18  8:21   ` [PATCH 05/12] gpiolib: acpi: Declare shared structures in gpiolib-acpi.h Andy Shevchenko
2026-05-18  7:53 ` [PATCH 06/12] gpiolib: acpi: Expose core GPIO resource and OpRegion helpers Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 07/12] gpiolib: acpi: Add dedicated Operation Region module Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 08/12] gpiolib: acpi: Divert OpRegion registration callbacks from core Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 09/12] gpiolib: acpi: Remove unused static address space emulation " Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 10/12] gpiolib: acpi: Declare shared event helpers in gpiolib-acpi.h Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 11/12] gpiolib: acpi: Add dedicated ACPI GPIO events module Marco Scardovi (scardracs)
2026-05-18  7:53 ` [PATCH 12/12] gpiolib: acpi: Decouple Event and Interrupt handling from core Marco Scardovi (scardracs)
2026-05-18  8:19 ` [PATCH 00/12] gpiolib: acpi: Refactor, harden, and modularize ACPI GPIO support Andy Shevchenko

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=20260518075357.112584-6-mscardovi95@gmail.com \
    --to=mscardovi95@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=brgl@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=westeri@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: 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