Merge tag 'irq-cleanups-2025-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq cleanups from Thomas Gleixner:
"A set of cleanups for the generic interrupt subsystem:
- Consolidate on one set of functions for the interrupt domain code
to get rid of pointlessly duplicated code with only marginal
different semantics.
- Update the documentation accordingly and consolidate the coding
style of the irqdomain header"
* tag 'irq-cleanups-2025-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
irqdomain: Consolidate coding style
irqdomain: Fix kernel-doc and add it to Documentation
Documentation: irqdomain: Update it
Documentation: irq-domain.rst: Simple improvements
Documentation: irq/concepts: Minor improvements
Documentation: irq/concepts: Add commas and reflow
irqdomain: Improve kernel-docs of functions
irqdomain: Make struct irq_domain_info variables const
irqdomain: Use irq_domain_instantiate()'s return value as initializers
irqdomain: Drop irq_linear_revmap()
pinctrl: keembay: Switch to irq_find_mapping()
irqchip/armada-370-xp: Switch to irq_find_mapping()
gpu: ipu-v3: Switch to irq_find_mapping()
gpio: idt3243x: Switch to irq_find_mapping()
sh: Switch to irq_find_mapping()
powerpc: Switch to irq_find_mapping()
irqdomain: Drop irq_domain_add_*() functions
powerpc: Switch irq_domain_add_nomap() to use fwnode
thermal: Switch to irq_domain_create_linear()
soc: Switch to irq_domain_create_*()
...
This commit is contained in:
+3
-71
@@ -480,33 +480,6 @@ struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_create_simple);
|
||||
|
||||
/**
|
||||
* irq_domain_add_legacy() - Allocate and register a legacy revmap irq_domain.
|
||||
* @of_node: pointer to interrupt controller's device tree node.
|
||||
* @size: total number of irqs in legacy mapping
|
||||
* @first_irq: first number of irq block assigned to the domain
|
||||
* @first_hwirq: first hwirq number to use for the translation. Should normally
|
||||
* be '0', but a positive integer can be used if the effective
|
||||
* hwirqs numbering does not begin at zero.
|
||||
* @ops: map/unmap domain callbacks
|
||||
* @host_data: Controller private data pointer
|
||||
*
|
||||
* Note: the map() callback will be called before this function returns
|
||||
* for all legacy interrupts except 0 (which is always the invalid irq for
|
||||
* a legacy controller).
|
||||
*/
|
||||
struct irq_domain *irq_domain_add_legacy(struct device_node *of_node,
|
||||
unsigned int size,
|
||||
unsigned int first_irq,
|
||||
irq_hw_number_t first_hwirq,
|
||||
const struct irq_domain_ops *ops,
|
||||
void *host_data)
|
||||
{
|
||||
return irq_domain_create_legacy(of_node_to_fwnode(of_node), size,
|
||||
first_irq, first_hwirq, ops, host_data);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_add_legacy);
|
||||
|
||||
struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode,
|
||||
unsigned int size,
|
||||
unsigned int first_irq,
|
||||
@@ -885,7 +858,7 @@ void of_phandle_args_to_fwspec(struct device_node *np, const u32 *args,
|
||||
{
|
||||
int i;
|
||||
|
||||
fwspec->fwnode = of_node_to_fwnode(np);
|
||||
fwspec->fwnode = of_fwnode_handle(np);
|
||||
fwspec->param_count = count;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
@@ -1308,47 +1281,6 @@ void irq_domain_reset_irq_data(struct irq_data *irq_data)
|
||||
EXPORT_SYMBOL_GPL(irq_domain_reset_irq_data);
|
||||
|
||||
#ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
|
||||
/**
|
||||
* irq_domain_create_hierarchy - Add a irqdomain into the hierarchy
|
||||
* @parent: Parent irq domain to associate with the new domain
|
||||
* @flags: Irq domain flags associated to the domain
|
||||
* @size: Size of the domain. See below
|
||||
* @fwnode: Optional fwnode of the interrupt controller
|
||||
* @ops: Pointer to the interrupt domain callbacks
|
||||
* @host_data: Controller private data pointer
|
||||
*
|
||||
* If @size is 0 a tree domain is created, otherwise a linear domain.
|
||||
*
|
||||
* If successful the parent is associated to the new domain and the
|
||||
* domain flags are set.
|
||||
* Returns pointer to IRQ domain, or NULL on failure.
|
||||
*/
|
||||
struct irq_domain *irq_domain_create_hierarchy(struct irq_domain *parent,
|
||||
unsigned int flags,
|
||||
unsigned int size,
|
||||
struct fwnode_handle *fwnode,
|
||||
const struct irq_domain_ops *ops,
|
||||
void *host_data)
|
||||
{
|
||||
struct irq_domain_info info = {
|
||||
.fwnode = fwnode,
|
||||
.size = size,
|
||||
.hwirq_max = size,
|
||||
.ops = ops,
|
||||
.host_data = host_data,
|
||||
.domain_flags = flags,
|
||||
.parent = parent,
|
||||
};
|
||||
struct irq_domain *d;
|
||||
|
||||
if (!info.size)
|
||||
info.hwirq_max = ~0U;
|
||||
|
||||
d = irq_domain_instantiate(&info);
|
||||
return IS_ERR(d) ? NULL : d;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_create_hierarchy);
|
||||
|
||||
static void irq_domain_insert_irq(int virq)
|
||||
{
|
||||
struct irq_data *data;
|
||||
@@ -2064,7 +1996,7 @@ static void irq_domain_check_hierarchy(struct irq_domain *domain)
|
||||
domain->flags |= IRQ_DOMAIN_FLAG_HIERARCHY;
|
||||
}
|
||||
#else /* CONFIG_IRQ_DOMAIN_HIERARCHY */
|
||||
/**
|
||||
/*
|
||||
* irq_domain_get_irq_data - Get irq_data associated with @virq and @domain
|
||||
* @domain: domain to match
|
||||
* @virq: IRQ number to get irq_data
|
||||
@@ -2078,7 +2010,7 @@ struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_domain_get_irq_data);
|
||||
|
||||
/**
|
||||
/*
|
||||
* irq_domain_set_info - Set the complete data for a @virq in @domain
|
||||
* @domain: Interrupt domain to match
|
||||
* @virq: IRQ number
|
||||
|
||||
Reference in New Issue
Block a user