]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol
authorChristophe RICARD <christophe.ricard@gmail.com>
Wed, 23 Dec 2015 22:25:33 +0000 (23:25 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Jan 2016 02:20:25 +0000 (03:20 +0100)
acpi_gsi_get_irq_type could be use out of GSI purpose.

Rename and make it available as a resource function.

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/gsi.c
drivers/acpi/resource.c
include/linux/acpi.h

index fa4585a6914e912a402ec339d4bd241dd0fadac1..ee9e0f27b2bf43fc33ad1008736f8837f0a640cd 100644 (file)
@@ -17,25 +17,6 @@ enum acpi_irq_model_id acpi_irq_model;
 
 static struct fwnode_handle *acpi_gsi_domain_id;
 
-static unsigned int acpi_gsi_get_irq_type(int trigger, int polarity)
-{
-       switch (polarity) {
-       case ACPI_ACTIVE_LOW:
-               return trigger == ACPI_EDGE_SENSITIVE ?
-                      IRQ_TYPE_EDGE_FALLING :
-                      IRQ_TYPE_LEVEL_LOW;
-       case ACPI_ACTIVE_HIGH:
-               return trigger == ACPI_EDGE_SENSITIVE ?
-                      IRQ_TYPE_EDGE_RISING :
-                      IRQ_TYPE_LEVEL_HIGH;
-       case ACPI_ACTIVE_BOTH:
-               if (trigger == ACPI_EDGE_SENSITIVE)
-                       return IRQ_TYPE_EDGE_BOTH;
-       default:
-               return IRQ_TYPE_NONE;
-       }
-}
-
 /**
  * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI
  * @gsi: GSI IRQ number to map
@@ -82,7 +63,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
 
        fwspec.fwnode = acpi_gsi_domain_id;
        fwspec.param[0] = gsi;
-       fwspec.param[1] = acpi_gsi_get_irq_type(trigger, polarity);
+       fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity);
        fwspec.param_count = 2;
 
        return irq_create_fwspec_mapping(&fwspec);
index cdc5c2599bebcc1a95ca2f29a525a5e63fab3b0f..d02fd53042a5d95603f1cd99176bff6b799dd9dd 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/export.h>
 #include <linux/ioport.h>
 #include <linux/slab.h>
+#include <linux/irq.h>
 
 #ifdef CONFIG_X86
 #define valid_IRQ(i) (((i) != 0) && ((i) != 2))
@@ -336,6 +337,31 @@ unsigned long acpi_dev_irq_flags(u8 triggering, u8 polarity, u8 shareable)
 }
 EXPORT_SYMBOL_GPL(acpi_dev_irq_flags);
 
+/**
+ * acpi_dev_get_irq_type - Determine irq type.
+ * @triggering: Triggering type as provided by ACPI.
+ * @polarity: Interrupt polarity as provided by ACPI.
+ */
+unsigned int acpi_dev_get_irq_type(int triggering, int polarity)
+{
+       switch (polarity) {
+       case ACPI_ACTIVE_LOW:
+               return triggering == ACPI_EDGE_SENSITIVE ?
+                      IRQ_TYPE_EDGE_FALLING :
+                      IRQ_TYPE_LEVEL_LOW;
+       case ACPI_ACTIVE_HIGH:
+               return triggering == ACPI_EDGE_SENSITIVE ?
+                      IRQ_TYPE_EDGE_RISING :
+                      IRQ_TYPE_LEVEL_HIGH;
+       case ACPI_ACTIVE_BOTH:
+               if (triggering == ACPI_EDGE_SENSITIVE)
+                       return IRQ_TYPE_EDGE_BOTH;
+       default:
+               return IRQ_TYPE_NONE;
+       }
+}
+EXPORT_SYMBOL_GPL(acpi_dev_get_irq_type);
+
 static void acpi_dev_irqresource_disabled(struct resource *res, u32 gsi)
 {
        res->start = gsi;
index 1991aea2ec4cff401b84db2841ac60fe28f00080..42adb80f11ca2f1eb13175ef8714e8c0829fb3a4 100644 (file)
@@ -318,6 +318,7 @@ bool acpi_dev_resource_address_space(struct acpi_resource *ares,
 bool acpi_dev_resource_ext_address_space(struct acpi_resource *ares,
                                         struct resource_win *win);
 unsigned long acpi_dev_irq_flags(u8 triggering, u8 polarity, u8 shareable);
+unsigned int acpi_dev_get_irq_type(int triggering, int polarity);
 bool acpi_dev_resource_interrupt(struct acpi_resource *ares, int index,
                                 struct resource *res);