From nobody Mon Dec 1 22:05:54 2025 Received: from mx-relay180-hz1.antispameurope.com (mx-relay180-hz1.antispameurope.com [94.100.133.63]) (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 1457E304967 for ; Mon, 1 Dec 2025 10:53:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=94.100.133.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764586386; cv=pass; b=EcQ33xZqaLnjyGVhPzzIlA7qgCeO0WQTwbD0Qncwt+0K7toh1zqWFEYS6dBFmJH/Ou7t0wZ0OykFhuIUGeUFUiSEBjMCANWJQ03qinzvfKBfQ2ZHIzImynRtDMu7m4EJ0piro0Plwy3Nr05LofRIPNxKLquRtkx4bVC2To/xorA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764586386; c=relaxed/simple; bh=5oms8uc5S43PGOTYBY8EU+HPAJQquVtoNbI+x+bKKLA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ibp44kgO7afXOn8ki6gA8+usF10uI4IjiZwWmIvwxY0eBBoha8SCdVpTvhpYFQAClMwDyWumqAiRZPNlw0tB43/sEuo3Xs8ieHB5+yLo/SITVF9JIL1wJGs3gH6yusI86e4BmyKvdvlV296W/xTxYkgBEfG7byE81vz36s3qJPI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ew.tq-group.com; spf=pass smtp.mailfrom=ew.tq-group.com; dkim=pass (2048-bit key) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b=Mlkt1NvY; arc=pass smtp.client-ip=94.100.133.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ew.tq-group.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ew.tq-group.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="Mlkt1NvY" ARC-Authentication-Results: i=1; mx-gate180-hz1.hornetsecurity.com 1; spf=pass reason=mailfrom (ip=94.100.132.6, headerfrom=ew.tq-group.com) smtp.mailfrom=ew.tq-group.com smtp.helo=hmail-p-smtp01-out03-hz1.hornetsecurity.com; dmarc=pass header.from=ew.tq-group.com orig.disposition=pass ARC-Message-Signature: a=rsa-sha256; bh=jpud14AVdCVE4BqctTtx1QgtADA41ixWO6mfo6mWLNk=; c=relaxed/relaxed; d=hornetsecurity.com; h=from:to:date:subject:mime-version:; i=1; s=hse1; t=1764586329; b=aZea2+j8ED58y+NnV4UtxwJuDz7JbRGX3/7A3vH0usUKDb/yNK2b9mgY9Wuv4XNQXK1UCMCy He0qi9VjS4z6K7P4IlnVGZXkWcV22XlBvyohzsITa8un4ku9UrrZx0u6C/dW41HfG6doOaDrjV9 6JJ/WXGF6eiJGf1Wru1sboPAgswqswIw4GkEQn4WqfNklbW5BApNtA6EgSFDeW/o6g223twk8HV H+I6dBxLFZDZpJwwoVR7NpINrvnZwZ80k4U+/J1O5X+LdeD4y5QTh8xVxrLY3b2Iy5MsfB/I7WJ kZSWH8Y34llGcP3LrV5gl/hw04O8tWzwc/xOca2C84mgQ== ARC-Seal: a=rsa-sha256; cv=none; d=hornetsecurity.com; i=1; s=hse1; t=1764586329; b=oWmFhI6HtUSzDQkLRoVSRclAGxAA2PlQSrFylVOPOSPr66pgoOWZB94TYRwd/r0Uyh9MmdGN XS18tbBK7SWQjFUMkT/B4NoUWZkCKRwUrxLt8p2GE7r5omZNCniVSjRQYryRYqh3wAzYDG82BKG hXgi5UKpg2uiczsUhT9LpB2s5tWp1G401TQLr8YQBS8vZnBZ6ZkLyjJMvbYYVSYRV3GDWEDVqqa 6TMd8LvsSCB9D4A0rZY3jRVMSOHmXl95ymo8r6ZQvRbGw1np8+ojfCo9XpyxZsr7x7gCg9U/AIT 9g3fm7xVkGxlWBk77JIZHGciULJIFKiSvGNM2PZyXnQDg== Received: from he-nlb01-hz1.hornetsecurity.com ([94.100.132.6]) by mx-relay180-hz1.antispameurope.com; Mon, 01 Dec 2025 11:52:09 +0100 Received: from steina-w.tq-net.de (host-82-135-125-110.customer.m-online.net [82.135.125.110]) (Authenticated sender: alexander.stein@ew.tq-group.com) by hmail-p-smtp01-out03-hz1.hornetsecurity.com (Postfix) with ESMTPSA id B50C8CC0E91; Mon, 1 Dec 2025 11:51:53 +0100 (CET) From: Alexander Stein To: Shawn Guo , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thomas Gleixner Cc: Alexander Stein , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 1/3] irqchip/ls-extirq: Convert to platform driver Date: Mon, 1 Dec 2025 11:51:40 +0100 Message-ID: <20251201105144.539450-2-alexander.stein@ew.tq-group.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251201105144.539450-1-alexander.stein@ew.tq-group.com> References: <20251201105144.539450-1-alexander.stein@ew.tq-group.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-cloud-security-sender: alexander.stein@ew.tq-group.com X-cloud-security-recipient: linux-kernel@vger.kernel.org X-cloud-security-crypt: load encryption module X-cloud-security-Mailarchiv: E-Mail archived for: alexander.stein@ew.tq-group.com X-cloud-security-Mailarchivtype: outbound X-cloud-security-Virusscan: CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mx-relay180-hz1.antispameurope.com with 4dKghB1ZPZz2SjPb X-cloud-security-connect: he-nlb01-hz1.hornetsecurity.com[94.100.132.6], TLS=1, IP=94.100.132.6 X-cloud-security-Digest: 877b155cd18575eb910342161cf8e7ff X-cloud-security: scantime:2.275 DKIM-Signature: a=rsa-sha256; bh=jpud14AVdCVE4BqctTtx1QgtADA41ixWO6mfo6mWLNk=; c=relaxed/relaxed; d=ew.tq-group.com; h=content-type:mime-version:subject:from:to:message-id:date; s=hse1; t=1764586328; v=1; b=Mlkt1NvYdvm8vO4dJMU26iAxgAK4C7m0HTOV8YspIvplhH3tdQshPlxhLZyYKw7Z/YD5ZBiH 19XGZt0p0Tb1UdWEUvHbXHYvlUCsKqkrTQVznsjtzDCKYkcck0HlXmtlFMKFe5gMg+kDNl9+hbE dYqF4iyS2a0TgnO63LkUzpc8dpOjexxhMYfJBcZ2MINBOvGZE5XCokuhCq+PHp6LBrX9avq9HJg EURfh4G9GpzpbObJoIzQ9MZwloORGYQwe6pl6vNPdialHFYeKrkviXmcmnrgr2SIyPZqNW/GSIR hwWcZisx//at4LEDX/J1zLA/+guOUNyYXZPXxi1LoDjBQ== Content-Type: text/plain; charset="utf-8" extirq maps to gic which might not be present yet when this driver is initialized. Convert it to platform driver in order to allow probe deferral. Signed-off-by: Alexander Stein --- drivers/irqchip/irq-ls-extirq.c | 40 ++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/drivers/irqchip/irq-ls-extirq.c b/drivers/irqchip/irq-ls-extir= q.c index 50a7b38381b98..cb7db9ae79087 100644 --- a/drivers/irqchip/irq-ls-extirq.c +++ b/drivers/irqchip/irq-ls-extirq.c @@ -168,19 +168,29 @@ 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 const struct of_device_id ls_extirq_match[] =3D { + { .compatible =3D "fsl,ls1021a-extirq" }, + { .compatible =3D "fsl,ls1043a-extirq" }, + { .compatible =3D "fsl,ls1088a-extirq" }, + {} +}; + +static int ls_extirq_probe(struct platform_device *pdev) { + struct device_node *node =3D pdev->dev.of_node; struct irq_domain *domain, *parent_domain; + struct device *dev =3D &pdev->dev; + struct device_node *irq_parent; struct ls_extirq_data *priv; int ret; =20 - 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; - } + irq_parent =3D of_irq_find_parent(dev->of_node); + if (!irq_parent) + return -ENODEV; + + parent_domain =3D irq_find_host(irq_parent); + 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) { @@ -194,7 +204,7 @@ ls_extirq_of_init(struct device_node *node, struct devi= ce_node *parent) */ priv->intpcr =3D of_iomap(node, 0); if (!priv->intpcr) { - pr_err("Cannot ioremap OF node %pOF\n", node); + dev_err(dev, "Cannot ioremap OF node %pOF\n", node); ret =3D -ENOMEM; goto err_iomap; } @@ -223,10 +233,14 @@ ls_extirq_of_init(struct device_node *node, struct de= vice_node *parent) 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 struct platform_driver ls_extirq_driver =3D { + .driver =3D { + .name =3D "irq-ls-extirq", + .of_match_table =3D ls_extirq_match, + }, + .probe =3D ls_extirq_probe, +}; +builtin_platform_driver(ls_extirq_driver); --=20 2.43.0