Re: [PATCH v2] irqdomain: Delete irq_domain_add_linear()

From: Yanteng Si

Date: Tue Sep 01 2026 - 22:45:25 EST



在 2026/9/1 15:32, Dongliang Mu 写道:

On 9/1/26 3:04 PM, Jiri Slaby (SUSE) wrote:
7.3-rc1 is free of calls to irq_domain_add_linear(), so it can be
deleted at last.

According to Dongliang Mu, the paragraph in the Chinese docs is now
obsolete. So drop it completely.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxx>
Cc: Radu Rendec <radu@xxxxxxxxxx>
Cc: Alex Shi <alexs@xxxxxxxxxx>
Cc: Yanteng Si <si.yanteng@xxxxxxxxx>
Cc: Dongliang Mu <dzm91@xxxxxxxxxxx>

Reviewed-by: Dongliang Mu <dzm91@xxxxxxxxxxx>

Reviewed-by: Yanteng Si <si.yanteng@xxxxxxxxx>


Thanks,

Yanteng



---
[v2] drop the whole paragraph (Dongliang Mu)
---
  .../zh_CN/core-api/irq/irq-domain.rst          |  4 ----
  include/linux/irqdomain.h                      | 18 ------------------
  2 files changed, 22 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..7317cf5355c9 100644
--- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
@@ -90,10 +90,6 @@ irq_domain映射的类型
  映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。 缺点是该表
  必须尽可能大的hwirq号。
  -irq_domain_add_linear()和irq_domain_create_linear()在功能上是等价的,
-除了第一个参数不同--前者接受一个Open Firmware特定的 'struct device_node' 而
-后者接受一个更通用的抽象 '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,