From nobody Sun Feb 8 11:43:21 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8EC052E11BC for ; Sun, 1 Feb 2026 08:40:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769935227; cv=none; b=Z96GrvgnimOnsT0xt8pwRRalcXLVGGufOn/mkyapDAnV6Hfle8lp7g9MOReEGroQz3QrCrIZhwM7il4E5ibkanfZqL/Qi9FZa1tD7ejX0J0noTQ+27+dCJ6d8zx+N9kwhs9E+TWvnIPgW4jow1cLYhtFvoUE4tJMmjIX9RsYqcw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769935227; c=relaxed/simple; bh=Tf7XDSodnM0ZTGpbpaDxs3zi7eFpQ8dwY4xt9IhXjfY=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=dYs8xlctUYWFYPVfPjk+Lm1ULkYxNGOaI6w9+RIUEsClYzlPIC7oObry0+IkxmKepe0qLv1I4S6SCUB0TfnWFBAwuIzPnqYyW+pQXP++eavzpDOYYFmN7IQMJ4cs7DsjcCXuvNT7m4zmg9WGIPQNUfnQclToY3EnIun33dCcYBs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=piFPjCqa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="piFPjCqa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F84BC4CEF7; Sun, 1 Feb 2026 08:40:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769935227; bh=Tf7XDSodnM0ZTGpbpaDxs3zi7eFpQ8dwY4xt9IhXjfY=; h=Date:From:To:Cc:Subject:From; b=piFPjCqaopM+jqgrczkOhXHhP/KYA1De7JAlq6O1MHoIe+0bLT0R9u3UBzGfBXUYR wzzgc4BSO7ZzZfZMiG70NF9kWrJDFff0vSLyT/GWkhtptYsgK2sFCcJefpcN1JQQCv VuKe+CeVTaQEquG4fKi/EBFL+i2jBmTl9N3N455/1Hy9kc06BEUt6ykcgSjk1rDf5/ JXjk3nsbE2bFt2gCIMqEy1yyIOltFXkNKQe1bYszn5NKw6JWnXnP74duNrzzhKJ0Tj AY5wertb0//YspF1MeF/tZXuEWCFyZe050A6lD6omVmGmHRvV3qUsrDxuo5OswXQ+w u/1yYzprv49kw== Date: Sun, 1 Feb 2026 09:40:23 +0100 From: Ingo Molnar To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, Thomas Gleixner , Peter Zijlstra Subject: [GIT PULL] IRQ fixes Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Linus, Please pull the latest irq/urgent Git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-202= 6-02-01 for you to fetch changes up to ba5c657141ea29261e893c46faff29a101f4496a: Misc irqchip fixes: - Fix a regression in the ls-extirq irqchip driver - Fix an irqchip platform enumeration regression in the simple-pm-bus driver Thanks, Ingo ------------------> Ioana Ciornei (2): irqchip/ls-extirq: Convert to a platform driver to make it work again bus: simple-pm-bus: Probe the Layerscape SCFG node drivers/bus/simple-pm-bus.c | 6 ++++ drivers/irqchip/irq-ls-extirq.c | 75 ++++++++++++++++++++-----------------= ---- 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c index d8e029e7e53f..3f00d953fb9a 100644 --- a/drivers/bus/simple-pm-bus.c +++ b/drivers/bus/simple-pm-bus.c @@ -142,6 +142,12 @@ static const struct of_device_id simple_pm_bus_of_matc= h[] =3D { { .compatible =3D "simple-mfd", .data =3D ONLY_BUS }, { .compatible =3D "isa", .data =3D ONLY_BUS }, { .compatible =3D "arm,amba-bus", .data =3D ONLY_BUS }, + { .compatible =3D "fsl,ls1021a-scfg", }, + { .compatible =3D "fsl,ls1043a-scfg", }, + { .compatible =3D "fsl,ls1046a-scfg", }, + { .compatible =3D "fsl,ls1088a-isc", }, + { .compatible =3D "fsl,ls2080a-isc", }, + { .compatible =3D "fsl,lx2160a-isc", }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, simple_pm_bus_of_match); diff --git a/drivers/irqchip/irq-ls-extirq.c b/drivers/irqchip/irq-ls-extir= q.c index 50a7b38381b9..96f9c20621cf 100644 --- a/drivers/irqchip/irq-ls-extirq.c +++ b/drivers/irqchip/irq-ls-extirq.c @@ -168,40 +168,34 @@ ls_extirq_parse_map(struct ls_extirq_data *priv, stru= ct device_node *node) return 0; } =20 -static int __init -ls_extirq_of_init(struct device_node *node, struct device_node *parent) +static int ls_extirq_probe(struct platform_device *pdev) { struct irq_domain *domain, *parent_domain; + struct device_node *node, *parent; + struct device *dev =3D &pdev->dev; struct ls_extirq_data *priv; int ret; =20 + node =3D dev->of_node; + parent =3D of_irq_find_parent(node); + if (!parent) + return dev_err_probe(dev, -ENODEV, "Failed to get IRQ parent node\n"); + parent_domain =3D irq_find_host(parent); - if (!parent_domain) { - pr_err("Cannot find parent domain\n"); - ret =3D -ENODEV; - goto err_irq_find_host; - } + if (!parent_domain) + return dev_err_probe(dev, -EPROBE_DEFER, "Cannot find parent domain\n"); =20 - priv =3D kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) { - ret =3D -ENOMEM; - goto err_alloc_priv; - } + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return dev_err_probe(dev, -ENOMEM, "Failed to allocate memory\n"); =20 - /* - * All extirq OF nodes are under a scfg/syscon node with - * the 'ranges' property - */ - priv->intpcr =3D of_iomap(node, 0); - if (!priv->intpcr) { - pr_err("Cannot ioremap OF node %pOF\n", node); - ret =3D -ENOMEM; - goto err_iomap; - } + priv->intpcr =3D devm_of_iomap(dev, node, 0, NULL); + if (!priv->intpcr) + return dev_err_probe(dev, -ENOMEM, "Cannot ioremap OF node %pOF\n", node= ); =20 ret =3D ls_extirq_parse_map(priv, node); if (ret) - goto err_parse_map; + return dev_err_probe(dev, ret, "Failed to parse IRQ map\n"); =20 priv->big_endian =3D of_device_is_big_endian(node->parent); priv->is_ls1021a_or_ls1043a =3D of_device_is_compatible(node, "fsl,ls1021= a-extirq") || @@ -210,23 +204,26 @@ ls_extirq_of_init(struct device_node *node, struct de= vice_node *parent) =20 domain =3D irq_domain_create_hierarchy(parent_domain, 0, priv->nirq, of_f= wnode_handle(node), &extirq_domain_ops, priv); - if (!domain) { - ret =3D -ENOMEM; - goto err_add_hierarchy; - } + if (!domain) + return dev_err_probe(dev, -ENOMEM, "Failed to add IRQ domain\n"); =20 return 0; - -err_add_hierarchy: -err_parse_map: - iounmap(priv->intpcr); -err_iomap: - kfree(priv); -err_alloc_priv: -err_irq_find_host: - return ret; } =20 -IRQCHIP_DECLARE(ls1021a_extirq, "fsl,ls1021a-extirq", ls_extirq_of_init); -IRQCHIP_DECLARE(ls1043a_extirq, "fsl,ls1043a-extirq", ls_extirq_of_init); -IRQCHIP_DECLARE(ls1088a_extirq, "fsl,ls1088a-extirq", ls_extirq_of_init); +static const struct of_device_id ls_extirq_dt_ids[] =3D { + { .compatible =3D "fsl,ls1021a-extirq" }, + { .compatible =3D "fsl,ls1043a-extirq" }, + { .compatible =3D "fsl,ls1088a-extirq" }, + {} +}; +MODULE_DEVICE_TABLE(of, ls_extirq_dt_ids); + +static struct platform_driver ls_extirq_driver =3D { + .probe =3D ls_extirq_probe, + .driver =3D { + .name =3D "ls-extirq", + .of_match_table =3D ls_extirq_dt_ids, + } +}; + +builtin_platform_driver(ls_extirq_driver);