[PATCH v2 40/57] irqdomain: Drop irq_domain_add_*() functions

Partially applied
From:Jiri Slaby (SUSE) <jirislaby@kernel.org>
Date:
Message-ID:<20250319092951.37667-41-jirislaby@kernel.org>
Patch:v2 · 40/57
Language:zh_CN
Patch-ID:76859192fc3412b9afd08551ca2cfe5787e51da0
Files:Documentation/core-api/irq/irq-domain.rstDocumentation/translations/zh_CN/core-api/irq/irq-domain.rstinclude/linux/irqdomain.hkernel/irq/irqdomain.c

Patch content 4 changed files

irq_domain_add_*() functions are unused now, so drop them. Note: The Chinese docs are touched but unfinished. I cannot parse those. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>Cc: Alex Shi <alexs@kernel.org>Cc: Yanteng Si <si.yanteng@linux.dev>Cc: Dongliang Mu <dzm91@hust.edu.cn>Cc: Jonathan Corbet <corbet@lwn.net>Cc: linux-doc@vger.kernel.org--- Documentation/core-api/irq/irq-domain.rst     | 34 ++-------- .../zh_CN/core-api/irq/irq-domain.rst         |  4 -- include/linux/irqdomain.h                     | 68 ------------------- kernel/irq/irqdomain.c                        | 27 -------- 4 files changed, 7 insertions(+), 126 deletions(-) diff --git a/Documentation/core-api/irq/irq-domain.rst b/Documentation/core-api/irq/irq-domain.rstindex 44f4ba5480df..e26ed303819d 100644--- a/Documentation/core-api/irq/irq-domain.rst+++ b/Documentation/core-api/irq/irq-domain.rst@@ -92,7 +92,6 @@ Linear  :: -	irq_domain_add_linear() 	irq_domain_create_linear()  The linear reverse map maintains a fixed size table indexed by the@@ -105,11 +104,6 @@ map are fixed time lookup for IRQ numbers, and irq_descs are only allocated for in-use IRQs.  The disadvantage is that the table must be as large as the largest possible hwirq number. -irq_domain_add_linear() and irq_domain_create_linear() are functionally-equivalent, except for the first argument is different - the former-accepts an Open Firmware specific 'struct device_node', while the latter-accepts a more general abstraction 'struct fwnode_handle'.- The majority of drivers should use the linear map.  Tree@@ -117,7 +111,6 @@ Tree  :: -	irq_domain_add_tree() 	irq_domain_create_tree()  The irq_domain maintains a radix tree map from hwirq numbers to Linux@@ -129,11 +122,6 @@ since it doesn't need to allocate a table as large as the largest hwirq number.  The disadvantage is that hwirq to IRQ number lookup is dependent on how many entries are in the table. -irq_domain_add_tree() and irq_domain_create_tree() are functionally-equivalent, except for the first argument is different - the former-accepts an Open Firmware specific 'struct device_node', while the latter-accepts a more general abstraction 'struct fwnode_handle'.- Very few drivers should need this mapping.  No Map@@ -159,8 +147,6 @@ Legacy  :: -	irq_domain_add_simple()-	irq_domain_add_legacy() 	irq_domain_create_simple() 	irq_domain_create_legacy() @@ -189,13 +175,13 @@ supported.  For example, ISA controllers would use the legacy map for mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ numbers. -Most users of legacy mappings should use irq_domain_add_simple() or-irq_domain_create_simple() which will use a legacy domain only if an IRQ range-is supplied by the system and will otherwise use a linear domain mapping.-The semantics of this call are such that if an IRQ range is specified then-descriptors will be allocated on-the-fly for it, and if no range is-specified it will fall through to irq_domain_add_linear() or-irq_domain_create_linear() which means *no* irq descriptors will be allocated.+Most users of legacy mappings should use irq_domain_create_simple()+which will use a legacy domain only if an IRQ range is supplied by the+system and will otherwise use a linear domain mapping. The semantics of+this call are such that if an IRQ range is specified then descriptors+will be allocated on-the-fly for it, and if no range is specified it+will fall through to irq_domain_create_linear() which means *no* irq+descriptors will be allocated.  A typical use case for simple domains is where an irqchip provider is supporting both dynamic and static IRQ assignments.@@ -206,12 +192,6 @@ that the driver using the simple domain call irq_create_mapping() before any irq_find_mapping() since the latter will actually work for the static IRQ assignment case. -irq_domain_add_simple() and irq_domain_create_simple() as well as-irq_domain_add_legacy() and irq_domain_create_legacy() are functionally-equivalent, except for the first argument is different - the former-accepts an Open Firmware specific 'struct device_node', while the latter-accepts a more general abstraction 'struct fwnode_handle'.- Hierarchy IRQ domain -------------------- diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rstindex ecb23cfbc9fc..913c3eda3f74 100644--- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst@@ -83,7 +83,6 @@ irq_domain映射的类型  :: -	irq_domain_add_linear() 	irq_domain_create_linear()  线性反向映射维护了一个固定大小的表,该表以hwirq号为索引。 当一个hwirq被映射@@ -104,7 +103,6 @@ irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,  :: -	irq_domain_add_tree() 	irq_domain_create_tree()  irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hwirq被映射时,@@ -138,8 +136,6 @@ Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create  :: -	irq_domain_add_simple()-	irq_domain_add_legacy() 	irq_domain_create_simple() 	irq_domain_create_legacy() diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.hindex 984d0188f9ec..bd02550df6e6 100644--- a/include/linux/irqdomain.h+++ b/include/linux/irqdomain.h@@ -338,12 +338,6 @@ struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode, 					    unsigned int first_irq, 					    const struct irq_domain_ops *ops, 					    void *host_data);-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); struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode, 					    unsigned int size, 					    unsigned int first_irq,@@ -396,40 +390,6 @@ static inline struct irq_domain *irq_find_host(struct device_node *node) 	return d; } -static inline struct irq_domain *irq_domain_add_simple(struct device_node *of_node,-						       unsigned int size,-						       unsigned int first_irq,-						       const struct irq_domain_ops *ops,-						       void *host_data)-{-	return irq_domain_create_simple(of_fwnode_handle(of_node), size, first_irq, ops, host_data);-}--/**- * irq_domain_add_linear() - Allocate and register a linear revmap irq_domain.- * @of_node: pointer to interrupt controller's device tree node.- * @size: Number of interrupts in the domain.- * @ops: map/unmap domain callbacks- * @host_data: Controller private data pointer- */-static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_node,-					 unsigned int size,-					 const struct irq_domain_ops *ops,-					 void *host_data)-{-	struct irq_domain_info info = {-		.fwnode		= of_fwnode_handle(of_node),-		.size		= size,-		.hwirq_max	= size,-		.ops		= ops,-		.host_data	= host_data,-	};-	struct irq_domain *d;--	d = irq_domain_instantiate(&info);-	return IS_ERR(d) ? NULL : d;-}- #ifdef CONFIG_IRQ_DOMAIN_NOMAP static inline struct irq_domain *irq_domain_create_nomap(struct fwnode_handle *fwnode, 					 unsigned int max_irq,@@ -452,22 +412,6 @@ static inline struct irq_domain *irq_domain_create_nomap(struct fwnode_handle *f unsigned int irq_create_direct_mapping(struct irq_domain *domain); #endif -static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node,-					 const struct irq_domain_ops *ops,-					 void *host_data)-{-	struct irq_domain_info info = {-		.fwnode		= of_fwnode_handle(of_node),-		.hwirq_max	= ~0U,-		.ops		= ops,-		.host_data	= host_data,-	};-	struct irq_domain *d;--	d = irq_domain_instantiate(&info);-	return IS_ERR(d) ? NULL : d;-}- static inline struct irq_domain *irq_domain_create_linear(struct fwnode_handle *fwnode, 					 unsigned int size, 					 const struct irq_domain_ops *ops,@@ -631,18 +575,6 @@ static inline struct irq_domain *irq_domain_create_hierarchy(struct irq_domain * 	return IS_ERR(d) ? NULL : d; } -static inline struct irq_domain *irq_domain_add_hierarchy(struct irq_domain *parent,-					    unsigned int flags,-					    unsigned int size,-					    struct device_node *node,-					    const struct irq_domain_ops *ops,-					    void *host_data)-{-	return irq_domain_create_hierarchy(parent, flags, size,-					   of_fwnode_handle(node),-					   ops, host_data);-}- int __irq_domain_alloc_irqs(struct irq_domain *domain, int irq_base, 			    unsigned int nr_irqs, int node, void *arg, 			    bool realloc,diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.cindex b5e111776285..5bb3d2bbe229 100644--- a/kernel/irq/irqdomain.c+++ b/kernel/irq/irqdomain.c@@ -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_fwnode_handle(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,-- 2.49.0