From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 EAE9B3D669C; Fri, 5 Jun 2026 21:17:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694226; cv=none; b=nwobfNQb58QB6XUg+gdovuF9zfDJDpoKEB/muv4fTOXf9mYQ61f0hwficOJk67qCbo1hld/8raZmbFbF39sS49+CrO4O1/s7xpprDX/Fckea9Njp2A7bOzIuzioxIcXX0CSrlm0j658rv+mRE1E7JsnHhzmEkbOpwADmC19buSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694226; c=relaxed/simple; bh=2kkbFm+JxmxoNpQPiyhk2VwVKZ/+h1HH8WLe4BS2o5A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NytIvGmW23tosaYeLSBYvxYP2tZSiWHlyEy0AwYGklajV8scebFONWIT65n6jf9MVzDU3+RI4W0iYxS9q8b6whzXfEHDSh+xSf0nVKrUAYas0zn2vE37buTP9Z6cqYtgL62UzxgBN02zyIwGtlhllUwfsjwFfCRtbM/CVfFvq6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=fflYfp8T; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="fflYfp8T" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694218; x=1781299018; i=markus.stockhausen@gmx.de; bh=SLM9a9ShE+joMCiCcdG1UH72JT39SJAMtHPqQLXCxvA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=fflYfp8T/jmfL1lua/uJjmJ8HV08fYnd9miZHSPkFCY7b4yN9v82RJ/snO0d0C1w tALFyBwKa1LqgQrmd6r7DOb1krK8ZkSEubrgD857Fu9JW8paDzP/+V6JXVXu/8l6R ArzHntR7mC57O0oEeeUmWyOq4K2FkHf23WVcjcpFsr5Dk4ygcUsg7uJTRq9qBwMCt B4faaIBQfNd5Xdhe/7tst10QinG9D5TpK2kYJ2V/u/K+B8ZDvLY26+U6CH/H41UID UBu0vt0ov9+f8sXPrKIu5YirwdsVxacP3VHYBptzgPkwE249EewJlexjPnt8XvepL aalW6tGz4XVdHc68gg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2V4P-1xGFBm45Oh-014Tzg; Fri, 05 Jun 2026 23:16:58 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 1/7] dt-bindings: interrupt-controller: realtek,rtl-intc: Allow 2 interrupt cells Date: Fri, 5 Jun 2026 23:16:40 +0200 Message-ID: <20260605211646.2101652-2-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:MncPeWVYAatCqFOkDjSs5mNHY1Osg2jk8m8oGVG9jJC79H8xYAc rEBe6fUYn6SObQ2KcZthutQe6fwwX1dc64inr31cPZbUCKhvwBmJMjHXvvn1VUDc2UF0Sqr Ld3ZKT34e4sXX5XthaIhd2HgfSW4b9ABxXq98BgQ/ZPFwNqC/P5KX8phJwcU2olr7Zdk6uv b+8nb69THf0pH8xlADLGg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:ALt4HJp+SGc=;phECtW9udPPIJWwryF4JImq2K/g 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 PE/SJkTz46N5h0sKvU= Content-Type: text/plain; charset="utf-8" The Realtek Otto SoC interrupt controller supports hardware interrupt routing to multiple parent CPU interrupt lines. To utilize this multi-domain support, peripheral devices need a way to explicitly specify their desired parent interrupt line in the device tree. Update the "#interrupt-cells" property to accept either 1 or 2 cells. - 1 cell: Specifies the hardware interrupt index, implicitly routing it to the first available parent (maintaining backward compatibility). - 2 cells: The first cell specifies the hardware interrupt index and the second cell specifies the targeted parent interrupt index. Signed-off-by: Markus Stockhausen --- .../bindings/interrupt-controller/realtek,rtl-intc.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/realtek= ,rtl-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/rea= ltek,rtl-intc.yaml index 833a01cdd1b1..5c52e57c6647 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/realtek,rtl-in= tc.yaml +++ b/Documentation/devicetree/bindings/interrupt-controller/realtek,rtl-in= tc.yaml @@ -32,8 +32,9 @@ properties: =20 "#interrupt-cells": description: - SoC interrupt line index. - const: 1 + First cell is the SoC interrupt line index. Optional second cell + specifies the parent interrupt index to route to. + enum: [1, 2] =20 reg: minItems: 1 --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 01C4837DAB9; Fri, 5 Jun 2026 21:17:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694222; cv=none; b=qXpsHTBuBXcQrdDxF8+7bTk1VeVpE7T9WdDXrrESaQDcqLbOBzwDAWC2Y74BanKGEEmfT5Ym0UAmpL0j1Gg7zPq7jBe1jJY8iUV0gez4UU25cXxmQvogsODVEpqVSrem6y+qVAgaqFqIwYttWsxXeg53TQIUUptw3DdUvf1NUg8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694222; c=relaxed/simple; bh=pfnKZ/JEKf+5jA2k2dny6MLMPJSM7mOjTQU2AVNuHio=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FPNgPzO+yV/od562ae6aLZIi90KXtSi10lIcJcfS6hpulDy8iym1gAOdHeTJSLcUPUviFNGJAI692xjAM6OzauIxUY26a3Kvw67hqnfFESCMWOALyOyBVHunAIeTh8sk6lHzIrhqkn1nu2k/Mba/i8+y4f1UcUtjCaRodyYqrhw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=XunTtHTN; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="XunTtHTN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694218; x=1781299018; i=markus.stockhausen@gmx.de; bh=YLatkjbT+v3ykGSjChVmJ3qUyTRNioKsriDx+oGnYNo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=XunTtHTNfSSd8wJKmo7KN1mLprmgwHGwVZJeYT/L2hLGUQ3cBt7WDzxRyVOAtCQT +g009+8uAzovuUemTxfIJz/kvktPG75byWYtPKm9G/p/w0mfR1M6ObPemlF4pw7r2 643I/98HtokIu/rJVxBqNBa+GmR0HpmOWAdIiHEq5gGDs4QHGS2UNMK5KSOhAdtHC wbmygeh6Hc6OG/ZJZ6yfDFSd62YqU1UpqNwIjt1r5iy/1+AN3M8vUnFXOw66xGU8R jvAzgJ8yxc7jB7zaDhpTRnBfyFhTHERwVmAK1rlYX/GnB+nLTLJ/BO2/W7VUg1pav +DqiKW0J8NDr464mBw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M1Ygz-1wWyor0jM3-005oKu; Fri, 05 Jun 2026 23:16:58 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 2/7] irqchip/irq-realtek-rtl: Use helper for parent setup Date: Fri, 5 Jun 2026 23:16:41 +0200 Message-ID: <20260605211646.2101652-3-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:WyjDicMlLG+y5o60/qEbbVuavc79u0TNLug4FSXf8thaWQS8cyP OEDviMrV2Q30grHJJKBLJYLH/mXiQ2ZLIUe7cKBkj9yMskVGbsUdLoqGsQ25holWR6lHcnK 4Ug3O1DYoPoezaVc0PBQWTQ3Qj0Q7WG4a+8hFfIeRsxPCuU98GATqRXCKirCLhypZerjcHG 0o4MEd9m6hYqzGRcEc1XQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:uIRaO2UAeCw=;53MRDzR9HRNelI1YvwDLUaKs0Zp LxjCfgcSqVoX1aI0AS7jocvaM2A4LHGhzD4dJdDhJErgQei3oqM8hz38ZqBZ/BgbrIqBBkU1u zHgPsho1V0i7TOqBeXNxF0mHgl4iB2DywjhBuxZ8VU1tkJJjEsKJqeO4Yo4lTYGhqbOt9//b+ h11i9xw0DThtNVkyud9HihQUwjo9JrS7zqFogAWrebGddJtyejzyEyHwf9RE/x91pGLghl7OL CCOGvYCeqcctnP/K4d0ndrEokc2SkOoCA6fgY+d0zoUh4vZ1fOxYsS+eioQBFb6PuZeD3Vm3A M3SWeo7eq5dBpzM2s91q3jH9Wil7BJqhv46jHGfheYnkGC3npyKkVirZOVIeW3dTmxc3Wx2Y7 w6EdgcqBLnI/l7oNrEso8sOi81EYF6sc7dwa9O6MTfgASp5V6Pc3AQRHKRQeWxaMFn72z2kap nf7nPce0QOoDW5BmNPHl8rsHGQg0jYWF9qn/cLtJbwymhqXbjdhkQOCWZMDoHQ71dXp7Mn3e3 rso+CNxxa+seASmNbZ7JPu1jpWnKhn9brkEqBytZrNQgaEVZrJLNRL1lbiFy9IbfigV1Mb34D C41C/Rgn1u8Rj75/hj8tPgqMrA29+I4UWaPWLh7OZHPXkACJs0PpoC9uFEnuuDqMce9XaR58M nWhkZBZdGsDI6s6odXnu2hyJ915W/6uyc8c32hc9SGHpOb1HQwb8rzkVVXPrlzyPocO/8SPPa mdVp2zLTXUlw10WHfM6UxMBYPZnwLWeAEcqiwj9A/Pqa48faWaUfju/pv1H0c6q7NuLTnUUON i1PpSodJchRev+06Ag73Nr57TFjjItnTmzOFWpBSI5yY/BZ3K8lRSPy3va4lEpV2spIIC9qoU TC64Jtmyjs4bmZ9y38Cis1olVAtCwwCEXs3EN8+o8nEJi6LsmDv45ryr5KIX4C2zR8l0kx3DU pNHB3P9r3iQHI0K6x86+iBOvD7chYyITH3WgAMLgOQVMoXjh6hMI/Xp+UXtyHYhDrXEHKzaXa WA6CGpH5mCT4sXbADD92HRGJMaHluvsf3lcoFIRz2OAwfzBqJuMkp5CbCA+8vt3UKZB5VAp96 Fy5XQ0rH7ese33MCa9zBdxH3nB+YSJxM2E4T1vOvUAviIemVbVk+7mZ8j2h0TcsZBZzerm4oy se0aihD8EAE/HH9zto9CtLIaoahXpeyomDJeHdgfELXi+3Tuug4p34KhCeKLASzulijq6dD6o d5qjIUiRNh3Ua5vpvya/r0cANgPJLKkip5hz/xe3Ea+Qrj7xK/kYPl7qRYfGfa5fiRyU2dD+b rjoOgc826mG/ho4pqmuhTgyigYYISH89bFL/QjkvoZGQxJzTEvbWrqdkdCMXvIomDMalZh95D W68yyHm/cbbGOHCXC2OJGX/+VSWEDyTddIziv4Ba734iCr8Tg6ys+EbDCcGiFdhZ2b8nMAFjY iLV1SzvrDKqss9Q3K3iFxv1c2ZbZRsqeuFJdZJOqWk4dhAc9B+rhEfPC0LZB/WwW447Jpm7Fl 1O+gTGNQYeH2Z68a35HGAF8tiCH7JfgHPe2N4bWbLnuXR8KCZx8du3NLb6CTtNwmBaUOQX1zg Pl5jSqUCNwjHB0P0cnOd7luRfdHmHEDf+vaIAEy/Y6VEMs092mmEeRO8i0cCducC0VS/Iaixr gCqOTybFTk8gpZn7uwk3hA5he/d0MyaalBQOVtuRxUbgjipm9xpg+SQLRmfxIFMs3UJat8r9R ihhMMtwpn3m8NO+oGnui/t7f9LgRi10/kpO29iGEle8oV1rDhWHZ38UAIehx0LF7AwuZG1w/0 /y0n6zrOoo0uM0Ip2AmHyUYTiBc8zpBlrm6mQUY5/G+bw8mQAimyYhlFUu2Eq99NPwDXEsIXe Di2yxuQRgyq0/gd4ISGxEjUaw5MDOh+zxtkfVnUoN3+tE5K26LYAP013xSGFqLjoyn25DUfx9 gUJzqARbFMyHZa46NRRMacK7x+7z88SB9zIDGjZiJCTGUlV8hrtlUqP2ZmZ/62XlwGigQr2Gm ttt04Wx05NtkNnf8dLkvONOT20kBmBoyBsa174JLaCzrBU91W7aCAqBIe/tZmgNnyZf6zmx/C cHxyx4Wa1ubUgDzCz0JMV65M5y2g6m27x2r/nvBdt75oFm570fMGWcrq63657Er4jzBJMxPuI 43/HNzH+8nXixCIBxGD631hFoNPMxnkb+NOLOBuBV55QAKaD8WWp6CGJvOD6WNOpGj61UaBWh BYpHFR9AXn/JZIlR2IFoqokaAvgZfqt7v4W7bixfiNr9cHYw9kAvbX8fLiJcJFV3CYv9a3IWQ PpT7RkpsR0vnYlADXluvPfRnyUm5QnfgSJXUoUe7aTQmM9/yNAnD9DiVk0ezfyttJE5isfdi9 lsIbsa5yk7ZdwzHXjyscXGU8ZV0T7EsN7QUF1bFSYpP0RCXlyTZ0qfCx9UwiI3/KwvfgwwFfu eMJLIt+OL2jKvIIkn16PRtXuyzfe6o2ca04lkEvJJrd0AKR4fWU4HJCwP7yxHD/EuqXmKGEKZ 1vJgemvLSnlZcYE+RRRMdiUp0+NjcaIYS66cfak9RUt3LA/KyFE4+Iwm6/fCEDOp529u20Fvy DnyNVPYV4VsjScYt8OGqSSzBMJjuxTwu5ppROTXX/pDmwl1WpQNkPNsD0ps6eY1NqryEjXl3L iRQlC8Gd16XaIkCA1JTfO0CYPpN6FwvlcPuL5efc5Cf9KZtrEtYAUFAu0JkCobuhOLicBLibq 1ZRCW+gny5gvtBCY2wYctYTujbyLhheBVCxJRKdCGdWfi1e9tMVBSVWBuLcMeccbThmC3tKNw 3VEncVl7rh4oqNEACgDWYPVUxNdu9WU/fpX94Nc8191qNLP0CjKZmt1LuKJ/L3EdWs38T1rKi YAYRav1amLtXNhKVAJmed0dlK+Kk/JZ55nfKz6+MQSqgYMhY406OA9Oi4oC4usNKwvFdIOiHU h6XCbuhbcvIXtJFh34Ywi8SqWnwRdJYJDXq7W7UIYu9Oavk/MZl/pBneUeb2YAp78YUfVwcDI URGmZ9EulT8MIXBNiOdmGAU+PxbAkZdDtzYb6eTgkgCBAQnrTAPt7U9nGjsLXSDyxyGFdWq3r TYZ18xclcHhKqgDMYHn6V+wu3ObC6JYmLm+xXV8PA97bDwBwTIJKIFCUooK7qCg1B6L3gcgVK 4RbYRfsa+PDBNRNLkhHOYtRoK5cOYe8IQfGHXe1pJU2+x9gvMYbFVlpsmnOltREW2MA2GCUNP 4LGo1utQCBI4v5w/lnL/fNX5m2zI66Rid/pJb0Jr4lMGqTTuJL4hnDeKEYaq2q7qQNphYEPfj CntrVet6y8MHQ4Vqlq5fnhehqFEJWe647AfAvfjWLa7v7tClWSUC4mNYPub2aJCrfGuKcNuQW UeVK8SIlI7n5lRxBEnJDUzv1F8B9qQvFNCxCOZQypbeK6N4cpJ+yVzKhj7kDrW7r6s/yLKaA2 a5Ewd4Jr4SWBUb1lspBhX2ED1O7gtLCrBN/Ktok1Ro2rgWatZ2LyJuYkXbWZNryVuU8sQwcru P0Dv6DUx4ub22U8wWMBJTu7bi6lrFDTBioZ2u9K8gX+lK97jO9pa0mTTyB5lrceAARGGMW8Hy 2zyIae6lsNTrVRT0pzL/vRzEPqt4/swjS1xG8TZI5yZnPyNIQPQn7iZovEyMX76GwFeh9KmDJ bOjF7tw7ubDfs0tPSXUDaObWQ9V93zEsmcXdZsWVHrWaH0dy9UkrMYbVW9dVUmZE0VFqGsOqa IJmTvrTSW74CCHQ2n5fY+4vGkhqk0HAXovdsSBsGLRhhE+GtiX2iTXtZULa6fXZ6UPmxtRCNX CqxGmRxDbWNJT9IEKQaWZbZNs2bxcrysCqxHMDymIVQ1O7kXPOYJ9PIBvwtJyWZFScNOULKBb XMqMGNDOZS9tikXua9/rldzPiN0rv0y5I6zPhVb8L65JiDx83/sFbIzqqk0xZck14e9lcsE6H U3COuNUElLL/Y3NK6ybvI4XwX9kC33j7ztoaNx0meG40w3xLwpADBiJ8KxYxrR8N1tdBT5bi+ rcrTRqP0SvxkqVeyD9yEOVliYabMADfOBJILZsG8DyX8pD9BagjPrIs7VLoLNfGHAIwrN/nlB EqitsvEfSu74Z0kiHmTNEAudPHEqKfsb946kkninQBUj+bjqZemyzNxbXJWJKarqKPvv6Y6C7 f1lQzAQkK/1neKvqHYhlGWbrUzrmD2GE6dFW5H5uCjABhtAcB7KlH+B/B5OOJvMLd6qDEFG9D SHswZ0KMiNqpjcqD1t15+o5O/PPna3Fdrjf+xAs7STQ7yWyN1ZusemVO4rAFK+57/Txn3c6FJ WRDInUQh1H8GCiFTKlUEhAJw7OFCF3CqdbP2DTlh3YOjSLXh1Q0m7bMAU3JheoH1KJr4SlUXZ FsESmyvdGgz2/2V8DDmIrPGgr2qP96Sg39wYWNM5rkDehgS+CdpbqObNQzdUya1rIP68FyJCw PDjoKbVBs+yyqQHU4eiNdkYZ2BRoypv9wDGE3DxbiCNKmPtnzEHF22enfVtO7ypNJFlR7fQaN COTZVerN558ZeQQPs1mmscUD2zK7NP5+T3ykAE0xpZv7iN758Stz0Vijb/cBvuuGl/MphImwu 2FgbVW3Kh3S1zrqxoGGiLy7RjhZ8TcWCITWe/d2YUsofQ8mwTOpTQb7GYexawbDYDipQdq7/C EbV5S5Fxrj1/c8hem0pwZICqVfMVn1yHpIIcTEnp8IKYkaBuAPmjh6cGGlI34c/FfjgTRam3r 5CSVoltRUbAZlYyStz2GDhdmTPzeKoRRKn2uPpaVrqanBld1mh2Oc25jpZAjWQqUeU45qmG8b Xf5CzggxXGZIHmm52xXGOQbbEoQozIB1IL5iF4Eb4z4T7BmJ1Bdga4Zo/+apklfFACcX95alC 9oKnNo+mviokkNoGi8JnkFiuIugMi/jLz+iT2qR9oRfHiUtPzC65dzv7fm7ZVJguhQ8GMK5PE JIDZyzH9I1NXe4ogn+bvqW19++izWEDs/Z0icODNJW+HHxkmor9bGsSxDHKaeF5+X9sM6jkbM oiI6RGRcpDyyETjr/ato7RqMYI6jiwj20Lub3BPARb/6ueCz919mcydhjBDpEljb7X4LfU+01 ydhvQYvCGxLffMmH0NjcA7bnO6eniRh+r5ht45wj0SoNAFFmWFwmeVxT6T+uXcIqFq6lhsYwm pinKzCjNCCEO227xakYO1UExWplJncUlJR8TqSzqlom1KXC7mXxu1KAz047xzkcdElXVGZlrv LBm7dePP2sAfypRWA260c9UCDXTX/XXo4wUO1o40pMOcXhtTTGsaVfHMbz7sXGRLHPfu0Upb0 WfK5PT+1IJ/NTPh9vB9pf7/9YXGXg24xEcdihqBhoRdVxvBpYV15u4fo5HDXdv3U2zMVvn+Us IqJm/2sOjFRUNcQC6M7ZLCHrEEJMYFIVNcXWAiLcGdVWyldVVFJ5yQ2k2YG3W4glCKoUQ2lDL AorPpCkClDiseX/yYsttHeK4ZK5pqeJg6mK4EYsGgVeG09TkpMWGquQ5bk+FqZkxTw1GIT4fi wEWU6dKo2oAkrvVnKSZb+JaG7SqAji0pr9Ztw9Emw+FfegKS Content-Type: text/plain; charset="utf-8" With the upcoming commits the parent interrupt setup will be extended. Relocate it into a separate helper. Although it still works only for a single interrupt prepare the coding so it can be easily extended with a loop for multi parent support. For this reduce the line lengths so that the upcoming indentation still leaves the width below 100 characters. Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 60 +++++++++++++++++-------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 2ae3be7fa633..3b4508ec7198 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -147,48 +147,35 @@ static void realtek_irq_dispatch(struct irq_desc *des= c) chained_irq_exit(chip, desc); } =20 -static int __init realtek_rtl_of_init(struct device_node *node, struct dev= ice_node *parent) +static int __init realtek_setup_parents(struct device_node *node) { + int parent_irq, num_parents =3D of_irq_count(node); struct of_phandle_args oirq; struct irq_domain *domain; - int cpu, parent_irq; =20 - for_each_present_cpu(cpu) { - realtek_ictl_base[cpu] =3D of_iomap(node, cpu); - if (!realtek_ictl_base[cpu]) - return -ENXIO; - - /* Disable all cascaded interrupts and clear routing */ - for (unsigned int hw_irq =3D 0; hw_irq < RTL_ICTL_NUM_INPUTS; hw_irq++) { - disable_gimr(cpu, hw_irq); - write_irr(cpu, hw_irq, 0); - } - } - - if (WARN_ON(!of_irq_count(node))) { + if (WARN_ON(!num_parents)) { /* - * If DT contains no parent interrupts, assume MIPS CPU IRQ 2 - * (HW0) is connected to the first output. This is the case for - * all known hardware anyway. "interrupt-map" is deprecated, so - * don't bother trying to parse that. + * If DT contains no parent interrupts, assume MIPS IRQ 2 (HW0) is + * connected to the first output. This is the case for all known hardwar= e. */ - oirq.np =3D of_find_compatible_node(NULL, NULL, "mti,cpu-interrupt-contr= oller"); + oirq.np =3D of_find_compatible_node(NULL, NULL, + "mti,cpu-interrupt-controller"); + if (!oirq.np) + return -EINVAL; + oirq.args_count =3D 1; oirq.args[0] =3D 2; - parent_irq =3D irq_create_of_mapping(&oirq); - of_node_put(oirq.np); } else { parent_irq =3D of_irq_get(node, 0); } =20 - if (parent_irq < 0) - return parent_irq; - else if (!parent_irq) - return -ENODEV; + if (parent_irq <=3D 0) + return parent_irq ? parent_irq : -ENODEV; =20 - domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM_= INPUTS, &irq_domain_ops, NULL); + domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM_= INPUTS, + &irq_domain_ops, NULL); if (!domain) return -ENOMEM; =20 @@ -197,4 +184,23 @@ static int __init realtek_rtl_of_init(struct device_no= de *node, struct device_no return 0; } =20 +static int __init realtek_rtl_of_init(struct device_node *node, struct dev= ice_node *parent) +{ + unsigned int cpu; + + for_each_present_cpu(cpu) { + realtek_ictl_base[cpu] =3D of_iomap(node, cpu); + if (!realtek_ictl_base[cpu]) + return -ENXIO; + + /* Disable all cascaded interrupts and clear routing */ + for (unsigned int hw_irq =3D 0; hw_irq < RTL_ICTL_NUM_INPUTS; hw_irq++) { + disable_gimr(cpu, hw_irq); + write_irr(cpu, hw_irq, 0); + } + } + + return realtek_setup_parents(node); +} + IRQCHIP_DECLARE(realtek_rtl_intc, "realtek,rtl-intc", realtek_rtl_of_init); --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 E2E283D413F; Fri, 5 Jun 2026 21:17:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694225; cv=none; b=tLIZEGbMmI+8/aozn6tb0fGOonoMAiOpBTo67F3gAsC5+YoduVCc6F8wrN5IWZrCNpQWntjmxbgEAByzNfbnizyLOUiATY9aMDlCpWI7avyb2zLfrn9UN1SCRJZjHkZKpF29FTlEEm6F2NFOc8LIxIzA09LVtONbgeew56twz1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694225; c=relaxed/simple; bh=rJDlytkk0qZaUsWk1KvAiNsYUXM7xX4ozyANRdhbtuM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cAGdlX31JmAuj/9+LCeoYWI4xJg3QTwmqTMrcR6eg7yjEzOQxBENj23oCvmcrdqqTt4L16MOCQub+HmygTfAO/QPs9AIrmxauukLgJqkJQCpBCjwhoKVH4o4eGfJ75ILp7hcf9jlASGRgkecdW/N1uOCw/DTzTAjuF+J2PGjtQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=c49iJZvP; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="c49iJZvP" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694218; x=1781299018; i=markus.stockhausen@gmx.de; bh=pu9EaWKuAqw8OfN0nFpNhk1J4kQu0c6fGx0swq2DOxU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=c49iJZvPt/D3tYqnS8dCWFx9uRvOIzvFNbS/g5uoUlvZY0N/v5DZYTmfETk4sq4a PoqxYHX1rsFmF55ZibnU992/V3kMBIerz59KUNjpAOifKNSfg3nVAsXnkmCi/ym+/ 0yqYRsH4Rt3njKF3qciUKEt01DtxsCreG8SjCZo0WOixQiwaXurHdDF13JVC7XN2R 37xu2IkkVelQ0AhHPWYLqGEYWUhqo82D8KCL/qxAHP4iN1e2hjFnwSgNs4OtqITQr ob0yNhwaz1ghYUEr/yy0xdIW1aWo2Fl6lTerYvFG4zEn6Zn7r8uJFhypfgvREy6er zG/NRlK3Lf7KLPTPWg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MN5iZ-1wo6EZ1aJZ-00P8hy; Fri, 05 Jun 2026 23:16:58 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 3/7] irqchip/irq-realtek-rtl: Add interrupt data structure Date: Fri, 5 Jun 2026 23:16:42 +0200 Message-ID: <20260605211646.2101652-4-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:/FIl1pZHTqKfV+LdAYK6nzf2kD/+qEG7In6mooLHLJYAMDBg2ND QukIBMdj/hU5HcDOG/NgWjahKbGG758L5L+OONvQ5UMh4L0e/8fRgwmwkOnh2B7ZO2yGbq6 QHOFa1kpYNz9RSp2eja45+ZE2zN6afy11V2dw9iD8igh8JIicLpswPvX9qSHOK6/ziUv3a4 rVbx+XTW7peI0JP/AnkbQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:NGFiWOGunr4=;/G70ADXS6GW/tRaouTNs8j/tIVz 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 tfHY89rUW6ldjWCVUM= Content-Type: text/plain; charset="utf-8" To prepare for multiple parent interrupt domains add an intermediate data structure. For now this will only host the link to the domain. Additionally adapt a deviating variable name to driver standard "hw_irq". Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 48 ++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 3b4508ec7198..9629b4bed635 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -25,6 +25,10 @@ =20 #define REG(cpu, x) (realtek_ictl_base[cpu] + x) =20 +struct realtek_ictl_output { + struct irq_domain *domain; +}; + static DEFINE_RAW_SPINLOCK(irq_lock); static void __iomem *realtek_ictl_base[NR_CPUS]; =20 @@ -125,11 +129,11 @@ static const struct irq_domain_ops irq_domain_ops =3D= { =20 static void realtek_irq_dispatch(struct irq_desc *desc) { + struct realtek_ictl_output *output =3D irq_desc_get_handler_data(desc); struct irq_chip *chip =3D irq_desc_get_chip(desc); unsigned int cpu =3D smp_processor_id(); - struct irq_domain *domain; unsigned long pending; - unsigned int soc_int; + unsigned int hw_irq; =20 chained_irq_enter(chip, desc); pending =3D readl(REG(cpu, RTL_ICTL_GIMR)) & readl(REG(cpu, RTL_ICTL_GISR= )); @@ -139,9 +143,8 @@ static void realtek_irq_dispatch(struct irq_desc *desc) goto out; } =20 - domain =3D irq_desc_get_handler_data(desc); - for_each_set_bit(soc_int, &pending, RTL_ICTL_NUM_INPUTS) - generic_handle_domain_irq(domain, soc_int); + for_each_set_bit(hw_irq, &pending, RTL_ICTL_NUM_INPUTS) + generic_handle_domain_irq(output->domain, hw_irq); =20 out: chained_irq_exit(chip, desc); @@ -149,10 +152,15 @@ static void realtek_irq_dispatch(struct irq_desc *des= c) =20 static int __init realtek_setup_parents(struct device_node *node) { - int parent_irq, num_parents =3D of_irq_count(node); + int err, parent_irq, num_parents =3D of_irq_count(node); + struct realtek_ictl_output *output; struct of_phandle_args oirq; struct irq_domain *domain; =20 + output =3D kcalloc(1, sizeof(*output), GFP_KERNEL); + if (!output) + return -ENOMEM; + if (WARN_ON(!num_parents)) { /* * If DT contains no parent interrupts, assume MIPS IRQ 2 (HW0) is @@ -160,8 +168,10 @@ static int __init realtek_setup_parents(struct device_= node *node) */ oirq.np =3D of_find_compatible_node(NULL, NULL, "mti,cpu-interrupt-controller"); - if (!oirq.np) - return -EINVAL; + if (!oirq.np) { + err =3D -EINVAL; + goto err_out; + } =20 oirq.args_count =3D 1; oirq.args[0] =3D 2; @@ -171,17 +181,27 @@ static int __init realtek_setup_parents(struct device= _node *node) parent_irq =3D of_irq_get(node, 0); } =20 - if (parent_irq <=3D 0) - return parent_irq ? parent_irq : -ENODEV; + if (parent_irq <=3D 0) { + err =3D parent_irq ? parent_irq : -ENODEV; + goto err_out; + } =20 domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM_= INPUTS, - &irq_domain_ops, NULL); - if (!domain) - return -ENOMEM; + &irq_domain_ops, output); + if (!domain) { + err =3D -ENOMEM; + goto err_out; + } =20 - irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, domain= ); + output->domain =3D domain; + irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, output= ); =20 return 0; + +err_out: + kfree(output); + + return err; } =20 static int __init realtek_rtl_of_init(struct device_node *node, struct dev= ice_node *parent) --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 5EF7737CD33; Fri, 5 Jun 2026 21:17:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694222; cv=none; b=lLC/8DEakFIxU2W19yCOeYgrQxnBXV1WIacgSwl2d390qdOaLixEWlXxNThVxC02oWc3mEclzdMuhvf4Y1XJmpso6eDl4yU3GtSnAKSC6kdbA2wQvAseaqKJQWHjCo4oVTPSVkzzxZ5bdDkfaSjjXaTnTox6mNaVfXxb6MQhGsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694222; c=relaxed/simple; bh=qLhJDnbaRNz19Fi8K3B7gjVfvak74cSaN2hmdY8LxEU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aZ1qmp4S7lP5YSc075Gd75AcXd+feFiFMkfZtvXDFfLoka9bZQWUhybkD+k99T6JkLgyL7EA7DU17Y0pyyxRKtZtmm+VlEC4k/rZVZWsG4n7fEFW35nhhEb7hT02+RhJRGqWXUYxl7ZToFXDz9pZ8F0I/yLFB1DiK+4Zk4KftUs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=UBRskOvd; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="UBRskOvd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694218; x=1781299018; i=markus.stockhausen@gmx.de; bh=8ObT6umpC5lXX2oOCAOJJzvgIq7v4mFjIxpxD0yyQqU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=UBRskOvdZD+VnFo7pzwdExqQdd9iYh60Kov+Szu+q2bbw7yYS0stRoTRe1+7SSNd DXzSUklprLXmY/jTLwSGKjbbMRYv5FdlVe0a6KPi1HWLlg2si+vYL0RJTejwHChRF WXqeq8Z8jBe0f7V2PC6nEmc2/z2Ij54GYZCJ8qauhgMvXoA0vr8V6B/KwrAJj903x 6bTSm+VVCRSONqi9jW6/h0lUGngmERTQ+H8FQZ+F0VMRpJhjRT0eluVgY/cw0jTPX 0oAQN2IvdE6G78QJw5dcWaRkeagEFiLufUB5Bw/aQA28dEwLrPCvVuctfGq+GLA8T 7qOTy1Jv8PqozltG5w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mj8qd-1xA9KZ2SPd-00cQKU; Fri, 05 Jun 2026 23:16:58 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 4/7] irqchip/irq-realtek-rtl: Add mask for interrupt handling Date: Fri, 5 Jun 2026 23:16:43 +0200 Message-ID: <20260605211646.2101652-5-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:JJLzGYBRdGpSl4teYOtU44xWk/WjceSUYoKOKgonqxnsSGksbeU lAof3zQ3r1s3mmpc7+Q+BnCqB8daIDSc1r3fm3iwmhhTAEjdZZ33T9khnvhcLhOB3ZLou84 vdy/vWAP5c62sgw+rZI0WSbsQUUSaHhHk0ocmnd+IvuJeBKo2B1uXODhEJz95pQzYxp6RbK JeOESFA/rXHx7aLP3sixg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:ja9SdPxTc8w=;GktF1nmwmzGc7n1LWx1X/PDfSFJ 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 Content-Type: text/plain; charset="utf-8" When using multiple domains for the Interrupt controller, each one must know which hardware interrupts it serves. Add a mask that is filled during setup and apply it during interrupt handling. Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 9629b4bed635..508c2dae7ec1 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -27,6 +27,7 @@ =20 struct realtek_ictl_output { struct irq_domain *domain; + u32 mask; }; =20 static DEFINE_RAW_SPINLOCK(irq_lock); @@ -109,15 +110,17 @@ static struct irq_chip realtek_ictl_irq =3D { .irq_set_affinity =3D realtek_ictl_irq_affinity, }; =20 -static int intc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_= t hw) +static int intc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_= t hw_irq) { + struct realtek_ictl_output *output =3D d->host_data; unsigned int cpu; =20 irq_set_chip_and_handler(irq, &realtek_ictl_irq, handle_level_irq); =20 guard(raw_spinlock_irqsave)(&irq_lock); + output->mask |=3D BIT(hw_irq); for_each_present_cpu(cpu) - write_irr(cpu, hw, 1); + write_irr(cpu, hw_irq, 1); =20 return 0; } @@ -136,7 +139,7 @@ static void realtek_irq_dispatch(struct irq_desc *desc) unsigned int hw_irq; =20 chained_irq_enter(chip, desc); - pending =3D readl(REG(cpu, RTL_ICTL_GIMR)) & readl(REG(cpu, RTL_ICTL_GISR= )); + pending =3D readl(REG(cpu, RTL_ICTL_GIMR)) & readl(REG(cpu, RTL_ICTL_GISR= )) & output->mask; =20 if (unlikely(!pending)) { spurious_interrupt(); --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 C4C9E3D646B; Fri, 5 Jun 2026 21:17:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694226; cv=none; b=PlcQaXWC88C+kpauN+5aX4yNmHWwytc1xACnuJUQ2N8TMyMhe1aj+WKpCmuLyNvgETqnZJpZwAqVuZ5wt3k7VwFXmOGneN60NtOMhupaA252l3IERRD5vKzhdsDKpcX6KlFqQEYVZBoa6kwf7EK5/eQT051TZ7NVJmsqxseR7Zg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694226; c=relaxed/simple; bh=mM7LbsxbCO7Dx40wQiiVdLrZOJpQ3T03A889ahHz2kU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dfaNAJE9c2FyN/lL/sB7gq1e1QA78V6DeMT0pYRy/T7GN4vMR1LCpHtRNA03DZ0AtyB3lovOcjZkDq6T4UhWoC9poYFjvxbHBAVM68e2cblxg98o6VQQs/bdwNxCanSbgeGLNeg/AnFk0TQLEQgRZqA3cUHhHIUSvOE55aT+oT0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=tCjZytCK; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="tCjZytCK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694219; x=1781299019; i=markus.stockhausen@gmx.de; bh=Ho4iOoZFjJJ/+FiX986dWxBjiM6C7NC1CsfaEIj5y6A=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=tCjZytCKPN/4m5TPp8VXwi6pGz/0tEmWBwHQmPQfm4eP2VNF6JEPqKnKXQLdLCzx Lkl1W8HTbq/UGR5KK6QZO3X4UZKbisL2mDNGNfLuKGlL4VrXeKu5VrdSc32OPLBX4 XhJS6WRWsqlrcp3wY8ZU/bH4dSexnMjIW6D+RiUcodPMYJLbx0zXzQ7J2fjVbqFiO r3+/aKheb87RWNbjDOSsfc8S5iXkVx4VbB2Yjd2nSXrP0htNpVaG+aaz5NlA+oqE5 e7QaKae082mcjtrLkFAe7oXUSXBNiuiQsEnyTwHFMyP5ROSsfjktSxfYU1aHA5iWd PqEdnMrpopLkdfNTew== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MFsZ3-1wTcmb3MCN-009672; Fri, 05 Jun 2026 23:16:58 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 5/7] irqchip/irq-realtek-rtl: Add a select function Date: Fri, 5 Jun 2026 23:16:44 +0200 Message-ID: <20260605211646.2101652-6-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:WXH3GLvcH+HxQgGI72CH1POK9C5N40PsG57zh2wlyyuEkTzxPHq ye4xvhDDwSQaahvXexL2l88npr1CRNXstqRfMChs7ItQ7i/bN5v6S4K7bVLP/ANlSX/fqL2 dmB+OM14Rq0sAuYH7gl5DKhy2PeK/nULSGq2e5nDFPrejlTJo5XaDUqWHwNjtZjgp/lj7Fr qrpaQLjUQK8HfSJZNSx4g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:O90o6rDmbR4=;GeZGntuVWS76EC8iBiI6n/Zb+Ws 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 6jucAEyM3gW2fIoY95kOgTq11ypyuZJ1I9vVK6k Content-Type: text/plain; charset="utf-8" When working with multiple domains, the interrupt registration must know to which domain it attaches. Add a select function that takes care of the lookup. Logic is as follows. If a device needs explicit parent routing it can request it by giving an index as a second argument in the device tree. E.g. intc: interrupt-controller@3000 { ... interrupts =3D <2>, <3>, <4>, <5>, <6>, <7>; }; uart1: uart@2100 { ... interrupt-parent =3D <&intc>; interrupts =3D <31 1>; } This way the serial console with hardware interrupt 31 will be routed via SoC interrupt 3. If the second argument is not given, the first parent interrupt of the controller is selected. Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 508c2dae7ec1..546d294bad35 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -26,7 +26,9 @@ #define REG(cpu, x) (realtek_ictl_base[cpu] + x) =20 struct realtek_ictl_output { + struct fwnode_handle *fwnode; struct irq_domain *domain; + unsigned int index; u32 mask; }; =20 @@ -125,9 +127,25 @@ static int intc_map(struct irq_domain *d, unsigned int= irq, irq_hw_number_t hw_i return 0; } =20 +static int intc_select(struct irq_domain *d, struct irq_fwspec *fwspec, + enum irq_domain_bus_token bus_token) +{ + struct realtek_ictl_output *output =3D d->host_data; + unsigned int index =3D 0; + + if (fwspec->fwnode !=3D output->fwnode) + return false; + + if (fwspec->param_count =3D=3D 2) + index =3D fwspec->param[1]; + + return index =3D=3D output->index; +} + static const struct irq_domain_ops irq_domain_ops =3D { - .map =3D intc_map, - .xlate =3D irq_domain_xlate_onecell, + .map =3D intc_map, + .select =3D intc_select, + .xlate =3D irq_domain_xlate_onecell, }; =20 static void realtek_irq_dispatch(struct irq_desc *desc) @@ -197,6 +215,8 @@ static int __init realtek_setup_parents(struct device_n= ode *node) } =20 output->domain =3D domain; + output->fwnode =3D of_fwnode_handle(node); + output->index =3D 0; irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, output= ); =20 return 0; --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 885E43CBE80; Fri, 5 Jun 2026 21:17:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694223; cv=none; b=o+6+b+5rJaUdWq44M//lyB0ZxQ7iX4/p0xhNehWlOXwhALRBAu7eHEPUUB4C036TVfYmYPTIfTpJ0fzVvdv7Yq8H8kkAfjgZA5dp0J5fU+wHDS1fcs8syn0xtBgp9xbkdI1fMB4jjQhsbumHl4EBByVSX5x/tKl7xo95GCOIuS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694223; c=relaxed/simple; bh=bGBa6574lYMBcACrzqd+1waqq++tmxM6kUS/zVzR734=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DS+u5Nv19MTxbIF/+DwogcMJ3nR++VJGvxHQfpmdTozI/B01Qqvkr30uUIgAc3FWj/F3L7d0/gzXD35u8ZOj1R//2cnHC3K4z3PVuwFMCHXAHiHQzoLvLesrhEstLf+1U6tmlmTlxulqF5g2aNo/AWJp2BLUeywGaZCg5x7JYY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=c56Nbihn; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="c56Nbihn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694219; x=1781299019; i=markus.stockhausen@gmx.de; bh=sJKBaHJ0xBGt4U0SgxxwEOltdZ90kiMQjkElu+hdHTw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=c56Nbihnqfrl/xk1ntrRdFfPMnJyptpFe2dwS0ibdMuk9Yub0oGYl+kBtJn64/H3 LTqsZbr4FEE/piM5UmYUXt16GinrXfbJw9PnSDhaO9T3RJzmQeOluVQUXcn5KkJft 4Rfxh4OAa7+zWYKNKlV3+FWZDlG2LjcL84LkVVBjctVayf3wpe/DApH/GRUxMSAIG F0uKPE/FxXW5/DpU52Na+f2uIg+JiZOwUd7gHzfBXrgW5ZJkWPI9NW63Ghy4d0udN OJZrylmk51hj82qt5ivGhNC2B627EG3EqgXFoIfKcJY0RqDCnZlZEBtgdlKHeVj0a egLwMonKeXQJyVGyfQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MSc1L-1wgMTK06kj-00Wn8U; Fri, 05 Jun 2026 23:16:59 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 6/7] irqchip/irq-realtek-rtl: Allow shuffled interrupt order Date: Fri, 5 Jun 2026 23:16:45 +0200 Message-ID: <20260605211646.2101652-7-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:jk9kcW84vkJ0GWb/S6x0w620wAfqNiru5ACr7kHoXUs7ZTiu1qv KwRwcFpwLiONifvJfYm4wqSUG+4pn0ZB1F3XyxOGGvxY3eThiRE+4To1lPLZGzbfFGhvJ3/ riGPh9UVr/9Y2I6zfiCBZaDLHX0BfL9NcDwgSBQyKuHMAh4EX6MGGuLZ7WrayzyW42ypc4+ nPK+fS9WSLvSB5R72aoBw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:7KlsK7VYK+A=;bKnQKeXl5q81SRUqswM+bagm750 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 KvFgPqGGpKXR42pnc2Tlo+eeEvkFNQQzqNsApQY Content-Type: text/plain; charset="utf-8" The driver silently assumes that the first given interrupt in the device tree is nailed to "2". Any deviation from this will break the driver. Fix this by storing the given interrupt in the domain data structure and writing the proper value to the routing register. Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 546d294bad35..5c5097edbc98 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -28,6 +28,8 @@ struct realtek_ictl_output { struct fwnode_handle *fwnode; struct irq_domain *domain; + unsigned int parent_irq; + unsigned int parent_hwirq; unsigned int index; u32 mask; }; @@ -122,7 +124,7 @@ static int intc_map(struct irq_domain *d, unsigned int = irq, irq_hw_number_t hw_i guard(raw_spinlock_irqsave)(&irq_lock); output->mask |=3D BIT(hw_irq); for_each_present_cpu(cpu) - write_irr(cpu, hw_irq, 1); + write_irr(cpu, hw_irq, output->parent_hwirq - 1); =20 return 0; } @@ -175,6 +177,7 @@ static int __init realtek_setup_parents(struct device_n= ode *node) { int err, parent_irq, num_parents =3D of_irq_count(node); struct realtek_ictl_output *output; + struct irq_data *parent_data; struct of_phandle_args oirq; struct irq_domain *domain; =20 @@ -207,6 +210,12 @@ static int __init realtek_setup_parents(struct device_= node *node) goto err_out; } =20 + parent_data =3D irq_get_irq_data(parent_irq); + if (!parent_data) { + err =3D -EINVAL; + goto err_out; + } + domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM_= INPUTS, &irq_domain_ops, output); if (!domain) { @@ -217,6 +226,8 @@ static int __init realtek_setup_parents(struct device_n= ode *node) output->domain =3D domain; output->fwnode =3D of_fwnode_handle(node); output->index =3D 0; + output->parent_irq =3D parent_irq; + output->parent_hwirq =3D irqd_to_hwirq(parent_data); irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, output= ); =20 return 0; --=20 2.54.0 From nobody Mon Jun 8 06:39:45 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 9479D3D7D65; Fri, 5 Jun 2026 21:17:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694227; cv=none; b=j5WUzFa6wrszvBWV8fViDA/YbGlxfZMr4VCruZ6Xnd0uLafhW6oJErsgtD47x46fAm7kbaIJWAt78QNgQDqQDmh+zJhTOpCMyJBEdCCT1THuOaPYXzYDcIUYH3eG8hguag2yNRpUehWLHzTfk4beLEB+le9atx7UYTUXpQCz/MU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780694227; c=relaxed/simple; bh=g1pG2ZTysXWQmXiT4+ryi+mJcrTfOdkpVztuHXZIcPM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H10cCyWVFjKYJRWj2MY+/FxSfECTUBZ1OU7/u3bvWPLw+JMeVsR5sOyU7y/8rCEQKuZQ8Dx7mIBgckd3oPO0gh1Z+vzCiW8Cdwn5k3rE20ASfvBUFzlkTYTr45pineFgvZl/bmLlS8l53Ugg+zLzWML9W2vBlQ0/jXNjkb4tzqs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b=GKR6C0Ig; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=markus.stockhausen@gmx.de header.b="GKR6C0Ig" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1780694219; x=1781299019; i=markus.stockhausen@gmx.de; bh=JL94esvjbA44XPI2axxasghgDp4V7quH5bo7dtADKS0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=GKR6C0IgfMfRcwUhqDf2U9tB00UaUgs7x/zbet5aZRviSMsQ1xZlxtUIzoOg+eRU SzfRZ4dTK8nWD9b0BRmWOi43ZCFbe1rd8yvCk+b2MrRNWxVAsupzz8jsLV7SoEYVd lyKCU5bgxtSfNUrNZcfc1wcexd3Jr4VQnkJIAQPV8295+BFmmti4E6SVbS8kb2qQn H8CEiZyusE1ji9m9I0eEbwQhELwITbQP4/jeVT6JKX3I8mkGmBJAaHG2C+z4U912j Ar8C2LEuN6sUpka467fHpbkaMybtX4mMRtDQOo0LJ2WFOnYlcXkfq8/e9NWmLNy7v jtzzJlz5gMYgGeN5Rg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MvbBk-1xNA0D0zv4-00xeVp; Fri, 05 Jun 2026 23:16:59 +0200 From: Markus Stockhausen To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mail@birger-koblitz.de, bert@biot.com, john@phrozen.org, devicetree@vger.kernel.org, tglx@kernel.org, linux-kernel@vger.kernel.org Cc: Markus Stockhausen Subject: [PATCH 7/7] irqchip/irq-realtek-rtl: Activate multiple parents Date: Fri, 5 Jun 2026 23:16:46 +0200 Message-ID: <20260605211646.2101652-8-markus.stockhausen@gmx.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260605211646.2101652-1-markus.stockhausen@gmx.de> References: <20260605211646.2101652-1-markus.stockhausen@gmx.de> 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-Provags-ID: V03:K1:cB59YX6YgQQDtGYEoQAxx02+3VFI15JgC/RJ2woytzjOuzUSDbU wuiokGSK7Z/ugQ6JTAnbPwzcobc8uQpfpsN7zk8kFjIfueJtKgFu1PpPb6wnWko1JCpdZZZ Grax/sciLyXC5RGkyUiXPO+adJX24iXI/vJTdMXJY81XMJwNDPnJ3XAnSgwMsmHyIqjgLJ2 vm5piTZsvdjqhHwmDrTRw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:G4Ke16b8G/w=;Ya50ste/QrxG8btP9AAVZ6SP9H+ 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 DYdDsRvi4lZOMoMGN8= Content-Type: text/plain; charset="utf-8" Until now the driver exactly registers a single parent interrupt. Relax this to make use of all defined interrupts in the device tree. Signed-off-by: Markus Stockhausen --- drivers/irqchip/irq-realtek-rtl.c | 88 +++++++++++++++++-------------- 1 file changed, 48 insertions(+), 40 deletions(-) diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realte= k-rtl.c index 5c5097edbc98..4b59e0cd86bf 100644 --- a/drivers/irqchip/irq-realtek-rtl.c +++ b/drivers/irqchip/irq-realtek-rtl.c @@ -175,64 +175,72 @@ static void realtek_irq_dispatch(struct irq_desc *des= c) =20 static int __init realtek_setup_parents(struct device_node *node) { - int err, parent_irq, num_parents =3D of_irq_count(node); + int p, cnt, err, parent_irq, num_parents =3D of_irq_count(node); struct realtek_ictl_output *output; struct irq_data *parent_data; struct of_phandle_args oirq; struct irq_domain *domain; =20 - output =3D kcalloc(1, sizeof(*output), GFP_KERNEL); + cnt =3D max(1, num_parents); + output =3D kcalloc(cnt, sizeof(*output), GFP_KERNEL); if (!output) return -ENOMEM; =20 - if (WARN_ON(!num_parents)) { - /* - * If DT contains no parent interrupts, assume MIPS IRQ 2 (HW0) is - * connected to the first output. This is the case for all known hardwar= e. - */ - oirq.np =3D of_find_compatible_node(NULL, NULL, - "mti,cpu-interrupt-controller"); - if (!oirq.np) { - err =3D -EINVAL; - goto err_out; + for (p =3D 0; p < cnt; p++) { + if (WARN_ON(!num_parents)) { + /* + * If DT contains no parent interrupts, assume MIPS IRQ 2 (HW0) is + * connected to the first output. This is the case for all known hardwa= re. + */ + oirq.np =3D of_find_compatible_node(NULL, NULL, + "mti,cpu-interrupt-controller"); + if (!oirq.np) { + err =3D -EINVAL; + goto err_out; + } + + oirq.args_count =3D 1; + oirq.args[0] =3D 2; + parent_irq =3D irq_create_of_mapping(&oirq); + of_node_put(oirq.np); + } else { + parent_irq =3D of_irq_get(node, p); } =20 - oirq.args_count =3D 1; - oirq.args[0] =3D 2; - parent_irq =3D irq_create_of_mapping(&oirq); - of_node_put(oirq.np); - } else { - parent_irq =3D of_irq_get(node, 0); - } + if (parent_irq <=3D 0) { + err =3D parent_irq ? parent_irq : -ENODEV; + goto err_out; + } =20 - if (parent_irq <=3D 0) { - err =3D parent_irq ? parent_irq : -ENODEV; - goto err_out; - } + parent_data =3D irq_get_irq_data(parent_irq); + if (!parent_data) { + err =3D -EINVAL; + goto err_out; + } =20 - parent_data =3D irq_get_irq_data(parent_irq); - if (!parent_data) { - err =3D -EINVAL; - goto err_out; - } + domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM= _INPUTS, + &irq_domain_ops, &output[p]); + if (!domain) { + err =3D -ENOMEM; + goto err_out; + } =20 - domain =3D irq_domain_create_linear(of_fwnode_handle(node), RTL_ICTL_NUM_= INPUTS, - &irq_domain_ops, output); - if (!domain) { - err =3D -ENOMEM; - goto err_out; + output[p].domain =3D domain; + output[p].fwnode =3D of_fwnode_handle(node); + output[p].index =3D p; + output[p].parent_irq =3D parent_irq; + output[p].parent_hwirq =3D irqd_to_hwirq(parent_data); + irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, &outp= ut[p]); } =20 - output->domain =3D domain; - output->fwnode =3D of_fwnode_handle(node); - output->index =3D 0; - output->parent_irq =3D parent_irq; - output->parent_hwirq =3D irqd_to_hwirq(parent_data); - irq_set_chained_handler_and_data(parent_irq, realtek_irq_dispatch, output= ); - return 0; =20 err_out: + while (p--) { + irq_set_chained_handler_and_data(output[p].parent_irq, NULL, NULL); + irq_domain_remove(output[p].domain); + } + kfree(output); =20 return err; --=20 2.54.0