ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol
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>
This commit is contained in:
parent
74bf8efb5f
commit
55a93417c2
|
@ -17,25 +17,6 @@ enum acpi_irq_model_id acpi_irq_model;
|
||||||
|
|
||||||
static struct fwnode_handle *acpi_gsi_domain_id;
|
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
|
* acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI
|
||||||
* @gsi: GSI IRQ number to map
|
* @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.fwnode = acpi_gsi_domain_id;
|
||||||
fwspec.param[0] = gsi;
|
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;
|
fwspec.param_count = 2;
|
||||||
|
|
||||||
return irq_create_fwspec_mapping(&fwspec);
|
return irq_create_fwspec_mapping(&fwspec);
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/irq.h>
|
||||||
|
|
||||||
#ifdef CONFIG_X86
|
#ifdef CONFIG_X86
|
||||||
#define valid_IRQ(i) (((i) != 0) && ((i) != 2))
|
#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);
|
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)
|
static void acpi_dev_irqresource_disabled(struct resource *res, u32 gsi)
|
||||||
{
|
{
|
||||||
res->start = gsi;
|
res->start = gsi;
|
||||||
|
|
|
@ -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,
|
bool acpi_dev_resource_ext_address_space(struct acpi_resource *ares,
|
||||||
struct resource_win *win);
|
struct resource_win *win);
|
||||||
unsigned long acpi_dev_irq_flags(u8 triggering, u8 polarity, u8 shareable);
|
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,
|
bool acpi_dev_resource_interrupt(struct acpi_resource *ares, int index,
|
||||||
struct resource *res);
|
struct resource *res);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue