mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
Stable tag for the GPIO tree to pull from
-----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmf04k0THHRnbHhAbGlu dXRyb25peC5kZQAKCRCmGPVMDXSYocLBD/0bUwFH+WqgO+nHEiVulSgaYBZvyX8E fIVSQBCVmZdjmJSeuzyeaw+NIe76I4ISHZ9TH93Ki88f4siTkKhjl0M8W01sq4m6 X37lGuZZJF1nqEAtU1qqZ4g+MyN/lLVHD8fe05D9fGimX7d1zvugE4xkSR8rIK6T nTLm90O5t8VbSwERCHhUK0ZuayvWUnLqZQBOU0CRK1ikyG0WXmYb8lTpU8PKM8tT xDfStiU2X3ERDqJflIJanz+o8fEcEm5LF45MbhQsXvgUQb0PRl4HHOnESKvhbGc/ JQ83ocUXIQ7eeUGx8nZVmN6K/8NrSjCG8Dvwe6SLBgeIkdAHfyyi6igdfWaYG/h+ LTsF9OODYDKcLGaf4wg+tK/Z46HC9aHnEvCDLO9A9h0vHHtXKdldkccmmFuPsKLF JN2FBNYcldItEjCHtRixJBdT1EpSy46VghJrnOD6tPvBzwqHYYSFbkrlWv1NF3Sw 8hg5bYgemQ+8lYirsPWhAUCxgwb7f+IsNn/VwKufJ8ohr85O4EMOS+IDFtiKQJEQ A9KDRfzOwSUj0Fp5Y26s8rGSUHDcXqnkQZsJsHx8Bwe3SSndZtstTUgNhCkl9VXY aqxq+dKtvXhE4ZZZwMYa4BDoGqrWbJiGYbSidmTaDfc56LxOa4MVh1kwAo0WcEDY wsK6a7fRSsWYWw== =pJLt -----END PGP SIGNATURE----- Merge tag 'irqdomain-04-08-25' into irq/cleanups Merge to get the latest updates for the irqdomain cleanup series.
This commit is contained in:
commit
8288eac57d
|
|
@ -571,16 +571,16 @@ int irq_domain_xlate_twocell(struct irq_domain *d, struct device_node *ctrlr,
|
|||
int irq_domain_xlate_onetwocell(struct irq_domain *d, struct device_node *ctrlr,
|
||||
const u32 *intspec, unsigned int intsize,
|
||||
irq_hw_number_t *out_hwirq, unsigned int *out_type);
|
||||
int irq_domain_xlate_twothreecell(struct irq_domain *d, struct device_node *ctrlr,
|
||||
const u32 *intspec, unsigned int intsize,
|
||||
irq_hw_number_t *out_hwirq, unsigned int *out_type);
|
||||
|
||||
int irq_domain_translate_twocell(struct irq_domain *d,
|
||||
struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq,
|
||||
unsigned int *out_type);
|
||||
|
||||
int irq_domain_translate_onecell(struct irq_domain *d,
|
||||
struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq,
|
||||
unsigned int *out_type);
|
||||
int irq_domain_translate_onecell(struct irq_domain *d, struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq, unsigned int *out_type);
|
||||
int irq_domain_translate_twocell(struct irq_domain *d, struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq, unsigned int *out_type);
|
||||
int irq_domain_translate_twothreecell(struct irq_domain *d, struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq, unsigned int *out_type);
|
||||
|
||||
/* IPI functions */
|
||||
int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask *dest);
|
||||
|
|
|
|||
|
|
@ -1132,6 +1132,31 @@ int irq_domain_xlate_twocell(struct irq_domain *d, struct device_node *ctrlr,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_xlate_twocell);
|
||||
|
||||
/**
|
||||
* irq_domain_xlate_twothreecell() - Generic xlate for direct two or three cell bindings
|
||||
* @d: Interrupt domain involved in the translation
|
||||
* @ctrlr: The device tree node for the device whose interrupt is translated
|
||||
* @intspec: The interrupt specifier data from the device tree
|
||||
* @intsize: The number of entries in @intspec
|
||||
* @out_hwirq: Pointer to storage for the hardware interrupt number
|
||||
* @out_type: Pointer to storage for the interrupt type
|
||||
*
|
||||
* Device Tree interrupt specifier translation function for two or three
|
||||
* cell bindings, where the cell values map directly to the hardware
|
||||
* interrupt number and the type specifier.
|
||||
*/
|
||||
int irq_domain_xlate_twothreecell(struct irq_domain *d, struct device_node *ctrlr,
|
||||
const u32 *intspec, unsigned int intsize,
|
||||
irq_hw_number_t *out_hwirq, unsigned int *out_type)
|
||||
{
|
||||
struct irq_fwspec fwspec;
|
||||
|
||||
of_phandle_args_to_fwspec(ctrlr, intspec, intsize, &fwspec);
|
||||
|
||||
return irq_domain_translate_twothreecell(d, &fwspec, out_hwirq, out_type);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_xlate_twothreecell);
|
||||
|
||||
/**
|
||||
* irq_domain_xlate_onetwocell() - Generic xlate for one or two cell bindings
|
||||
* @d: Interrupt domain involved in the translation
|
||||
|
|
@ -1216,6 +1241,37 @@ int irq_domain_translate_twocell(struct irq_domain *d,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_translate_twocell);
|
||||
|
||||
/**
|
||||
* irq_domain_translate_twothreecell() - Generic translate for direct two or three cell
|
||||
* bindings
|
||||
* @d: Interrupt domain involved in the translation
|
||||
* @fwspec: The firmware interrupt specifier to translate
|
||||
* @out_hwirq: Pointer to storage for the hardware interrupt number
|
||||
* @out_type: Pointer to storage for the interrupt type
|
||||
*
|
||||
* Firmware interrupt specifier translation function for two or three cell
|
||||
* specifications, where the parameter values map directly to the hardware
|
||||
* interrupt number and the type specifier.
|
||||
*/
|
||||
int irq_domain_translate_twothreecell(struct irq_domain *d, struct irq_fwspec *fwspec,
|
||||
unsigned long *out_hwirq, unsigned int *out_type)
|
||||
{
|
||||
if (fwspec->param_count == 2) {
|
||||
*out_hwirq = fwspec->param[0];
|
||||
*out_type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (fwspec->param_count == 3) {
|
||||
*out_hwirq = fwspec->param[1];
|
||||
*out_type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_translate_twothreecell);
|
||||
|
||||
int irq_domain_alloc_descs(int virq, unsigned int cnt, irq_hw_number_t hwirq,
|
||||
int node, const struct irq_affinity_desc *affinity)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user