[PATCH] irqdomain: Delete irq_domain_add_linear()

Jiri Slaby (SUSE) posted 1 patch 3 weeks, 4 days ago
There is a newer version of this series
.../zh_CN/core-api/irq/irq-domain.rst          |  4 +---
include/linux/irqdomain.h                      | 18 ------------------
2 files changed, 1 insertion(+), 21 deletions(-)
[PATCH] irqdomain: Delete irq_domain_add_linear()
Posted by Jiri Slaby (SUSE) 3 weeks, 4 days ago
7.3-rc1 is free of calls to irq_domain_add_linear(), so it can be
deleted at last.

I used Gemini to update zh_CN/core-api/irq/irq-domain.rst too. Hopefully
the result is correct -- I really cannot read/write Chinese ("CHINESE
DOCUMENTATION" maintainers CCed).

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Assisted-by: LLM (Gemini) # zh_CN
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Radu Rendec <radu@rendec.net>
Cc: Alex Shi <alexs@kernel.org>
Cc: Yanteng Si <si.yanteng@linux.dev>
Cc: Dongliang Mu <dzm91@hust.edu.cn>
---
 .../zh_CN/core-api/irq/irq-domain.rst          |  4 +---
 include/linux/irqdomain.h                      | 18 ------------------
 2 files changed, 1 insertion(+), 21 deletions(-)

diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
index aaefeda0e164..5ce16d2e6a0e 100644
--- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
@@ -90,9 +90,7 @@ irq_domain映射的类型
 映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。 缺点是该表
 必须尽可能大的hwirq号。
 
-irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
-除了第一个参数不同--前者接受一个Open Firmware特定的 'struct device_node' 而
-后者接受一个更通用的抽象 'struct fwnode_handle' 。
+irq_domain_create_linear() 接受一个通用的抽象 struct fwnode_handle 作为第一个参数。
 
 大多数驱动应该使用线性映射
 
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index 73c25d40846c..3ba75a4ed3da 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -752,24 +752,6 @@ static inline void msi_device_domain_free_wired(struct irq_domain *domain, unsig
 }
 #endif
 
-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;
-}
-
 #else /* CONFIG_IRQ_DOMAIN */
 static inline void irq_dispose_mapping(unsigned int virq) { }
 static inline struct irq_domain *irq_find_matching_fwnode(struct fwnode_handle *fwnode,
-- 
2.55.0

Re: [PATCH] irqdomain: Delete irq_domain_add_linear()
Posted by Thomas Gleixner 3 weeks, 1 day ago
On Tue, Sep 01 2026 at 08:47, Jiri Slaby wrote:
> 7.3-rc1 is free of calls to irq_domain_add_linear(), so it can be
> deleted at last.
>
> I used Gemini to update zh_CN/core-api/irq/irq-domain.rst too. Hopefully
> the result is correct -- I really cannot read/write Chinese ("CHINESE
> DOCUMENTATION" maintainers CCed).

It's trivial enough to translate the whole paragraph with Gemini or
google translate:

  "irq_domain_add_linear() and irq_domain_create_linear() are
   functionally equivalent, except for the first parameter: the former
   accepts an Open Firmware-specific 'struct device_node', while the
   latter accepts a more generic abstract 'struct fwnode_handle'."

which makes it obvious that it can be deleted completely, no?

Thanks,

        tglx
Re: [PATCH] irqdomain: Delete irq_domain_add_linear()
Posted by Jiri Slaby 3 weeks, 1 day ago
On 04. 09. 26, 8:34, Thomas Gleixner wrote:
> On Tue, Sep 01 2026 at 08:47, Jiri Slaby wrote:
>> 7.3-rc1 is free of calls to irq_domain_add_linear(), so it can be
>> deleted at last.
>>
>> I used Gemini to update zh_CN/core-api/irq/irq-domain.rst too. Hopefully
>> the result is correct -- I really cannot read/write Chinese ("CHINESE
>> DOCUMENTATION" maintainers CCed).
> 
> It's trivial enough to translate the whole paragraph with Gemini or
> google translate:
> 
>    "irq_domain_add_linear() and irq_domain_create_linear() are
>     functionally equivalent, except for the first parameter: the former
>     accepts an Open Firmware-specific 'struct device_node', while the
>     latter accepts a more generic abstract 'struct fwnode_handle'."
> 
> which makes it obvious that it can be deleted completely, no?

Yes, that happened in v2.

-- 
js
suse labs
Re: [PATCH] irqdomain: Delete irq_domain_add_linear()
Posted by Dongliang Mu 3 weeks, 4 days ago
On 9/1/26 2:47 PM, Jiri Slaby (SUSE) wrote:
> 7.3-rc1 is free of calls to irq_domain_add_linear(), so it can be
> deleted at last.
>
> I used Gemini to update zh_CN/core-api/irq/irq-domain.rst too. Hopefully
> the result is correct -- I really cannot read/write Chinese ("CHINESE
> DOCUMENTATION" maintainers CCed).
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Assisted-by: LLM (Gemini) # zh_CN
> Cc: Thomas Gleixner <tglx@kernel.org>
> Cc: Radu Rendec <radu@rendec.net>
> Cc: Alex Shi <alexs@kernel.org>
> Cc: Yanteng Si <si.yanteng@linux.dev>
> Cc: Dongliang Mu <dzm91@hust.edu.cn>
> ---
>   .../zh_CN/core-api/irq/irq-domain.rst          |  4 +---
>   include/linux/irqdomain.h                      | 18 ------------------
>   2 files changed, 1 insertion(+), 21 deletions(-)
>
> diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> index aaefeda0e164..5ce16d2e6a0e 100644
> --- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> +++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
> @@ -90,9 +90,7 @@ irq_domain映射的类型
>   映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。 缺点是该表
>   必须尽可能大的hwirq号。
>   
> -irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
> -除了第一个参数不同--前者接受一个Open Firmware特定的 'struct device_node' 而
> -后者接受一个更通用的抽象 'struct fwnode_handle' 。
> +irq_domain_create_linear() 接受一个通用的抽象 struct fwnode_handle 作为第一个参数。

 From the context, I think we can directly delete the whole paragraph.

Dongliang Mu

>   
>   大多数驱动应该使用线性映射
>   
> diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
> index 73c25d40846c..3ba75a4ed3da 100644
> --- a/include/linux/irqdomain.h
> +++ b/include/linux/irqdomain.h
> @@ -752,24 +752,6 @@ static inline void msi_device_domain_free_wired(struct irq_domain *domain, unsig
>   }
>   #endif
>   
> -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;
> -}
> -
>   #else /* CONFIG_IRQ_DOMAIN */
>   static inline void irq_dispose_mapping(unsigned int virq) { }
>   static inline struct irq_domain *irq_find_matching_fwnode(struct fwnode_handle *fwnode,