lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250115085409.1629787-11-jirislaby@kernel.org>
Date: Wed, 15 Jan 2025 09:53:59 +0100
From: "Jiri Slaby (SUSE)" <jirislaby@...nel.org>
To: tglx@...utronix.de
Cc: maz@...nel.org,
	linux-kernel@...r.kernel.org,
	"Jiri Slaby (SUSE)" <jirislaby@...nel.org>
Subject: [PATCH 10/18] irqdomain: Rename _create functions to _add_*_fwnode

Continuing the unifying idea of the previous patch, all "_create"
functions are renamed to "_add" and appended with a "_fwnode" suffix.

Now, the interface is:
* dom = irq_domain_add_linear_fwnode(fwnode, ...)
* irq_domain_remove(dom)

Note: Sorry, I am not capable of wrapping chinese text properly.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@...nel.org>
---
 Documentation/core-api/irq/irq-domain.rst     | 42 +++++++++----------
 .../driver-api/driver-model/devres.rst        |  2 +-
 .../zh_CN/core-api/irq/irq-domain.rst         | 22 +++++-----
 arch/arm64/kvm/arch_timer.c                   |  2 +-
 arch/mips/pci/pci-xtalk-bridge.c              |  2 +-
 arch/mips/sgi-ip27/ip27-irq.c                 |  2 +-
 arch/mips/sgi-ip30/ip30-irq.c                 |  2 +-
 arch/powerpc/platforms/powernv/pci-ioda.c     |  2 +-
 arch/powerpc/platforms/pseries/msi.c          |  2 +-
 arch/powerpc/sysdev/xics/xics-common.c        |  2 +-
 arch/powerpc/sysdev/xive/common.c             |  2 +-
 arch/x86/kernel/apic/io_apic.c                |  2 +-
 arch/x86/kernel/apic/vector.c                 |  2 +-
 arch/x86/platform/uv/uv_irq.c                 |  2 +-
 drivers/acpi/irq.c                            |  2 +-
 drivers/gpio/gpio-bcm-kona.c                  |  2 +-
 drivers/gpio/gpio-mockup.c                    |  2 +-
 drivers/gpio/gpio-mpc8xxx.c                   |  2 +-
 drivers/gpio/gpio-sim.c                       |  2 +-
 drivers/gpio/gpio-uniphier.c                  |  2 +-
 drivers/gpio/gpio-xgene-sb.c                  |  2 +-
 drivers/gpio/gpiolib.c                        |  4 +-
 drivers/hid/hid-rmi.c                         |  2 +-
 drivers/i2c/i2c-core-base.c                   |  2 +-
 drivers/iio/dummy/iio_dummy_evgen.c           |  2 +-
 drivers/input/rmi4/rmi_driver.c               |  2 +-
 drivers/iommu/amd/init.c                      |  2 +-
 drivers/iommu/amd/iommu.c                     |  2 +-
 drivers/iommu/hyperv-iommu.c                  |  2 +-
 drivers/iommu/intel/irq_remapping.c           |  2 +-
 drivers/irqchip/irq-apple-aic.c               |  2 +-
 drivers/irqchip/irq-armada-370-xp.c           |  2 +-
 drivers/irqchip/irq-bcm2836.c                 |  2 +-
 drivers/irqchip/irq-gic-v2m.c                 |  2 +-
 drivers/irqchip/irq-gic-v3-its.c              |  2 +-
 drivers/irqchip/irq-gic-v3-mbi.c              |  2 +-
 drivers/irqchip/irq-gic-v3.c                  |  2 +-
 drivers/irqchip/irq-gic-v4.c                  |  4 +-
 drivers/irqchip/irq-gic.c                     |  2 +-
 drivers/irqchip/irq-imx-mu-msi.c              |  2 +-
 drivers/irqchip/irq-ixp4xx.c                  |  2 +-
 drivers/irqchip/irq-loongarch-avec.c          |  2 +-
 drivers/irqchip/irq-loongarch-cpu.c           |  4 +-
 drivers/irqchip/irq-loongson-eiointc.c        |  2 +-
 drivers/irqchip/irq-loongson-htvec.c          |  2 +-
 drivers/irqchip/irq-loongson-liointc.c        |  4 +-
 drivers/irqchip/irq-loongson-pch-lpc.c        |  2 +-
 drivers/irqchip/irq-loongson-pch-msi.c        |  2 +-
 drivers/irqchip/irq-loongson-pch-pic.c        |  2 +-
 drivers/irqchip/irq-meson-gpio.c              |  2 +-
 drivers/irqchip/irq-mvebu-gicp.c              |  2 +-
 drivers/irqchip/irq-mvebu-odmi.c              |  2 +-
 drivers/irqchip/irq-mvebu-sei.c               |  6 +--
 drivers/irqchip/irq-partition-percpu.c        |  2 +-
 drivers/irqchip/irq-qcom-mpm.c                |  2 +-
 drivers/irqchip/irq-rda-intc.c                |  2 +-
 drivers/irqchip/irq-riscv-aplic-direct.c      |  2 +-
 drivers/irqchip/irq-riscv-imsic-platform.c    |  2 +-
 drivers/irqchip/irq-riscv-intc.c              |  2 +-
 drivers/irqchip/irq-sifive-plic.c             |  2 +-
 drivers/irqchip/irq-uniphier-aidet.c          |  2 +-
 drivers/irqchip/qcom-irq-combiner.c           |  4 +-
 drivers/irqchip/qcom-pdc.c                    |  2 +-
 drivers/mfd/ioc3.c                            |  2 +-
 drivers/misc/lan966x_pci.c                    |  2 +-
 drivers/net/usb/smsc95xx.c                    |  2 +-
 .../pci/controller/dwc/pcie-designware-host.c |  2 +-
 drivers/pci/controller/pci-tegra.c            |  2 +-
 drivers/pci/controller/pcie-apple.c           |  4 +-
 drivers/pci/controller/pcie-mediatek.c        |  2 +-
 drivers/pci/controller/pcie-rcar-host.c       |  2 +-
 drivers/pci/controller/pcie-xilinx.c          |  2 +-
 drivers/pinctrl/samsung/pinctrl-exynos.c      |  4 +-
 drivers/pinctrl/samsung/pinctrl-s3c64xx.c     |  4 +-
 drivers/pinctrl/stm32/pinctrl-stm32.c         |  2 +-
 .../platform/x86/intel/crystal_cove_charger.c |  2 +-
 drivers/soundwire/irq.c                       |  2 +-
 include/linux/irq_sim.h                       |  8 ++--
 include/linux/irqdomain.h                     | 18 ++++----
 kernel/irq/ipi-mux.c                          |  2 +-
 kernel/irq/irq_sim.c                          | 28 ++++++-------
 kernel/irq/irqdomain.c                        | 10 ++---
 kernel/irq/msi.c                              |  2 +-
 sound/soc/codecs/rt5677.c                     |  2 +-
 84 files changed, 152 insertions(+), 152 deletions(-)

diff --git a/Documentation/core-api/irq/irq-domain.rst b/Documentation/core-api/irq/irq-domain.rst
index 9a80112360d8..e315489b1292 100644
--- a/Documentation/core-api/irq/irq-domain.rst
+++ b/Documentation/core-api/irq/irq-domain.rst
@@ -42,11 +42,11 @@ irq_domain usage
 ================
 
 An interrupt controller driver creates and registers an irq_domain by
-calling one of the irq_domain_add_*_of_node() or irq_domain_create_*()
-functions (each mapping method has a different allocator function,
-more on that later).  The function will return a pointer to the
-irq_domain on success. The caller must provide the allocator function
-with an irq_domain_ops structure.
+calling one of the irq_domain_add_*_of_node() or
+irq_domain_add_*_fwnode() functions (each mapping method has a
+different allocator function, more on that later).  The function will
+return a pointer to the irq_domain on success. The caller must provide
+the allocator function with an irq_domain_ops structure.
 
 In most cases, the irq_domain will begin empty without any mappings
 between hwirq and IRQ numbers.  Mappings are added to the irq_domain
@@ -94,7 +94,7 @@ Linear
 ::
 
 	irq_domain_add_linear_of_node()
-	irq_domain_create_linear()
+	irq_domain_add_linear_fwnode()
 
 The linear reverse map maintains a fixed size table indexed by the
 hwirq number.  When a hwirq is mapped, an irq_desc is allocated for
@@ -106,7 +106,7 @@ 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_of_node() and irq_domain_create_linear() are
+irq_domain_add_linear_of_node() and irq_domain_add_linear_fwnode() 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
@@ -120,7 +120,7 @@ Tree
 ::
 
 	irq_domain_add_tree_of_node()
-	irq_domain_create_tree()
+	irq_domain_add_tree_fwnode()
 
 The irq_domain maintains a radix tree map from hwirq numbers to Linux
 IRQs.  When an hwirq is mapped, an irq_desc is allocated and the
@@ -131,7 +131,7 @@ 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_of_node() and irq_domain_create_tree() are
+irq_domain_add_tree_of_node() and irq_domain_add_tree_fwnode() 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
@@ -164,8 +164,8 @@ Legacy
 
 	irq_domain_add_simple_of_node()
 	irq_domain_add_legacy_of_node()
-	irq_domain_create_simple()
-	irq_domain_create_legacy()
+	irq_domain_add_simple_fwnode()
+	irq_domain_add_legacy_fwnode()
 
 The Legacy mapping is a special case for drivers that already have a
 range of irq_descs allocated for the hwirqs.  It is used when the
@@ -193,14 +193,14 @@ 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_of_node() or irq_domain_create_simple() which
-will use a legacy domain only if an IRQ range is supplied by the
+irq_domain_add_simple_of_node() or irq_domain_add_simple_fwnode()
+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_of_node() or
-irq_domain_create_linear() which means *no* irq descriptors will be
-allocated.
+irq_domain_add_linear_fwnode() 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.
@@ -211,12 +211,12 @@ 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_of_node() and irq_domain_create_simple() as well
-as irq_domain_add_legacy_of_node() 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'.
+irq_domain_add_simple_of_node() and irq_domain_add_simple_fwnode() as
+well as irq_domain_add_legacy_of_node() and
+irq_domain_add_legacy_fwnode() 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/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst
index d594d0ea0e9d..3cce1f46e165 100644
--- a/Documentation/driver-api/driver-model/devres.rst
+++ b/Documentation/driver-api/driver-model/devres.rst
@@ -337,7 +337,7 @@ IRQ
   devm_irq_alloc_descs_from()
   devm_irq_alloc_generic_chip()
   devm_irq_setup_generic_chip()
-  devm_irq_domain_create_sim()
+  devm_irq_domain_add_sim_fwnode()
 
 LED
   devm_led_classdev_register()
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 3fcd5b8d508d..795a5218819f 100644
--- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
@@ -43,7 +43,7 @@ irq_domain的用法
 ================
 
 中断控制器驱动程序通过以下方式创建并注册一个irq_domain。调用
-irq_domain_add_*_of_node() 或 irq_domain_create_*()函数之一(每个映射方法都有不
+irq_domain_add_*_of_node() 或 irq_domain_add_*_fwnode()函数之一(每个映射方法都有不
 同的分配器函数,后面会详细介绍)。 函数成功后会返回一个指向irq_domain的指针。
 调用者必须向分配器函数提供一个irq_domain_ops结构体。
 
@@ -84,7 +84,7 @@ irq_domain映射的类型
 ::
 
 	irq_domain_add_linear_of_node()
-	irq_domain_create_linear()
+	irq_domain_add_linear_fwnode()
 
 线性反向映射维护了一个固定大小的表,该表以hwirq号为索引。 当一个hwirq被映射
 时,会给hwirq分配一个irq_desc,并将irq号存储在表中。
@@ -93,7 +93,7 @@ irq_domain映射的类型
 映射的优点是固定时间查找IRQ号,而且irq_descs只分配给在用的IRQ。 缺点是该表
 必须尽可能大的hwirq号。
 
-irq_domain_add_linear_of_node()和irq_domain_create_linear()在功能上是等价的,
+irq_domain_add_linear_of_node()和irq_domain_add_linear_fwnode()在功能上是等价的,
 除了第一个参数不同--前者接受一个Open Firmware特定的 'struct device_node' 而
 后者接受一个更通用的抽象 'struct fwnode_handle' 。
 
@@ -105,7 +105,7 @@ irq_domain_add_linear_of_node()和irq_domain_create_linear()在功能上是等
 ::
 
 	irq_domain_add_tree_of_node()
-	irq_domain_create_tree()
+	irq_domain_add_tree_fwnode()
 
 irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hwirq被映射时,
 一个irq_desc被分配,hwirq被用作radix树的查找键。
@@ -113,7 +113,7 @@ irq_domain维护着从hwirq号到Linux IRQ的radix的树状映射。 当一个hw
 如果hwirq号可以非常大,树状映射是一个很好的选择,因为它不需要分配一个和最大hwirq
 号一样大的表。 缺点是,hwirq到IRQ号的查找取决于表中有多少条目。
 
-irq_domain_add_tree_of_node()和irq_domain_create_tree()在功能上是等价的,除了第一
+irq_domain_add_tree_of_node()和irq_domain_add_tree_fwnode()在功能上是等价的,除了第一
 个参数不同——前者接受一个Open Firmware特定的 'struct device_node' ,而后者接受
 一个更通用的抽象 'struct fwnode_handle' 。
 
@@ -140,8 +140,8 @@ Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create
 
 	irq_domain_add_simple_of_node()
 	irq_domain_add_legacy_of_node()
-	irq_domain_create_simple()
-	irq_domain_create_legacy()
+	irq_domain_add_simple_fwnode()
+	irq_domain_add_legacy_fwnode()
 
 传统映射是已经为 hwirqs 分配了一系列 irq_descs 的驱动程序的特殊情况。 当驱动程
 序不能立即转换为使用线性映射时,就会使用它。 例如,许多嵌入式系统板卡支持文件使用
@@ -159,10 +159,10 @@ Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create
 映射Linux IRQ 0-15,这样现有的ISA驱动程序就能得到正确的IRQ号。
 
 大多数使用传统映射的用户应该使用irq_domain_add_simple_of_node()或
-irq_domain_create_simple(),只有在系统提供IRQ范围时才会使用传统域,否则将使用
+irq_domain_add_simple_fwnode(),只有在系统提供IRQ范围时才会使用传统域,否则将使用
 线性域映射。这个调用的语义是这样的:如果指定了一个IRQ范围,那么 描述符将被即时分配
 给它,如果没有范围被分配,它将不会执行 irq_domain_add_linear_of_node() 或
-irq_domain_create_linear(),这意味着 *no* irq 描述符将被分配。
+irq_domain_add_linear_fwnode(),这意味着 *no* irq 描述符将被分配。
 
 一个简单域的典型用例是,irqchip供应商同时支持动态和静态IRQ分配。
 
@@ -170,8 +170,8 @@ irq_domain_create_linear(),这意味着 *no* irq 描述符将被分配。
 irq_find_mapping()之前调用irq_create_mapping()是非常重要的,因为后者实际上
 将用于静态IRQ分配情况。
 
-irq_domain_add_simple_of_node()和irq_domain_create_simple()以及
-irq_domain_add_legacy_of_node()和irq_domain_create_legacy()在功能上是等价的,只
+irq_domain_add_simple_of_node()和irq_domain_add_simple_fwnode()以及
+irq_domain_add_legacy_of_node()和irq_domain_add_legacy_fwnode()在功能上是等价的,只
 是第一个参数不同--前者接受Open Firmware特定的 'struct device_node' ,而后者
 接受一个更通用的抽象 'struct fwnode_handle' 。
 
diff --git a/arch/arm64/kvm/arch_timer.c b/arch/arm64/kvm/arch_timer.c
index d3d243366536..4daf03604fca 100644
--- a/arch/arm64/kvm/arch_timer.c
+++ b/arch/arm64/kvm/arch_timer.c
@@ -1445,7 +1445,7 @@ static int kvm_irq_init(struct arch_timer_kvm_info *info)
 
 		/* Assume both vtimer and ptimer in the same parent */
 		data = irq_get_irq_data(host_vtimer_irq);
-		domain = irq_domain_create_hierarchy(data->domain, 0,
+		domain = irq_domain_add_hierarchy_fwnode(data->domain, 0,
 						     NR_KVM_TIMERS, fwnode,
 						     &timer_domain_ops, NULL);
 		if (!domain) {
diff --git a/arch/mips/pci/pci-xtalk-bridge.c b/arch/mips/pci/pci-xtalk-bridge.c
index e00c38620d14..a6cf694c9c4a 100644
--- a/arch/mips/pci/pci-xtalk-bridge.c
+++ b/arch/mips/pci/pci-xtalk-bridge.c
@@ -626,7 +626,7 @@ static int bridge_probe(struct platform_device *pdev)
 	fn = irq_domain_alloc_named_fwnode("BRIDGE");
 	if (!fn)
 		return -ENOMEM;
-	domain = irq_domain_create_hierarchy(parent, 0, 8, fn,
+	domain = irq_domain_add_hierarchy_fwnode(parent, 0, 8, fn,
 					     &bridge_domain_ops, NULL);
 	if (!domain) {
 		irq_domain_free_fwnode(fn);
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 288d4d17eddd..7cc0332bdecd 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -292,7 +292,7 @@ void __init arch_init_irq(void)
 	if (WARN_ON(fn == NULL))
 		return;
 
-	domain = irq_domain_create_linear(fn, IP27_HUB_IRQ_COUNT,
+	domain = irq_domain_add_linear_fwnode(fn, IP27_HUB_IRQ_COUNT,
 					  &hub_domain_ops, NULL);
 	if (WARN_ON(domain == NULL))
 		return;
diff --git a/arch/mips/sgi-ip30/ip30-irq.c b/arch/mips/sgi-ip30/ip30-irq.c
index 9fb905e2cf14..65150bdfaf3d 100644
--- a/arch/mips/sgi-ip30/ip30-irq.c
+++ b/arch/mips/sgi-ip30/ip30-irq.c
@@ -307,7 +307,7 @@ void __init arch_init_irq(void)
 	WARN_ON(fn == NULL);
 	if (!fn)
 		return;
-	domain = irq_domain_create_linear(fn, HEART_NUM_IRQS,
+	domain = irq_domain_add_linear_fwnode(fn, HEART_NUM_IRQS,
 					  &heart_domain_ops, NULL);
 	WARN_ON(domain == NULL);
 	if (!domain)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 25fba487e7b6..3a13d4aff7e1 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1930,7 +1930,7 @@ static int __init pnv_msi_allocate_domains(struct pci_controller *hose, unsigned
 	if (!hose->fwnode)
 		return -ENOMEM;
 
-	hose->dev_domain = irq_domain_create_hierarchy(parent, 0, count,
+	hose->dev_domain = irq_domain_add_hierarchy_fwnode(parent, 0, count,
 						       hose->fwnode,
 						       &pnv_irq_domain_ops, hose);
 	if (!hose->dev_domain) {
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
index 5b191f70c088..ef23e17b77ab 100644
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -618,7 +618,7 @@ static int __pseries_msi_allocate_domains(struct pci_controller *phb,
 	if (!phb->fwnode)
 		return -ENOMEM;
 
-	phb->dev_domain = irq_domain_create_hierarchy(parent, 0, count,
+	phb->dev_domain = irq_domain_add_hierarchy_fwnode(parent, 0, count,
 						      phb->fwnode,
 						      &pseries_irq_domain_ops, phb);
 	if (!phb->dev_domain) {
diff --git a/arch/powerpc/sysdev/xics/xics-common.c b/arch/powerpc/sysdev/xics/xics-common.c
index c3fa539a9898..92e8a75845a1 100644
--- a/arch/powerpc/sysdev/xics/xics-common.c
+++ b/arch/powerpc/sysdev/xics/xics-common.c
@@ -466,7 +466,7 @@ static int __init xics_allocate_domain(void)
 	if (!fn)
 		return -ENOMEM;
 
-	xics_host = irq_domain_create_tree(fn, &xics_host_ops, NULL);
+	xics_host = irq_domain_add_tree_fwnode(fn, &xics_host_ops, NULL);
 	if (!xics_host) {
 		irq_domain_free_fwnode(fn);
 		return -ENOMEM;
diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
index d4e28b581b4a..3aaad8aa7f4c 100644
--- a/arch/powerpc/sysdev/xive/common.c
+++ b/arch/powerpc/sysdev/xive/common.c
@@ -1141,7 +1141,7 @@ static int __init xive_init_ipis(void)
 	if (!fwnode)
 		goto out;
 
-	ipi_domain = irq_domain_create_linear(fwnode, nr_node_ids,
+	ipi_domain = irq_domain_add_linear_fwnode(fwnode, nr_node_ids,
 					      &xive_ipi_irq_domain_ops, NULL);
 	if (!ipi_domain)
 		goto out_free_fwnode;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index be89493e0e5c..0d93c49e54c5 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2243,7 +2243,7 @@ static int mp_irqdomain_create(int ioapic)
 		return -ENODEV;
 	}
 
-	ip->irqdomain = irq_domain_create_hierarchy(parent, 0, hwirqs, fn, cfg->ops,
+	ip->irqdomain = irq_domain_add_hierarchy_fwnode(parent, 0, hwirqs, fn, cfg->ops,
 						    (void *)(long)ioapic);
 	if (!ip->irqdomain) {
 		/* Release fw handle if it was allocated above */
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index 38e53cb18dd6..2630d8f4a050 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -796,7 +796,7 @@ int __init arch_early_irq_init(void)
 
 	fn = irq_domain_alloc_named_fwnode("VECTOR");
 	BUG_ON(!fn);
-	x86_vector_domain = irq_domain_create_tree(fn, &x86_vector_domain_ops,
+	x86_vector_domain = irq_domain_add_tree_fwnode(fn, &x86_vector_domain_ops,
 						   NULL);
 	BUG_ON(x86_vector_domain == NULL);
 	irq_set_default_domain(x86_vector_domain);
diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c
index a379501b7a69..a28a686db118 100644
--- a/arch/x86/platform/uv/uv_irq.c
+++ b/arch/x86/platform/uv/uv_irq.c
@@ -166,7 +166,7 @@ static struct irq_domain *uv_get_irq_domain(void)
 	if (!fn)
 		goto out;
 
-	uv_domain = irq_domain_create_hierarchy(x86_vector_domain, 0, 0, fn,
+	uv_domain = irq_domain_add_hierarchy_fwnode(x86_vector_domain, 0, 0, fn,
 						&uv_domain_ops, NULL);
 	if (!uv_domain)
 		irq_domain_free_fwnode(fn);
diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c
index 1687483ff319..9b766b9c9147 100644
--- a/drivers/acpi/irq.c
+++ b/drivers/acpi/irq.c
@@ -350,7 +350,7 @@ struct irq_domain *acpi_irq_create_hierarchy(unsigned int flags,
 	if (!d)
 		return NULL;
 
-	return irq_domain_create_hierarchy(d, flags, size, fwnode, ops,
+	return irq_domain_add_hierarchy_fwnode(d, flags, size, fwnode, ops,
 					   host_data);
 }
 EXPORT_SYMBOL_GPL(acpi_irq_create_hierarchy);
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 5321ef98f442..7216439740d0 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -593,7 +593,7 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
 	chip->parent = dev;
 	chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
 
-	kona_gpio->irq_domain = irq_domain_create_linear(dev_fwnode(dev),
+	kona_gpio->irq_domain = irq_domain_add_linear_fwnode(dev_fwnode(dev),
 							 chip->ngpio,
 							 &bcm_kona_irq_ops,
 							 kona_gpio);
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index d39c6618bade..cb476d3330ba 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -464,7 +464,7 @@ static int gpio_mockup_probe(struct platform_device *pdev)
 	for (i = 0; i < gc->ngpio; i++)
 		chip->lines[i].dir = GPIO_LINE_DIRECTION_IN;
 
-	chip->irq_sim_domain = devm_irq_domain_create_sim(dev, NULL,
+	chip->irq_sim_domain = devm_irq_domain_add_sim_fwnode(dev, NULL,
 							  gc->ngpio);
 	if (IS_ERR(chip->irq_sim_domain))
 		return PTR_ERR(chip->irq_sim_domain);
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 0cd4c36ae8aa..c76bd9def691 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -388,7 +388,7 @@ static int mpc8xxx_probe(struct platform_device *pdev)
 	if (mpc8xxx_gc->irqn < 0)
 		return mpc8xxx_gc->irqn;
 
-	mpc8xxx_gc->irq = irq_domain_create_linear(fwnode,
+	mpc8xxx_gc->irq = irq_domain_add_linear_fwnode(fwnode,
 						   MPC8XXX_GPIO_PINS,
 						   &mpc8xxx_gpio_irq_ops,
 						   mpc8xxx_gc);
diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c
index a086087ada17..68baa759bb45 100644
--- a/drivers/gpio/gpio-sim.c
+++ b/drivers/gpio/gpio-sim.c
@@ -459,7 +459,7 @@ static int gpio_sim_add_bank(struct fwnode_handle *swnode, struct device *dev)
 	if (!chip->pull_map)
 		return -ENOMEM;
 
-	chip->irq_sim = devm_irq_domain_create_sim_full(dev, swnode, num_lines,
+	chip->irq_sim = devm_irq_domain_add_sim_full_fwnode(dev, swnode, num_lines,
 							&gpio_sim_irq_sim_ops,
 							chip);
 	if (IS_ERR(chip->irq_sim))
diff --git a/drivers/gpio/gpio-uniphier.c b/drivers/gpio/gpio-uniphier.c
index d738da8718f9..3a4ba504a2ad 100644
--- a/drivers/gpio/gpio-uniphier.c
+++ b/drivers/gpio/gpio-uniphier.c
@@ -402,7 +402,7 @@ static int uniphier_gpio_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	priv->domain = irq_domain_create_hierarchy(
+	priv->domain = irq_domain_add_hierarchy_fwnode(
 					parent_domain, 0,
 					UNIPHIER_GPIO_IRQ_MAX_NUM,
 					dev_fwnode(dev),
diff --git a/drivers/gpio/gpio-xgene-sb.c b/drivers/gpio/gpio-xgene-sb.c
index 48b829733b15..0c0071686c3e 100644
--- a/drivers/gpio/gpio-xgene-sb.c
+++ b/drivers/gpio/gpio-xgene-sb.c
@@ -272,7 +272,7 @@ static int xgene_gpio_sb_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, priv);
 
-	priv->irq_domain = irq_domain_create_hierarchy(parent_domain,
+	priv->irq_domain = irq_domain_add_hierarchy_fwnode(parent_domain,
 					0, priv->nirq, pdev->dev.fwnode,
 					&xgene_gpio_sb_domain_ops, priv);
 	if (!priv->irq_domain)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 679ed764cb14..3706effff656 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1623,7 +1623,7 @@ static struct irq_domain *gpiochip_hierarchy_create_domain(struct gpio_chip *gc)
 
 	gpiochip_hierarchy_setup_domain_ops(&gc->irq.child_irq_domain_ops);
 
-	domain = irq_domain_create_hierarchy(
+	domain = irq_domain_add_hierarchy_fwnode(
 		gc->irq.parent_domain,
 		0,
 		gc->ngpio,
@@ -1766,7 +1766,7 @@ static struct irq_domain *gpiochip_simple_create_domain(struct gpio_chip *gc)
 	struct fwnode_handle *fwnode = dev_fwnode(&gc->gpiodev->dev);
 	struct irq_domain *domain;
 
-	domain = irq_domain_create_simple(fwnode, gc->ngpio, gc->irq.first,
+	domain = irq_domain_add_simple_fwnode(fwnode, gc->ngpio, gc->irq.first,
 					  &gpiochip_domain_ops, gc);
 	if (!domain)
 		return ERR_PTR(-EINVAL);
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index d4af17fdba46..691362913db1 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -621,7 +621,7 @@ static int rmi_setup_irq_domain(struct hid_device *hdev)
 	struct rmi_data *hdata = hid_get_drvdata(hdev);
 	int ret;
 
-	hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1,
+	hdata->domain = irq_domain_add_linear_fwnode(hdev->dev.fwnode, 1,
 						 &rmi_irq_ops, hdata);
 	if (!hdata->domain)
 		return -ENOMEM;
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index b4d8771d80a8..4ac60fd7be75 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1463,7 +1463,7 @@ static int i2c_setup_host_notify_irq_domain(struct i2c_adapter *adap)
 	if (!i2c_check_functionality(adap, I2C_FUNC_SMBUS_HOST_NOTIFY))
 		return 0;
 
-	domain = irq_domain_create_linear(adap->dev.parent->fwnode,
+	domain = irq_domain_add_linear_fwnode(adap->dev.parent->fwnode,
 					  I2C_ADDR_7BITS_COUNT,
 					  &i2c_host_notify_irq_ops, adap);
 	if (!domain)
diff --git a/drivers/iio/dummy/iio_dummy_evgen.c b/drivers/iio/dummy/iio_dummy_evgen.c
index 16d3f144dda0..836ff5ea38b5 100644
--- a/drivers/iio/dummy/iio_dummy_evgen.c
+++ b/drivers/iio/dummy/iio_dummy_evgen.c
@@ -51,7 +51,7 @@ static int iio_dummy_evgen_create(void)
 	if (!iio_evgen)
 		return -ENOMEM;
 
-	iio_evgen->irq_sim_domain = irq_domain_create_sim(NULL,
+	iio_evgen->irq_sim_domain = irq_domain_add_sim_fwnode(NULL,
 							  IIO_EVENTGEN_NO);
 	if (IS_ERR(iio_evgen->irq_sim_domain)) {
 		ret = PTR_ERR(iio_evgen->irq_sim_domain);
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index 2168b6cd7167..5bec561d795d 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -1036,7 +1036,7 @@ int rmi_probe_interrupts(struct rmi_driver_data *data)
 		dev_warn(dev, "Device in bootloader mode.\n");
 
 	/* Allocate and register a linear revmap irq_domain */
-	data->irqdomain = irq_domain_create_linear(fwnode, irq_count,
+	data->irqdomain = irq_domain_add_linear_fwnode(fwnode, irq_count,
 						   &irq_domain_simple_ops,
 						   data);
 	if (!data->irqdomain) {
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 9db8fd1275be..a9ebb264cc0e 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -2376,7 +2376,7 @@ static struct irq_domain *iommu_get_irqdomain(void)
 	if (!fn)
 		return NULL;
 
-	iommu_irqdomain = irq_domain_create_hierarchy(x86_vector_domain, 0, 0,
+	iommu_irqdomain = irq_domain_add_hierarchy_fwnode(x86_vector_domain, 0, 0,
 						      fn, &intcapxt_domain_ops,
 						      NULL);
 	if (!iommu_irqdomain)
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 20177e18eb0d..041e41257118 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -4018,7 +4018,7 @@ int amd_iommu_create_irq_domain(struct amd_iommu *iommu)
 	fn = irq_domain_alloc_named_id_fwnode("AMD-IR", iommu->index);
 	if (!fn)
 		return -ENOMEM;
-	iommu->ir_domain = irq_domain_create_hierarchy(arch_get_ir_parent_domain(), 0, 0,
+	iommu->ir_domain = irq_domain_add_hierarchy_fwnode(arch_get_ir_parent_domain(), 0, 0,
 						       fn, &amd_ir_domain_ops, iommu);
 	if (!iommu->ir_domain) {
 		irq_domain_free_fwnode(fn);
diff --git a/drivers/iommu/hyperv-iommu.c b/drivers/iommu/hyperv-iommu.c
index 2a86aa5d54c6..61060b0c4d64 100644
--- a/drivers/iommu/hyperv-iommu.c
+++ b/drivers/iommu/hyperv-iommu.c
@@ -143,7 +143,7 @@ static int __init hyperv_prepare_irq_remapping(void)
 		return -ENOMEM;
 
 	ioapic_ir_domain =
-		irq_domain_create_hierarchy(arch_get_ir_parent_domain(),
+		irq_domain_add_hierarchy_fwnode(arch_get_ir_parent_domain(),
 				0, IOAPIC_REMAPPING_ENTRY, fn, ops, NULL);
 
 	if (!ioapic_ir_domain) {
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
index 4431543bcfe3..8d840bd2d8a5 100644
--- a/drivers/iommu/intel/irq_remapping.c
+++ b/drivers/iommu/intel/irq_remapping.c
@@ -557,7 +557,7 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
 		goto out_free_bitmap;
 
 	iommu->ir_domain =
-		irq_domain_create_hierarchy(arch_get_ir_parent_domain(),
+		irq_domain_add_hierarchy_fwnode(arch_get_ir_parent_domain(),
 					    0, INTR_REMAP_TABLE_ENTRIES,
 					    fn, &intel_ir_domain_ops,
 					    iommu);
diff --git a/drivers/irqchip/irq-apple-aic.c b/drivers/irqchip/irq-apple-aic.c
index fb67815dcb3d..728b12e30cb2 100644
--- a/drivers/irqchip/irq-apple-aic.c
+++ b/drivers/irqchip/irq-apple-aic.c
@@ -1013,7 +1013,7 @@ static int __init aic_of_ic_init(struct device_node *node, struct device_node *p
 
 	irqc->info.die_stride = off - start_off;
 
-	irqc->hw_domain = irq_domain_create_tree(of_fwnode_handle(node),
+	irqc->hw_domain = irq_domain_add_tree_fwnode(of_fwnode_handle(node),
 						 &aic_irq_domain_ops, irqc);
 	if (WARN_ON(!irqc->hw_domain))
 		goto err_unmap;
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index 89c2abd2342d..f6fbfab5ffb7 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -492,7 +492,7 @@ static int __init mpic_ipi_init(struct mpic *mpic, struct device_node *node)
 {
 	int base_ipi;
 
-	mpic->ipi_domain = irq_domain_create_linear(of_fwnode_handle(node), IPI_DOORBELL_NR,
+	mpic->ipi_domain = irq_domain_add_linear_fwnode(of_fwnode_handle(node), IPI_DOORBELL_NR,
 						    &mpic_ipi_domain_ops, mpic);
 	if (WARN_ON(!mpic->ipi_domain))
 		return -ENOMEM;
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index aedd69494b9f..e1ab5cea7abe 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -262,7 +262,7 @@ static void __init bcm2836_arm_irqchip_smp_init(void)
 	if (WARN_ON(mux_irq <= 0))
 		return;
 
-	ipi_domain = irq_domain_create_linear(intc.domain->fwnode,
+	ipi_domain = irq_domain_add_linear_fwnode(intc.domain->fwnode,
 					      BITS_PER_MBOX, &ipi_domain_ops,
 					      NULL);
 	if (WARN_ON(!ipi_domain))
diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c
index be35c5349986..b5fb2b7941ea 100644
--- a/drivers/irqchip/irq-gic-v2m.c
+++ b/drivers/irqchip/irq-gic-v2m.c
@@ -270,7 +270,7 @@ static __init int gicv2m_allocate_domains(struct irq_domain *parent)
 	if (!v2m)
 		return 0;
 
-	inner_domain = irq_domain_create_hierarchy(parent, 0, 0, v2m->fwnode,
+	inner_domain = irq_domain_add_hierarchy_fwnode(parent, 0, 0, v2m->fwnode,
 						   &gicv2m_domain_ops, v2m);
 	if (!inner_domain) {
 		pr_err("Failed to create GICv2m domain\n");
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 92244cfa0464..dcc98eb5bd5b 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -5114,7 +5114,7 @@ static int its_init_domain(struct its_node *its)
 	info->ops = &its_msi_domain_ops;
 	info->data = its;
 
-	inner_domain = irq_domain_create_hierarchy(its_parent,
+	inner_domain = irq_domain_add_hierarchy_fwnode(its_parent,
 						   its->msi_domain_flags, 0,
 						   its->fwnode_handle, &its_domain_ops,
 						   info);
diff --git a/drivers/irqchip/irq-gic-v3-mbi.c b/drivers/irqchip/irq-gic-v3-mbi.c
index 3fe870f8ee17..34456871a3fb 100644
--- a/drivers/irqchip/irq-gic-v3-mbi.c
+++ b/drivers/irqchip/irq-gic-v3-mbi.c
@@ -211,7 +211,7 @@ static int mbi_allocate_domain(struct irq_domain *parent)
 {
 	struct irq_domain *nexus_domain;
 
-	nexus_domain = irq_domain_create_hierarchy(parent, 0, 0, parent->fwnode,
+	nexus_domain = irq_domain_add_hierarchy_fwnode(parent, 0, 0, parent->fwnode,
 						   &mbi_domain_ops, NULL);
 	if (!nexus_domain)
 		return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 7e444f509aff..8c7e71e00f92 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -2068,7 +2068,7 @@ static int __init gic_init_bases(phys_addr_t dist_phys_base,
 	if (!(gic_data.flags & FLAGS_WORKAROUND_CAVIUM_ERRATUM_38539))
 		gic_data.rdists.gicd_typer2 = readl_relaxed(gic_data.dist_base + GICD_TYPER2);
 
-	gic_data.domain = irq_domain_create_tree(handle, &gic_irq_domain_ops,
+	gic_data.domain = irq_domain_add_tree_fwnode(handle, &gic_irq_domain_ops,
 						 &gic_data);
 	gic_data.rdists.rdist = alloc_percpu(typeof(*gic_data.rdists.rdist));
 	if (!static_branch_unlikely(&gic_nvidia_t241_erratum)) {
diff --git a/drivers/irqchip/irq-gic-v4.c b/drivers/irqchip/irq-gic-v4.c
index 58c28895f8c4..0f576d2649e3 100644
--- a/drivers/irqchip/irq-gic-v4.c
+++ b/drivers/irqchip/irq-gic-v4.c
@@ -135,7 +135,7 @@ static int its_alloc_vcpu_sgis(struct its_vpe *vpe, int idx)
 	kfree(name);
 	name = NULL;
 
-	vpe->sgi_domain = irq_domain_create_linear(vpe->fwnode, 16,
+	vpe->sgi_domain = irq_domain_add_linear_fwnode(vpe->fwnode, 16,
 						   sgi_domain_ops, vpe);
 	if (!vpe->sgi_domain)
 		goto err;
@@ -164,7 +164,7 @@ int its_alloc_vcpu_irqs(struct its_vm *vm)
 	if (!vm->fwnode)
 		goto err;
 
-	vm->domain = irq_domain_create_hierarchy(gic_domain, 0, vm->nr_vpes,
+	vm->domain = irq_domain_add_hierarchy_fwnode(gic_domain, 0, vm->nr_vpes,
 						 vm->fwnode, vpe_domain_ops,
 						 vm);
 	if (!vm->domain)
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 6503573557fd..ff31eff55cf5 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -1207,7 +1207,7 @@ static int gic_init_bases(struct gic_chip_data *gic,
 		gic_irqs = 1020;
 	gic->gic_irqs = gic_irqs;
 
-	gic->domain = irq_domain_create_linear(handle, gic_irqs,
+	gic->domain = irq_domain_add_linear_fwnode(handle, gic_irqs,
 					       &gic_irq_domain_hierarchy_ops,
 					       gic);
 	if (WARN_ON(!gic->domain)) {
diff --git a/drivers/irqchip/irq-imx-mu-msi.c b/drivers/irqchip/irq-imx-mu-msi.c
index 4342a21de1eb..b160abc97db9 100644
--- a/drivers/irqchip/irq-imx-mu-msi.c
+++ b/drivers/irqchip/irq-imx-mu-msi.c
@@ -226,7 +226,7 @@ static int imx_mu_msi_domains_init(struct imx_mu_msi *msi_data, struct device *d
 	struct irq_domain *parent;
 
 	/* Initialize MSI domain parent */
-	parent = irq_domain_create_linear(fwnodes, IMX_MU_CHANS,
+	parent = irq_domain_add_linear_fwnode(fwnodes, IMX_MU_CHANS,
 					  &imx_mu_msi_domain_ops, msi_data);
 	if (!parent) {
 		dev_err(dev, "failed to create IRQ domain\n");
diff --git a/drivers/irqchip/irq-ixp4xx.c b/drivers/irqchip/irq-ixp4xx.c
index a9a5a52b818a..54af44fde25c 100644
--- a/drivers/irqchip/irq-ixp4xx.c
+++ b/drivers/irqchip/irq-ixp4xx.c
@@ -234,7 +234,7 @@ static int __init ixp4xx_irq_setup(struct ixp4xx_irq *ixi,
 	ixi->irqchip.irq_unmask	= ixp4xx_irq_unmask;
 	ixi->irqchip.irq_set_type = ixp4xx_set_irq_type;
 
-	ixi->domain = irq_domain_create_linear(fwnode, nr_irqs,
+	ixi->domain = irq_domain_add_linear_fwnode(fwnode, nr_irqs,
 					       &ixp4xx_irqdomain_ops,
 					       ixi);
 	if (!ixi->domain) {
diff --git a/drivers/irqchip/irq-loongarch-avec.c b/drivers/irqchip/irq-loongarch-avec.c
index 0f6e465dd309..92937ae60ab2 100644
--- a/drivers/irqchip/irq-loongarch-avec.c
+++ b/drivers/irqchip/irq-loongarch-avec.c
@@ -350,7 +350,7 @@ static int __init avecintc_init(struct irq_domain *parent)
 		goto out;
 	}
 
-	loongarch_avec.domain = irq_domain_create_tree(loongarch_avec.fwnode,
+	loongarch_avec.domain = irq_domain_add_tree_fwnode(loongarch_avec.fwnode,
 						       &avecintc_domain_ops, NULL);
 	if (!loongarch_avec.domain) {
 		pr_err("Unable to create IRQ domain\n");
diff --git a/drivers/irqchip/irq-loongarch-cpu.c b/drivers/irqchip/irq-loongarch-cpu.c
index 950bc087e388..9e8b2c6a5d0b 100644
--- a/drivers/irqchip/irq-loongarch-cpu.c
+++ b/drivers/irqchip/irq-loongarch-cpu.c
@@ -102,7 +102,7 @@ static int __init cpuintc_of_init(struct device_node *of_node,
 {
 	cpuintc_handle = of_fwnode_handle(of_node);
 
-	irq_domain = irq_domain_create_linear(cpuintc_handle, EXCCODE_INT_NUM,
+	irq_domain = irq_domain_add_linear_fwnode(cpuintc_handle, EXCCODE_INT_NUM,
 				&loongarch_cpu_intc_irq_domain_ops, NULL);
 	if (!irq_domain)
 		panic("Failed to add irqdomain for loongarch CPU");
@@ -161,7 +161,7 @@ static int __init cpuintc_acpi_init(union acpi_subtable_headers *header,
 	clear_csr_estat(ESTATF_IP);
 
 	cpuintc_handle = irq_domain_alloc_named_fwnode("CPUINTC");
-	irq_domain = irq_domain_create_linear(cpuintc_handle, EXCCODE_INT_NUM,
+	irq_domain = irq_domain_add_linear_fwnode(cpuintc_handle, EXCCODE_INT_NUM,
 					&loongarch_cpu_intc_irq_domain_ops, NULL);
 
 	if (!irq_domain)
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index b2860eb2d32c..cb04d233df6a 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -438,7 +438,7 @@ static int __init eiointc_init(struct eiointc_priv *priv, int parent_irq,
 		}
 	}
 
-	priv->eiointc_domain = irq_domain_create_linear(priv->domain_handle,
+	priv->eiointc_domain = irq_domain_add_linear_fwnode(priv->domain_handle,
 							priv->vec_count,
 							&eiointc_domain_ops,
 							priv);
diff --git a/drivers/irqchip/irq-loongson-htvec.c b/drivers/irqchip/irq-loongson-htvec.c
index d8558eb35044..6d55941c188a 100644
--- a/drivers/irqchip/irq-loongson-htvec.c
+++ b/drivers/irqchip/irq-loongson-htvec.c
@@ -197,7 +197,7 @@ static int htvec_init(phys_addr_t addr, unsigned long size,
 	raw_spin_lock_init(&priv->htvec_lock);
 
 	/* Setup IRQ domain */
-	priv->htvec_domain = irq_domain_create_linear(domain_handle,
+	priv->htvec_domain = irq_domain_add_linear_fwnode(domain_handle,
 					(VEC_COUNT_PER_REG * priv->num_parents),
 					&htvec_domain_ops, priv);
 	if (!priv->htvec_domain) {
diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
index 95cade56e0be..6d0d162f19a5 100644
--- a/drivers/irqchip/irq-loongson-liointc.c
+++ b/drivers/irqchip/irq-loongson-liointc.c
@@ -241,10 +241,10 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
 
 	/* Setup IRQ domain */
 	if (!acpi_disabled)
-		domain = irq_domain_create_linear(domain_handle, LIOINTC_CHIP_IRQ,
+		domain = irq_domain_add_linear_fwnode(domain_handle, LIOINTC_CHIP_IRQ,
 					&acpi_irq_gc_ops, priv);
 	else
-		domain = irq_domain_create_linear(domain_handle, LIOINTC_CHIP_IRQ,
+		domain = irq_domain_add_linear_fwnode(domain_handle, LIOINTC_CHIP_IRQ,
 					&irq_generic_chip_ops, priv);
 	if (!domain) {
 		pr_err("loongson-liointc: cannot add IRQ domain\n");
diff --git a/drivers/irqchip/irq-loongson-pch-lpc.c b/drivers/irqchip/irq-loongson-pch-lpc.c
index 2d4c3ec128b8..b772cbf90a7e 100644
--- a/drivers/irqchip/irq-loongson-pch-lpc.c
+++ b/drivers/irqchip/irq-loongson-pch-lpc.c
@@ -200,7 +200,7 @@ int __init pch_lpc_acpi_init(struct irq_domain *parent,
 		goto iounmap_base;
 	}
 
-	priv->lpc_domain = irq_domain_create_linear(irq_handle, LPC_COUNT,
+	priv->lpc_domain = irq_domain_add_linear_fwnode(irq_handle, LPC_COUNT,
 					&pch_lpc_domain_ops, priv);
 	if (!priv->lpc_domain) {
 		pr_err("Failed to create IRQ domain\n");
diff --git a/drivers/irqchip/irq-loongson-pch-msi.c b/drivers/irqchip/irq-loongson-pch-msi.c
index 6205d34c6d49..c7084d8e7a20 100644
--- a/drivers/irqchip/irq-loongson-pch-msi.c
+++ b/drivers/irqchip/irq-loongson-pch-msi.c
@@ -158,7 +158,7 @@ static int pch_msi_init_domains(struct pch_msi_data *priv,
 {
 	struct irq_domain *middle_domain;
 
-	middle_domain = irq_domain_create_hierarchy(parent, 0, priv->num_irqs,
+	middle_domain = irq_domain_add_hierarchy_fwnode(parent, 0, priv->num_irqs,
 						    domain_handle,
 						    &pch_msi_middle_domain_ops,
 						    priv);
diff --git a/drivers/irqchip/irq-loongson-pch-pic.c b/drivers/irqchip/irq-loongson-pch-pic.c
index 62e6bf3a0611..7bf24fd749fb 100644
--- a/drivers/irqchip/irq-loongson-pch-pic.c
+++ b/drivers/irqchip/irq-loongson-pch-pic.c
@@ -342,7 +342,7 @@ static int pch_pic_init(phys_addr_t addr, unsigned long size, int vec_base,
 	priv->vec_count = ((readq(priv->base) >> 48) & 0xff) + 1;
 	priv->gsi_base = gsi_base;
 
-	priv->pic_domain = irq_domain_create_hierarchy(parent_domain, 0,
+	priv->pic_domain = irq_domain_add_hierarchy_fwnode(parent_domain, 0,
 						priv->vec_count, domain_handle,
 						&pch_pic_domain_ops, priv);
 
diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
index 8620c7fb051e..3d2e6e65e341 100644
--- a/drivers/irqchip/irq-meson-gpio.c
+++ b/drivers/irqchip/irq-meson-gpio.c
@@ -579,7 +579,7 @@ static int meson_gpio_irq_of_init(struct device_node *node, struct device_node *
 	if (ret)
 		goto free_channel_irqs;
 
-	domain = irq_domain_create_hierarchy(parent_domain, 0,
+	domain = irq_domain_add_hierarchy_fwnode(parent_domain, 0,
 					     ctl->params->nr_hwirq,
 					     of_fwnode_handle(node),
 					     &meson_gpio_irq_domain_ops,
diff --git a/drivers/irqchip/irq-mvebu-gicp.c b/drivers/irqchip/irq-mvebu-gicp.c
index fa0082f4dd1d..dd086cf81192 100644
--- a/drivers/irqchip/irq-mvebu-gicp.c
+++ b/drivers/irqchip/irq-mvebu-gicp.c
@@ -229,7 +229,7 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	inner_domain = irq_domain_create_hierarchy(parent_domain, 0,
+	inner_domain = irq_domain_add_hierarchy_fwnode(parent_domain, 0,
 						   gicp->spi_cnt,
 						   of_fwnode_handle(node),
 						   &gicp_domain_ops, gicp);
diff --git a/drivers/irqchip/irq-mvebu-odmi.c b/drivers/irqchip/irq-mvebu-odmi.c
index 8d01e641be9c..84c095e62b69 100644
--- a/drivers/irqchip/irq-mvebu-odmi.c
+++ b/drivers/irqchip/irq-mvebu-odmi.c
@@ -204,7 +204,7 @@ static int __init mvebu_odmi_init(struct device_node *node,
 
 	parent_domain = irq_find_host(parent);
 
-	inner_domain = irq_domain_create_hierarchy(parent_domain, 0,
+	inner_domain = irq_domain_add_hierarchy_fwnode(parent_domain, 0,
 						   odmis_count * NODMIS_PER_FRAME,
 						   of_fwnode_handle(node),
 						   &odmi_domain_ops, NULL);
diff --git a/drivers/irqchip/irq-mvebu-sei.c b/drivers/irqchip/irq-mvebu-sei.c
index 495fad4628ca..5bd28d57762a 100644
--- a/drivers/irqchip/irq-mvebu-sei.c
+++ b/drivers/irqchip/irq-mvebu-sei.c
@@ -401,7 +401,7 @@ static int mvebu_sei_probe(struct platform_device *pdev)
 	}
 
 	/* Create the root SEI domain */
-	sei->sei_domain = irq_domain_create_linear(of_fwnode_handle(node),
+	sei->sei_domain = irq_domain_add_linear_fwnode(of_fwnode_handle(node),
 						   (sei->caps->ap_range.size +
 						    sei->caps->cp_range.size),
 						   &mvebu_sei_domain_ops,
@@ -415,7 +415,7 @@ static int mvebu_sei_probe(struct platform_device *pdev)
 	irq_domain_update_bus_token(sei->sei_domain, DOMAIN_BUS_NEXUS);
 
 	/* Create the 'wired' domain */
-	sei->ap_domain = irq_domain_create_hierarchy(sei->sei_domain, 0,
+	sei->ap_domain = irq_domain_add_hierarchy_fwnode(sei->sei_domain, 0,
 						     sei->caps->ap_range.size,
 						     of_fwnode_handle(node),
 						     &mvebu_sei_ap_domain_ops,
@@ -429,7 +429,7 @@ static int mvebu_sei_probe(struct platform_device *pdev)
 	irq_domain_update_bus_token(sei->ap_domain, DOMAIN_BUS_WIRED);
 
 	/* Create the 'MSI' domain */
-	sei->cp_domain = irq_domain_create_hierarchy(sei->sei_domain, 0,
+	sei->cp_domain = irq_domain_add_hierarchy_fwnode(sei->sei_domain, 0,
 						     sei->caps->cp_range.size,
 						     of_fwnode_handle(node),
 						     &mvebu_sei_cp_domain_ops,
diff --git a/drivers/irqchip/irq-partition-percpu.c b/drivers/irqchip/irq-partition-percpu.c
index 8e76d2913e6b..fa1f69a65060 100644
--- a/drivers/irqchip/irq-partition-percpu.c
+++ b/drivers/irqchip/irq-partition-percpu.c
@@ -210,7 +210,7 @@ struct partition_desc *partition_create_desc(struct fwnode_handle *fwnode,
 	desc->ops.free = partition_domain_free;
 	desc->ops.alloc = partition_domain_alloc;
 
-	d = irq_domain_create_linear(fwnode, nr_parts, &desc->ops, desc);
+	d = irq_domain_add_linear_fwnode(fwnode, nr_parts, &desc->ops, desc);
 	if (!d)
 		goto out;
 	desc->domain = d;
diff --git a/drivers/irqchip/irq-qcom-mpm.c b/drivers/irqchip/irq-qcom-mpm.c
index 00c770e367d0..e3b2b433ad09 100644
--- a/drivers/irqchip/irq-qcom-mpm.c
+++ b/drivers/irqchip/irq-qcom-mpm.c
@@ -445,7 +445,7 @@ static int qcom_mpm_init(struct device_node *np, struct device_node *parent)
 		goto free_mbox;
 	}
 
-	priv->domain = irq_domain_create_hierarchy(parent_domain,
+	priv->domain = irq_domain_add_hierarchy_fwnode(parent_domain,
 				IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP, pin_cnt,
 				of_fwnode_handle(np), &qcom_mpm_ops, priv);
 	if (!priv->domain) {
diff --git a/drivers/irqchip/irq-rda-intc.c b/drivers/irqchip/irq-rda-intc.c
index 9f0144a73777..ad3333337768 100644
--- a/drivers/irqchip/irq-rda-intc.c
+++ b/drivers/irqchip/irq-rda-intc.c
@@ -91,7 +91,7 @@ static int __init rda8810_intc_init(struct device_node *node,
 	/* Mask all interrupt sources */
 	writel_relaxed(RDA_IRQ_MASK_ALL, rda_intc_base + RDA_INTC_MASK_CLR);
 
-	rda_irq_domain = irq_domain_create_linear(&node->fwnode, RDA_NR_IRQS,
+	rda_irq_domain = irq_domain_add_linear_fwnode(&node->fwnode, RDA_NR_IRQS,
 						  &rda_irq_domain_ops,
 						  rda_intc_base);
 	if (!rda_irq_domain) {
diff --git a/drivers/irqchip/irq-riscv-aplic-direct.c b/drivers/irqchip/irq-riscv-aplic-direct.c
index 7cd6b646774b..7e7b217f1ae7 100644
--- a/drivers/irqchip/irq-riscv-aplic-direct.c
+++ b/drivers/irqchip/irq-riscv-aplic-direct.c
@@ -314,7 +314,7 @@ int aplic_direct_setup(struct device *dev, void __iomem *regs)
 	aplic_init_hw_global(priv, false);
 
 	/* Create irq domain instance for the APLIC */
-	direct->irqdomain = irq_domain_create_linear(dev->fwnode, priv->nr_irqs + 1,
+	direct->irqdomain = irq_domain_add_linear_fwnode(dev->fwnode, priv->nr_irqs + 1,
 						     &aplic_direct_irqdomain_ops, priv);
 	if (!direct->irqdomain) {
 		dev_err(dev, "failed to create direct irq domain\n");
diff --git a/drivers/irqchip/irq-riscv-imsic-platform.c b/drivers/irqchip/irq-riscv-imsic-platform.c
index c708780e8760..3213a5f03db2 100644
--- a/drivers/irqchip/irq-riscv-imsic-platform.c
+++ b/drivers/irqchip/irq-riscv-imsic-platform.c
@@ -325,7 +325,7 @@ int imsic_irqdomain_init(void)
 	}
 
 	/* Create Base IRQ domain */
-	imsic->base_domain = irq_domain_create_tree(imsic->fwnode,
+	imsic->base_domain = irq_domain_add_tree_fwnode(imsic->fwnode,
 						    &imsic_base_domain_ops, imsic);
 	if (!imsic->base_domain) {
 		pr_err("%pfwP: failed to create IMSIC base domain\n", imsic->fwnode);
diff --git a/drivers/irqchip/irq-riscv-intc.c b/drivers/irqchip/irq-riscv-intc.c
index e5805885394e..f837ee2fbaa1 100644
--- a/drivers/irqchip/irq-riscv-intc.c
+++ b/drivers/irqchip/irq-riscv-intc.c
@@ -178,7 +178,7 @@ static int __init riscv_intc_init_common(struct fwnode_handle *fn, struct irq_ch
 {
 	int rc;
 
-	intc_domain = irq_domain_create_tree(fn, &riscv_intc_domain_ops, chip);
+	intc_domain = irq_domain_add_tree_fwnode(fn, &riscv_intc_domain_ops, chip);
 	if (!intc_domain) {
 		pr_err("unable to add IRQ domain\n");
 		return -ENXIO;
diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index bf69a4802b71..310aa6a4c337 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -639,7 +639,7 @@ static int plic_probe(struct fwnode_handle *fwnode)
 		nr_handlers++;
 	}
 
-	priv->irqdomain = irq_domain_create_linear(fwnode, nr_irqs + 1,
+	priv->irqdomain = irq_domain_add_linear_fwnode(fwnode, nr_irqs + 1,
 						   &plic_irqdomain_ops, priv);
 	if (WARN_ON(!priv->irqdomain)) {
 		error = -ENOMEM;
diff --git a/drivers/irqchip/irq-uniphier-aidet.c b/drivers/irqchip/irq-uniphier-aidet.c
index 6005c2d28dd9..b6abc74fb7f7 100644
--- a/drivers/irqchip/irq-uniphier-aidet.c
+++ b/drivers/irqchip/irq-uniphier-aidet.c
@@ -185,7 +185,7 @@ static int uniphier_aidet_probe(struct platform_device *pdev)
 
 	spin_lock_init(&priv->lock);
 
-	priv->domain = irq_domain_create_hierarchy(
+	priv->domain = irq_domain_add_hierarchy_fwnode(
 					parent_domain, 0,
 					UNIPHIER_AIDET_NR_IRQS,
 					of_fwnode_handle(dev->of_node),
diff --git a/drivers/irqchip/qcom-irq-combiner.c b/drivers/irqchip/qcom-irq-combiner.c
index 18e696dc7f4d..47c1ab68189d 100644
--- a/drivers/irqchip/qcom-irq-combiner.c
+++ b/drivers/irqchip/qcom-irq-combiner.c
@@ -247,10 +247,10 @@ static int __init combiner_probe(struct platform_device *pdev)
 	if (combiner->parent_irq <= 0)
 		return -EPROBE_DEFER;
 
-	combiner->domain = irq_domain_create_linear(pdev->dev.fwnode, combiner->nirqs,
+	combiner->domain = irq_domain_add_linear_fwnode(pdev->dev.fwnode, combiner->nirqs,
 						    &domain_ops, combiner);
 	if (!combiner->domain)
-		/* Errors printed by irq_domain_create_linear */
+		/* Errors printed by irq_domain_add_linear_fwnode */
 		return -ENODEV;
 
 	irq_set_chained_handler_and_data(combiner->parent_irq,
diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c
index 74b2f124116e..261b1c6f089b 100644
--- a/drivers/irqchip/qcom-pdc.c
+++ b/drivers/irqchip/qcom-pdc.c
@@ -345,7 +345,7 @@ static int qcom_pdc_init(struct device_node *node, struct device_node *parent)
 		goto fail;
 	}
 
-	pdc_domain = irq_domain_create_hierarchy(parent_domain,
+	pdc_domain = irq_domain_add_hierarchy_fwnode(parent_domain,
 					IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP,
 					PDC_MAX_GPIO_IRQS,
 					of_fwnode_handle(node),
diff --git a/drivers/mfd/ioc3.c b/drivers/mfd/ioc3.c
index 58656837b7c6..966cfced03e3 100644
--- a/drivers/mfd/ioc3.c
+++ b/drivers/mfd/ioc3.c
@@ -138,7 +138,7 @@ static int ioc3_irq_domain_setup(struct ioc3_priv_data *ipd, int irq)
 	if (!fn)
 		goto err;
 
-	domain = irq_domain_create_linear(fn, 24, &ioc3_irq_domain_ops, ipd);
+	domain = irq_domain_add_linear_fwnode(fn, 24, &ioc3_irq_domain_ops, ipd);
 	if (!domain) {
 		irq_domain_free_fwnode(fn);
 		goto err;
diff --git a/drivers/misc/lan966x_pci.c b/drivers/misc/lan966x_pci.c
index 9c79b58137e5..8680974078e5 100644
--- a/drivers/misc/lan966x_pci.c
+++ b/drivers/misc/lan966x_pci.c
@@ -64,7 +64,7 @@ static struct pci_dev_intr_ctrl *pci_dev_create_intr_ctrl(struct pci_dev *pdev)
 
 	intr_ctrl->pci_dev = pdev;
 
-	intr_ctrl->irq_domain = irq_domain_create_linear(fwnode, 1, &pci_dev_irq_domain_ops,
+	intr_ctrl->irq_domain = irq_domain_add_linear_fwnode(fwnode, 1, &pci_dev_irq_domain_ops,
 							 intr_ctrl);
 	if (!intr_ctrl->irq_domain) {
 		pci_err(pdev, "Failed to create irqdomain\n");
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 8e82184be5e7..2888ca75f900 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1145,7 +1145,7 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
 		goto free_pdata;
 	}
 
-	pdata->irqdomain = irq_domain_create_linear(pdata->irqfwnode,
+	pdata->irqdomain = irq_domain_add_linear_fwnode(pdata->irqfwnode,
 						    SMSC95XX_NR_IRQS,
 						    &irq_domain_simple_ops,
 						    pdata);
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 1ef6b2a734a3..5612812527af 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -229,7 +229,7 @@ int dw_pcie_allocate_domains(struct dw_pcie_rp *pp)
 	struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
 	struct fwnode_handle *fwnode = of_fwnode_handle(pci->dev->of_node);
 
-	pp->irq_domain = irq_domain_create_linear(fwnode, pp->num_vectors,
+	pp->irq_domain = irq_domain_add_linear_fwnode(fwnode, pp->num_vectors,
 					       &dw_pcie_msi_domain_ops, pp);
 	if (!pp->irq_domain) {
 		dev_err(pci->dev, "Failed to create IRQ domain\n");
diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
index b3cdbc5927de..cb9838cf2c95 100644
--- a/drivers/pci/controller/pci-tegra.c
+++ b/drivers/pci/controller/pci-tegra.c
@@ -1702,7 +1702,7 @@ static int tegra_allocate_domains(struct tegra_msi *msi)
 	struct fwnode_handle *fwnode = dev_fwnode(pcie->dev);
 	struct irq_domain *parent;
 
-	parent = irq_domain_create_linear(fwnode, INT_PCI_MSI_NR,
+	parent = irq_domain_add_linear_fwnode(fwnode, INT_PCI_MSI_NR,
 					  &tegra_msi_domain_ops, msi);
 	if (!parent) {
 		dev_err(pcie->dev, "failed to create IRQ domain\n");
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index fefab2758a06..77d8aa56db3a 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -381,7 +381,7 @@ static int apple_pcie_port_setup_irq(struct apple_pcie_port *port)
 	if (!irq)
 		return -ENXIO;
 
-	port->domain = irq_domain_create_linear(fwnode, 32,
+	port->domain = irq_domain_add_linear_fwnode(fwnode, 32,
 						&apple_port_irq_domain_ops,
 						port);
 	if (!port->domain)
@@ -626,7 +626,7 @@ static int apple_msi_init(struct apple_pcie *pcie)
 		return -ENXIO;
 	}
 
-	parent = irq_domain_create_hierarchy(parent, 0, pcie->nvecs, fwnode,
+	parent = irq_domain_add_hierarchy_fwnode(parent, 0, pcie->nvecs, fwnode,
 					     &apple_msi_domain_ops, pcie);
 	if (!parent) {
 		dev_err(pcie->dev, "failed to create IRQ domain\n");
diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
index cc4cd4c5e63c..4555204a44de 100644
--- a/drivers/pci/controller/pcie-mediatek.c
+++ b/drivers/pci/controller/pcie-mediatek.c
@@ -489,7 +489,7 @@ static int mtk_pcie_allocate_msi_domains(struct mtk_pcie_port *port)
 
 	mutex_init(&port->lock);
 
-	port->inner_domain = irq_domain_create_linear(fwnode, MTK_MSI_IRQS_NUM,
+	port->inner_domain = irq_domain_add_linear_fwnode(fwnode, MTK_MSI_IRQS_NUM,
 						      &msi_domain_ops, port);
 	if (!port->inner_domain) {
 		dev_err(port->pcie->dev, "failed to create IRQ domain\n");
diff --git a/drivers/pci/controller/pcie-rcar-host.c b/drivers/pci/controller/pcie-rcar-host.c
index 7c92eada04af..e83fbabf982f 100644
--- a/drivers/pci/controller/pcie-rcar-host.c
+++ b/drivers/pci/controller/pcie-rcar-host.c
@@ -730,7 +730,7 @@ static int rcar_allocate_domains(struct rcar_msi *msi)
 	struct fwnode_handle *fwnode = dev_fwnode(pcie->dev);
 	struct irq_domain *parent;
 
-	parent = irq_domain_create_linear(fwnode, INT_PCI_MSI_NR,
+	parent = irq_domain_add_linear_fwnode(fwnode, INT_PCI_MSI_NR,
 					  &rcar_msi_domain_ops, msi);
 	if (!parent) {
 		dev_err(pcie->dev, "failed to create IRQ domain\n");
diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c
index 6c0268e92e41..73a5ef19cfd2 100644
--- a/drivers/pci/controller/pcie-xilinx.c
+++ b/drivers/pci/controller/pcie-xilinx.c
@@ -275,7 +275,7 @@ static int xilinx_allocate_msi_domains(struct xilinx_pcie *pcie)
 	struct fwnode_handle *fwnode = dev_fwnode(pcie->dev);
 	struct irq_domain *parent;
 
-	parent = irq_domain_create_linear(fwnode, XILINX_NUM_MSI_IRQS,
+	parent = irq_domain_add_linear_fwnode(fwnode, XILINX_NUM_MSI_IRQS,
 					  &xilinx_msi_domain_ops, pcie);
 	if (!parent) {
 		dev_err(pcie->dev, "failed to create IRQ domain\n");
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index ac6dc22b37c9..1e5661d088b1 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -405,7 +405,7 @@ __init int exynos_eint_gpio_init(struct samsung_pinctrl_drv_data *d)
 		}
 		bank->irq_chip->chip.name = bank->name;
 
-		bank->irq_domain = irq_domain_create_linear(bank->fwnode,
+		bank->irq_domain = irq_domain_add_linear_fwnode(bank->fwnode,
 				bank->nr_pins, &exynos_eint_irqd_ops, bank);
 		if (!bank->irq_domain) {
 			dev_err(dev, "gpio irq domain add failed\n");
@@ -697,7 +697,7 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d)
 			return -ENOMEM;
 		bank->irq_chip->chip.name = bank->name;
 
-		bank->irq_domain = irq_domain_create_linear(bank->fwnode,
+		bank->irq_domain = irq_domain_add_linear_fwnode(bank->fwnode,
 				bank->nr_pins, &exynos_eint_irqd_ops, bank);
 		if (!bank->irq_domain) {
 			dev_err(dev, "wkup irq domain add failed\n");
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
index 68715c09baa9..e176c7f01e6d 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -484,7 +484,7 @@ static int s3c64xx_eint_gpio_init(struct samsung_pinctrl_drv_data *d)
 		mask = bank->eint_mask;
 		nr_eints = fls(mask);
 
-		bank->irq_domain = irq_domain_create_linear(bank->fwnode,
+		bank->irq_domain = irq_domain_add_linear_fwnode(bank->fwnode,
 					nr_eints, &s3c64xx_gpio_irqd_ops, bank);
 		if (!bank->irq_domain) {
 			dev_err(dev, "gpio irq domain add failed\n");
@@ -756,7 +756,7 @@ static int s3c64xx_eint_eint0_init(struct samsung_pinctrl_drv_data *d)
 			return -ENOMEM;
 		ddata->bank = bank;
 
-		bank->irq_domain = irq_domain_create_linear(bank->fwnode,
+		bank->irq_domain = irq_domain_add_linear_fwnode(bank->fwnode,
 				nr_eints, &s3c64xx_eint0_irqd_ops, ddata);
 		if (!bank->irq_domain) {
 			dev_err(dev, "wkup irq domain add failed\n");
diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.c b/drivers/pinctrl/stm32/pinctrl-stm32.c
index 5b7fa77c1184..d9539a97a514 100644
--- a/drivers/pinctrl/stm32/pinctrl-stm32.c
+++ b/drivers/pinctrl/stm32/pinctrl-stm32.c
@@ -1356,7 +1356,7 @@ static int stm32_gpiolib_register_bank(struct stm32_pinctrl *pctl, struct fwnode
 		/* create irq hierarchical domain */
 		bank->fwnode = fwnode;
 
-		bank->domain = irq_domain_create_hierarchy(pctl->domain, 0, STM32_GPIO_IRQ_LINE,
+		bank->domain = irq_domain_add_hierarchy_fwnode(pctl->domain, 0, STM32_GPIO_IRQ_LINE,
 							   bank->fwnode, &stm32_gpio_domain_ops,
 							   bank);
 
diff --git a/drivers/platform/x86/intel/crystal_cove_charger.c b/drivers/platform/x86/intel/crystal_cove_charger.c
index e4299cfa2205..7595b239b8d7 100644
--- a/drivers/platform/x86/intel/crystal_cove_charger.c
+++ b/drivers/platform/x86/intel/crystal_cove_charger.c
@@ -100,7 +100,7 @@ static int crystal_cove_charger_probe(struct platform_device *pdev)
 	if (charger->irq < 0)
 		return charger->irq;
 
-	charger->irq_domain = irq_domain_create_linear(dev_fwnode(pdev->dev.parent), 1,
+	charger->irq_domain = irq_domain_add_linear_fwnode(dev_fwnode(pdev->dev.parent), 1,
 						       &irq_domain_simple_ops, NULL);
 	if (!charger->irq_domain)
 		return -ENOMEM;
diff --git a/drivers/soundwire/irq.c b/drivers/soundwire/irq.c
index c237e6d0766b..7b1d8f91ddb7 100644
--- a/drivers/soundwire/irq.c
+++ b/drivers/soundwire/irq.c
@@ -31,7 +31,7 @@ int sdw_irq_create(struct sdw_bus *bus,
 {
 	bus->irq_chip.name = dev_name(bus->dev);
 
-	bus->domain = irq_domain_create_linear(fwnode, SDW_MAX_DEVICES,
+	bus->domain = irq_domain_add_linear_fwnode(fwnode, SDW_MAX_DEVICES,
 					       &sdw_domain_ops, bus);
 	if (!bus->domain) {
 		dev_err(bus->dev, "Failed to add IRQ domain\n");
diff --git a/include/linux/irq_sim.h b/include/linux/irq_sim.h
index 89b4d8ff274b..43a67f96fb97 100644
--- a/include/linux/irq_sim.h
+++ b/include/linux/irq_sim.h
@@ -23,17 +23,17 @@ struct irq_sim_ops {
 				     irq_hw_number_t hwirq, void *data);
 };
 
-struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_sim_fwnode(struct fwnode_handle *fwnode,
 					 unsigned int num_irqs);
-struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
+struct irq_domain *devm_irq_domain_add_sim_fwnode(struct device *dev,
 					      struct fwnode_handle *fwnode,
 					      unsigned int num_irqs);
-struct irq_domain *irq_domain_create_sim_full(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_sim_full_fwnode(struct fwnode_handle *fwnode,
 					      unsigned int num_irqs,
 					      const struct irq_sim_ops *ops,
 					      void *data);
 struct irq_domain *
-devm_irq_domain_create_sim_full(struct device *dev,
+devm_irq_domain_add_sim_full_fwnode(struct device *dev,
 				struct fwnode_handle *fwnode,
 				unsigned int num_irqs,
 				const struct irq_sim_ops *ops,
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index ebc6f622e96b..00a0bf2c0942 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -333,12 +333,12 @@ struct irq_domain *irq_domain_instantiate(const struct irq_domain_info *info);
 struct irq_domain *devm_irq_domain_instantiate(struct device *dev,
 					       const struct irq_domain_info *info);
 
-struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_simple_fwnode(struct fwnode_handle *fwnode,
 					    unsigned int size,
 					    unsigned int first_irq,
 					    const struct irq_domain_ops *ops,
 					    void *host_data);
-struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_legacy_fwnode(struct fwnode_handle *fwnode,
 					    unsigned int size,
 					    unsigned int first_irq,
 					    irq_hw_number_t first_hwirq,
@@ -367,7 +367,7 @@ static inline struct irq_domain *irq_domain_add_legacy_of_node(struct device_nod
 						       const struct irq_domain_ops *ops,
 						       void *host_data)
 {
-	return irq_domain_create_legacy(of_fwnode_handle(of_node), size,
+	return irq_domain_add_legacy_fwnode(of_fwnode_handle(of_node), size,
 					first_irq, first_hwirq, ops, host_data);
 }
 
@@ -423,7 +423,7 @@ static inline struct irq_domain *irq_domain_add_simple_of_node(struct device_nod
 						       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);
+	return irq_domain_add_simple_fwnode(of_fwnode_handle(of_node), size, first_irq, ops, host_data);
 }
 
 /**
@@ -486,7 +486,7 @@ static inline struct irq_domain *irq_domain_add_tree_of_node(struct device_node
 	return IS_ERR(d) ? NULL : d;
 }
 
-static inline struct irq_domain *irq_domain_create_linear(struct fwnode_handle *fwnode,
+static inline struct irq_domain *irq_domain_add_linear_fwnode(struct fwnode_handle *fwnode,
 					 unsigned int size,
 					 const struct irq_domain_ops *ops,
 					 void *host_data)
@@ -503,7 +503,7 @@ static inline struct irq_domain *irq_domain_create_linear(struct fwnode_handle *
 	return IS_ERR(d) ? NULL : d;
 }
 
-static inline struct irq_domain *irq_domain_create_tree(struct fwnode_handle *fwnode,
+static inline struct irq_domain *irq_domain_add_tree_fwnode(struct fwnode_handle *fwnode,
 					 const struct irq_domain_ops *ops,
 					 void *host_data)
 {
@@ -608,7 +608,7 @@ void irq_domain_set_info(struct irq_domain *domain, unsigned int virq,
 void irq_domain_reset_irq_data(struct irq_data *irq_data);
 #ifdef	CONFIG_IRQ_DOMAIN_HIERARCHY
 /**
- * irq_domain_create_hierarchy - Add a irqdomain into the hierarchy
+ * irq_domain_add_hierarchy_fwnode - 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
@@ -622,7 +622,7 @@ void irq_domain_reset_irq_data(struct irq_data *irq_data);
  * domain flags are set.
  * Returns pointer to IRQ domain, or NULL on failure.
  */
-static inline struct irq_domain *irq_domain_create_hierarchy(struct irq_domain *parent,
+static inline struct irq_domain *irq_domain_add_hierarchy_fwnode(struct irq_domain *parent,
 					    unsigned int flags,
 					    unsigned int size,
 					    struct fwnode_handle *fwnode,
@@ -650,7 +650,7 @@ static inline struct irq_domain *irq_domain_add_hierarchy_of_node(struct irq_dom
 					    const struct irq_domain_ops *ops,
 					    void *host_data)
 {
-	return irq_domain_create_hierarchy(parent, flags, size,
+	return irq_domain_add_hierarchy_fwnode(parent, flags, size,
 					   of_fwnode_handle(node),
 					   ops, host_data);
 }
diff --git a/kernel/irq/ipi-mux.c b/kernel/irq/ipi-mux.c
index fa4fc18c6131..03d46f977a44 100644
--- a/kernel/irq/ipi-mux.c
+++ b/kernel/irq/ipi-mux.c
@@ -174,7 +174,7 @@ int ipi_mux_create(unsigned int nr_ipi, void (*mux_send)(unsigned int cpu))
 		goto fail_free_cpu;
 	}
 
-	domain = irq_domain_create_linear(fwnode, nr_ipi,
+	domain = irq_domain_add_linear_fwnode(fwnode, nr_ipi,
 					  &ipi_mux_domain_ops, NULL);
 	if (!domain) {
 		pr_err("unable to add IPI Mux domain\n");
diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index 1a3d483548e2..69515f1501b2 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -180,7 +180,7 @@ static const struct irq_domain_ops irq_sim_domain_ops = {
 };
 
 /**
- * irq_domain_create_sim - Create a new interrupt simulator irq_domain and
+ * irq_domain_add_sim_fwnode - Create a new interrupt simulator irq_domain and
  *                         allocate a range of dummy interrupts.
  *
  * @fwnode:     struct fwnode_handle to be associated with this domain.
@@ -189,14 +189,14 @@ static const struct irq_domain_ops irq_sim_domain_ops = {
  * On success: return a new irq_domain object.
  * On failure: a negative errno wrapped with ERR_PTR().
  */
-struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_sim_fwnode(struct fwnode_handle *fwnode,
 					 unsigned int num_irqs)
 {
-	return irq_domain_create_sim_full(fwnode, num_irqs, NULL, NULL);
+	return irq_domain_add_sim_full_fwnode(fwnode, num_irqs, NULL, NULL);
 }
-EXPORT_SYMBOL_GPL(irq_domain_create_sim);
+EXPORT_SYMBOL_GPL(irq_domain_add_sim_fwnode);
 
-struct irq_domain *irq_domain_create_sim_full(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_sim_full_fwnode(struct fwnode_handle *fwnode,
 					      unsigned int num_irqs,
 					      const struct irq_sim_ops *ops,
 					      void *data)
@@ -211,7 +211,7 @@ struct irq_domain *irq_domain_create_sim_full(struct fwnode_handle *fwnode,
 	if (!pending)
 		return ERR_PTR(-ENOMEM);
 
-	work_ctx->domain = irq_domain_create_linear(fwnode, num_irqs,
+	work_ctx->domain = irq_domain_add_linear_fwnode(fwnode, num_irqs,
 						    &irq_sim_domain_ops,
 						    work_ctx);
 	if (!work_ctx->domain)
@@ -227,7 +227,7 @@ struct irq_domain *irq_domain_create_sim_full(struct fwnode_handle *fwnode,
 
 	return no_free_ptr(work_ctx)->domain;
 }
-EXPORT_SYMBOL_GPL(irq_domain_create_sim_full);
+EXPORT_SYMBOL_GPL(irq_domain_add_sim_full_fwnode);
 
 /**
  * irq_domain_remove_sim - Deinitialize the interrupt simulator domain: free
@@ -255,7 +255,7 @@ static void devm_irq_domain_remove_sim(void *data)
 }
 
 /**
- * devm_irq_domain_create_sim - Create a new interrupt simulator for
+ * devm_irq_domain_add_sim_fwnode - Create a new interrupt simulator for
  *                              a managed device.
  *
  * @dev:        Device to initialize the simulator object for.
@@ -265,17 +265,17 @@ static void devm_irq_domain_remove_sim(void *data)
  * On success: return a new irq_domain object.
  * On failure: a negative errno wrapped with ERR_PTR().
  */
-struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
+struct irq_domain *devm_irq_domain_add_sim_fwnode(struct device *dev,
 					      struct fwnode_handle *fwnode,
 					      unsigned int num_irqs)
 {
-	return devm_irq_domain_create_sim_full(dev, fwnode, num_irqs,
+	return devm_irq_domain_add_sim_full_fwnode(dev, fwnode, num_irqs,
 					       NULL, NULL);
 }
-EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim);
+EXPORT_SYMBOL_GPL(devm_irq_domain_add_sim_fwnode);
 
 struct irq_domain *
-devm_irq_domain_create_sim_full(struct device *dev,
+devm_irq_domain_add_sim_full_fwnode(struct device *dev,
 				struct fwnode_handle *fwnode,
 				unsigned int num_irqs,
 				const struct irq_sim_ops *ops,
@@ -284,7 +284,7 @@ devm_irq_domain_create_sim_full(struct device *dev,
 	struct irq_domain *domain;
 	int ret;
 
-	domain = irq_domain_create_sim_full(fwnode, num_irqs, ops, data);
+	domain = irq_domain_add_sim_full_fwnode(fwnode, num_irqs, ops, data);
 	if (IS_ERR(domain))
 		return domain;
 
@@ -294,4 +294,4 @@ devm_irq_domain_create_sim_full(struct device *dev,
 
 	return domain;
 }
-EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim_full);
+EXPORT_SYMBOL_GPL(devm_irq_domain_add_sim_full_fwnode);
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 00f254a67bb0..2d5f716887d9 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -443,7 +443,7 @@ void irq_domain_update_bus_token(struct irq_domain *domain,
 EXPORT_SYMBOL_GPL(irq_domain_update_bus_token);
 
 /**
- * irq_domain_create_simple() - Register an irq_domain and optionally map a range of irqs
+ * irq_domain_add_simple_fwnode() - Register an irq_domain and optionally map a range of irqs
  * @fwnode: firmware node for the interrupt controller
  * @size: total number of irqs in mapping
  * @first_irq: first number of irq block assigned to the domain,
@@ -460,7 +460,7 @@ EXPORT_SYMBOL_GPL(irq_domain_update_bus_token);
  * irqs get mapped dynamically on the fly. However, if the controller requires
  * static virq assignments (non-DT boot) then it will set that up correctly.
  */
-struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_simple_fwnode(struct fwnode_handle *fwnode,
 					    unsigned int size,
 					    unsigned int first_irq,
 					    const struct irq_domain_ops *ops,
@@ -478,9 +478,9 @@ struct irq_domain *irq_domain_create_simple(struct fwnode_handle *fwnode,
 
 	return IS_ERR(domain) ? NULL : domain;
 }
-EXPORT_SYMBOL_GPL(irq_domain_create_simple);
+EXPORT_SYMBOL_GPL(irq_domain_add_simple_fwnode);
 
-struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode,
+struct irq_domain *irq_domain_add_legacy_fwnode(struct fwnode_handle *fwnode,
 					 unsigned int size,
 					 unsigned int first_irq,
 					 irq_hw_number_t first_hwirq,
@@ -500,7 +500,7 @@ struct irq_domain *irq_domain_create_legacy(struct fwnode_handle *fwnode,
 
 	return IS_ERR(domain) ? NULL : domain;
 }
-EXPORT_SYMBOL_GPL(irq_domain_create_legacy);
+EXPORT_SYMBOL_GPL(irq_domain_add_legacy_fwnode);
 
 /**
  * irq_find_matching_fwspec() - Locates a domain for a given fwspec
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index 396a067a8a56..1facbb56108c 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -858,7 +858,7 @@ static struct irq_domain *__msi_create_irq_domain(struct fwnode_handle *fwnode,
 	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
 		msi_domain_update_chip_ops(info);
 
-	domain = irq_domain_create_hierarchy(parent, flags | IRQ_DOMAIN_FLAG_MSI, 0,
+	domain = irq_domain_add_hierarchy_fwnode(parent, flags | IRQ_DOMAIN_FLAG_MSI, 0,
 					     fwnode, &msi_domain_ops, info);
 
 	if (domain) {
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c
index 0e70a3ab42b5..66116381784d 100644
--- a/sound/soc/codecs/rt5677.c
+++ b/sound/soc/codecs/rt5677.c
@@ -5509,7 +5509,7 @@ static int rt5677_init_irq(struct i2c_client *i2c)
 			RT5677_GPIO1_PIN_MASK, RT5677_GPIO1_PIN_IRQ);
 
 	/* Ready to listen for interrupts */
-	rt5677->domain = irq_domain_create_linear(dev_fwnode(&i2c->dev),
+	rt5677->domain = irq_domain_add_linear_fwnode(dev_fwnode(&i2c->dev),
 			RT5677_IRQ_NUM, &rt5677_domain_ops, rt5677);
 	if (!rt5677->domain) {
 		dev_err(&i2c->dev, "Failed to create IRQ domain\n");
-- 
2.48.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ