Commit 6e4e30d7 authored by Jiri Slaby (SUSE)'s avatar Jiri Slaby (SUSE) Committed by Thomas Gleixner
Browse files

soc: Switch to irq_domain_create_*()



irq_domain_add_*() interfaces are going away as being obsolete now.
Switch to the preferred irq_domain_create_*() ones. Those differ in the
node parameter: They take more generic struct fwnode_handle instead of
struct device_node. Therefore, of_fwnode_handle() is added around the
original parameter.

Note some of the users can likely use dev->fwnode directly instead of
indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not
guaranteed to be set for all, so this has to be investigated on case to
case basis (by people who can actually test with the HW).

[ tglx: Fix up subject prefix ]

Signed-off-by: default avatarJiri Slaby (SUSE) <jirislaby@kernel.org>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> # For soc/fsl
Link: https://lore.kernel.org/all/20250319092951.37667-35-jirislaby@kernel.org

parent b625f934
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -274,7 +274,7 @@ static int __init dove_init_pmu_irq(struct pmu_data *pmu, int irq)
	writel(0, pmu->pmc_base + PMC_IRQ_MASK);
	writel(0, pmu->pmc_base + PMC_IRQ_CAUSE);

	domain = irq_domain_add_linear(pmu->of_node, NR_PMU_IRQS,
	domain = irq_domain_create_linear(of_fwnode_handle(pmu->of_node), NR_PMU_IRQS,
					  &irq_generic_chip_ops, NULL);
	if (!domain) {
		pr_err("%s: unable to add irq domain\n", name);
+2 −2
Original line number Diff line number Diff line
@@ -446,7 +446,7 @@ static int qe_ic_init(struct platform_device *pdev)
		high_handler = NULL;
	}

	qe_ic->irqhost = irq_domain_add_linear(node, NR_QE_IC_INTS,
	qe_ic->irqhost = irq_domain_create_linear(of_fwnode_handle(node), NR_QE_IC_INTS,
						  &qe_ic_host_ops, qe_ic);
	if (qe_ic->irqhost == NULL) {
		dev_err(dev, "failed to add irq domain\n");
+1 −1
Original line number Diff line number Diff line
@@ -399,7 +399,7 @@ static int qcom_smp2p_inbound_entry(struct qcom_smp2p *smp2p,
				    struct smp2p_entry *entry,
				    struct device_node *node)
{
	entry->domain = irq_domain_add_linear(node, 32, &smp2p_irq_ops, entry);
	entry->domain = irq_domain_create_linear(of_fwnode_handle(node), 32, &smp2p_irq_ops, entry);
	if (!entry->domain) {
		dev_err(smp2p->dev, "failed to add irq_domain\n");
		return -ENOMEM;
+1 −1
Original line number Diff line number Diff line
@@ -456,7 +456,7 @@ static int smsm_inbound_entry(struct qcom_smsm *smsm,
		return ret;
	}

	entry->domain = irq_domain_add_linear(node, 32, &smsm_irq_ops, entry);
	entry->domain = irq_domain_create_linear(of_fwnode_handle(node), 32, &smsm_irq_ops, entry);
	if (!entry->domain) {
		dev_err(smsm->dev, "failed to add irq_domain\n");
		return -ENOMEM;
+3 −2
Original line number Diff line number Diff line
@@ -2500,7 +2500,8 @@ static int tegra_pmc_irq_init(struct tegra_pmc *pmc)
	pmc->irq.irq_set_type = pmc->soc->irq_set_type;
	pmc->irq.irq_set_wake = pmc->soc->irq_set_wake;

	pmc->domain = irq_domain_add_hierarchy(parent, 0, 96, pmc->dev->of_node,
	pmc->domain = irq_domain_create_hierarchy(parent, 0, 96,
						  of_fwnode_handle(pmc->dev->of_node),
						  &tegra_pmc_irq_domain_ops, pmc);
	if (!pmc->domain) {
		dev_err(pmc->dev, "failed to allocate domain\n");