From nobody Fri Apr 3 08:19:40 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010041.outbound.protection.outlook.com [52.101.85.41]) (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 ABA9733D4E8 for ; Wed, 18 Feb 2026 09:37:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407466; cv=fail; b=f9bzaBAW2Y4L0xYASIMJxaFTEd7VG1xBJVzspSio+lQ0UhelAeielwmUY8uypP47o4n4Rc2QEfKm5kckQO7kgbk7NdZXCb+y3xXdcWRV8e4NqqO+ukMNehYBQ5JEMiQnearjKVYHIWcnLa9AlZQbUkC7GVBsXHKqLGbXW92l+tE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407466; c=relaxed/simple; bh=e9crfHDtManBjp+O39v1RktC0mrKI1pEzXfvGiYb+Ys=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sqSkjXHG7fQg7AoAH6cXMztqdOXjNiF2rWfQsOoXpbuIzGFs8EpswV9J6JOBRP/dFnzOsad65sBD9bQ4R+kvgykHjoNLCSVk9y3wRgYs9BxHYjaHhhnJXN7Z3T+jYtpCQC9g46YFgVZ2ejry57ehwCAonHHNeHxyrybDHDTMwzU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=mLDsWUWM; arc=fail smtp.client-ip=52.101.85.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="mLDsWUWM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C7sjrj2VJEDA20UubMq7qMKWqXDLeen3VQ0/AaypIIRYzePI+tFfCWhUpiv02dBWfY34kEygB11HgT5kYYjKG6qqNtiM3h66FFvRjuHZgo1LXWQ/5v+Nna1PW9idWqay/l1FSvIpC54gr3AlRhORALWB29iZj2YcVsjNjZS7Yq7JLO3HDuxGWZHjBEejZmM/uCLO2qmOt5k5lpvEdN31zJxJnHlPb0OYah+5vXcw6WA3ZnsD9bfgLke9y4/rll3frzUPvreq7MrCfUffA+YJ9N93Z3mKCiY+PMqRdlN+azRTwV86pRVJIW2h1Hap4UtdV19PGACJ+CCcPQkPiCXY0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lQ6xEBAKAiux5ic2fcwnS/O7xTfpDdvsy3nLDOk+yKY=; b=j9WejZKz28l5CEnSxnQhrF9Z6UAaSXlSZx/mjZ3gwDAEZfL/s9ZItnxIke/BsbSe4fwVQgB0ZdHlyusg1lYas5zOzj5pldU1KwECtILHoqALQ+kDhk1GRth53cU5hkfxsrvjMK6ZVALu+zfrkO3s9nymZDBDFzur/L8b+GLVVOON3KPV3Ce2M0aKSkGmwZssYVA+iOwAGV9KQkTAkVYU62bbNSFI1aTGrHC/cm6m8aYeRBLwPMbSGdMt4XEeCVfzFZH5c45CKYvRSBt/w/Eo93tUU2qNII60sqWfOqolEcjW7hHcpt4z+9rIDitEHpKMQhUMzHjcsOhCy2uxgEHXiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 198.47.21.194) smtp.rcpttodomain=linaro.org smtp.mailfrom=ti.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQ6xEBAKAiux5ic2fcwnS/O7xTfpDdvsy3nLDOk+yKY=; b=mLDsWUWM6c+kifTCIXnIWE1npQn/xFTQ/fZiQh55jd0bnbUVXeHld9qmUJcc8iLwajwCyYrSeir3B+R/pY45Ul/TKNmoc2/P/NzEWgT/v/qZlGOlvMLTB31Cvsm3kAahzTEIFFt4o+6k39VcokW0SFUZhTA7YdJYDudvfKgW9/Y= Received: from MN2PR15CA0060.namprd15.prod.outlook.com (2603:10b6:208:237::29) by MN2PR10MB4381.namprd10.prod.outlook.com (2603:10b6:208:1d3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb 2026 09:37:43 +0000 Received: from BL6PEPF00020E61.namprd04.prod.outlook.com (2603:10b6:208:237:cafe::ce) by MN2PR15CA0060.outlook.office365.com (2603:10b6:208:237::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.14 via Frontend Transport; Wed, 18 Feb 2026 09:37:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 198.47.21.194) smtp.mailfrom=ti.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ti.com; Received-SPF: Pass (protection.outlook.com: domain of ti.com designates 198.47.21.194 as permitted sender) receiver=protection.outlook.com; client-ip=198.47.21.194; helo=flwvzet200.ext.ti.com; pr=C Received: from flwvzet200.ext.ti.com (198.47.21.194) by BL6PEPF00020E61.mail.protection.outlook.com (10.167.249.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 09:37:42 +0000 Received: from DFLE206.ent.ti.com (10.64.6.64) by flwvzet200.ext.ti.com (10.248.192.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:41 -0600 Received: from DFLE201.ent.ti.com (10.64.6.59) by DFLE206.ent.ti.com (10.64.6.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:39 -0600 Received: from lelvem-mr05.itg.ti.com (10.180.75.9) by DFLE201.ent.ti.com (10.64.6.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Wed, 18 Feb 2026 03:37:39 -0600 Received: from lelv0854.itg.ti.com (lelv0854.itg.ti.com [10.181.64.140]) by lelvem-mr05.itg.ti.com (8.18.1/8.18.1) with ESMTP id 61I9bd8P646156; Wed, 18 Feb 2026 03:37:39 -0600 Received: from localhost (meghana-pc.dhcp.ti.com [10.24.69.13] (may be forged)) by lelv0854.itg.ti.com (8.14.7/8.14.7) with ESMTP id 61I9bb3P015750; Wed, 18 Feb 2026 03:37:38 -0600 From: Meghana Malladi To: , , , , , CC: , , Vignesh Raghavendra , Roger Quadros , , , Suman Anna , Grygorii Strashko Subject: [PATCH v2 1/3] irqchip/irq-pruss-intc: Fix enabling of intc events Date: Wed, 18 Feb 2026 15:07:28 +0530 Message-ID: <20260218093730.3123342-2-m-malladi@ti.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260218093730.3123342-1-m-malladi@ti.com> References: <20260218093730.3123342-1-m-malladi@ti.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-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E61:EE_|MN2PR10MB4381:EE_ X-MS-Office365-Filtering-Correlation-Id: 86f90daf-a812-470e-018d-08de6ed15d21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IHSjqZjzX+b5Gcdm4gdEBeOeTE9pwJehzywGtic1FOZYan7+B01cLOx+rj9j?= =?us-ascii?Q?ycXq9bTY35TPRzLIsSFNXtByvhgG8sRY/WNJD3BBO3Hk0dxtCoM+K2ebhxTB?= =?us-ascii?Q?mjX92I3tBQ74NCEwjrrKKURBBR7RZSxauJcT29KQ7+ugYmNYr62WpQKSWGcu?= =?us-ascii?Q?Oh0ROIf8CSfv4wweFVHg1NyB5b1F/veQbXrghapot//YndyNKrJj1CqT7M9V?= =?us-ascii?Q?/KcNNUiohIOxZWJA9JBjE0Pdeky8ySxIstC3ImRdo1c//mqn6n5BcyT0/JPq?= =?us-ascii?Q?rX7mBInic4LAMUg4dyC5yEcAQhBRrHmx6LxGi+pVarPooiSyY2ANa+aqKoqV?= =?us-ascii?Q?+502SbiJt6Q4K2mIBAb4UVFvWhE1320CWNGk/tM1EkptUdlUAjRdns6yXmg2?= =?us-ascii?Q?71K+gc6z5m5w9AdhKeWHGsufivXQZDhKMmJgRdJvnLZ/0m/QWYQtCAuvLw5Z?= =?us-ascii?Q?vv9yOsT3QA0N+iiwSlEk2uhhTKBYZt2OVjcZ3nt0TLoSW/XtazyyKgldw/Sh?= =?us-ascii?Q?aJZAffaEv/WmaiAynnj2+ecgpcoSFvERsvt+FP95JVPfovsYWDFzGQT7k/zM?= =?us-ascii?Q?Gpc8s1a0JEn6D9qETWoAQE3E3ilv33Np/Nkzbzqs93xjqaIdswhCTNuxGR96?= =?us-ascii?Q?qSWFBkxfzApg8woUjAEiAhyus+cttuKfpZyPM037KK5xZ0nzQflHEkPnfpyb?= =?us-ascii?Q?ErIB6UKMewwc8YwiK9wP2JrORSikP+KpWipq/cDwZ7Y4WLJI4UWJChKsmSZy?= =?us-ascii?Q?poxJTPF5KhTDpXovsj9/gKuZhK/7LdVi+qTnz/oY1ZZBNYdQoO+e61e42wPb?= =?us-ascii?Q?zU+jBxnbgf8T21tJYUtShV3RxhKvf2V8pV/x5vY+vn36aovJFPRJflYu1M1Q?= =?us-ascii?Q?9ThrktclEfzBeT9p6VX7X8iVosxycmn+rxChty6DDT8M06GYXSDFh2FVgtKR?= =?us-ascii?Q?yLPRmLpVenjkJbsi0TtwkPO6NqeWmZMQyqxI4oUQKw80PKaN2kngcdwnmj7J?= =?us-ascii?Q?w8PeGBNNsq1GtLn6l2+nHi2smYvMxoVmJKzyiIsA8RxF+cEeN9fBZYvqX9le?= =?us-ascii?Q?x9K3D504IGWMx8Dne/MQEWy7Q2jjfgnYaBTpfMQOaSlfFH5T/N33DjvuPHEu?= =?us-ascii?Q?Gfck/4MxrJ8I2cCI1Z5cwnVBHIL0zuXjgQest1ZIrpJYjNN3dk1VRThAZXxe?= =?us-ascii?Q?7TjVrBQf+1m+8oOtBcIGsmgLdg75reeQdarHbnkFxNYW8aYUP8FFTtyTjjQa?= =?us-ascii?Q?fYN2MT+bieqw5RDaGXlaX80MB+xSzzzL6g6oYO7hSZoZk4ex+oLRCWZTBCIu?= =?us-ascii?Q?CnHDWZPKWa/LDvIX2mzd/qE+wheHXPmtVi7Jvzu9Hdq8l4HJfA4R2AbaJEbS?= =?us-ascii?Q?4loEK9zSPX1e0ZnsxpXXPZKLluXxrgtboK9zcCuh0B0gs/qYJof/DamlUWXs?= =?us-ascii?Q?2P1JNdafgeQP+z5nZlezddIOURC8wPYGmRTsz0VGBwIkGjJJHz7hZVnscIAb?= =?us-ascii?Q?w1/49Qv6HYpF3QmR4rg12Xh+h5dgmayFWgXpqhl7NLDjl+9rpxS6EnwFBRB3?= =?us-ascii?Q?oWa3MRFMXOCFwIJS6iULbcKCqhATFO4Kd2MZMjQH9mwegtN+O4GjYOKn6gVi?= =?us-ascii?Q?ey1wnSdT5ccFpic8pZIo19r0VO1DXEAcJie9Y4o3Ljg6POO8UYIeMdC1k4AK?= =?us-ascii?Q?2h8c8w=3D=3D?= X-Forefront-Antispam-Report: CIP:198.47.21.194;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:flwvzet200.ext.ti.com;PTR:ErrorRetry;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QmeLz/dYN886+dWVDDJUMi2Xiii49HxF1ugj8nZXwPMD7pYlY9EkmM2Mle1qeEho2NV4+GluhEFc5zj43Fi/qa8eyRNl40BOT9ijY9yoVD0ptptUy0F47gQEBEMiixkdoKgDERMyjTkW32mqRORtoeFu9HpR0QGxT+mNkbLhuF7VnwXzI/ms6keGK5HGcJDKiMR1NT5qePI1JD2u4olwMaekDedcsxKcVYOuupqXmIsqBY12GiALGZwWKCf5KflDCXGpau9XZFxDk4oZH4rts8e+KM2e6t0zC17mUSkiRA9iqH2xSHY2tjKweVF84I7uV63qNQGTasQYQMcKSam+lfJ4zK47+QBu7QdnFFSSmPrsbY/RgThjMahkUCP6DH28+fDZLIu9K2QVT1NovwGnL4baZm3oUJ3NfmUYF9BNx68jEiQlU3C1Z+gKDG8fR0pV X-OriginatorOrg: ti.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 09:37:42.1714 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 86f90daf-a812-470e-018d-08de6ed15d21 X-MS-Exchange-CrossTenant-Id: e5b49634-450b-4709-8abb-1e2b19b982b7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5b49634-450b-4709-8abb-1e2b19b982b7;Ip=[198.47.21.194];Helo=[flwvzet200.ext.ti.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E61.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4381 Content-Type: text/plain; charset="utf-8" From: Suman Anna PRUSS INTC events are enabled by default once IRQ events are mapped to channel:host pair. This may cause issues with undesirable IRQs triggering even before a PRU IRQ is requested which are silently processed by pruss_intc_irq_handler(). Fix it by masking all events by default except those which are routed to various PRU cores (Host IRQs 0, 1; 10 through 19 on K3 SoCs), and any other reserved IRQs routed to other processors. The unmasking of IRQs is the responsibility of Linux IRQ core when IRQ is actually requested. Fixes: 04e2d1e06978 ("irqchip/irq-pruss-intc: Add a PRUSS irqchip driver fo= r PRUSS interrupts") Signed-off-by: Grygorii Strashko Signed-off-by: Suman Anna Link: https://lore.kernel.org/all/20230919061900.369300-2-danishanwar@ti.co= m/ Signed-off-by: MD Danish Anwar Signed-off-by: Vignesh Raghavendra Signed-off-by: Meghana Malladi --- drivers/irqchip/irq-pruss-intc.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/irqchip/irq-pruss-intc.c b/drivers/irqchip/irq-pruss-i= ntc.c index 81078d56f38d..4ec1f4fc491f 100644 --- a/drivers/irqchip/irq-pruss-intc.c +++ b/drivers/irqchip/irq-pruss-intc.c @@ -101,6 +101,7 @@ struct pruss_intc_match_data { * @soc_config: cached PRUSS INTC IP configuration data * @dev: PRUSS INTC device pointer * @lock: mutex to serialize interrupts mapping + * @irqs_reserved: bit-mask of reserved host interrupts */ struct pruss_intc { struct pruss_intc_map_record event_channel[MAX_PRU_SYS_EVENTS]; @@ -111,6 +112,7 @@ struct pruss_intc { const struct pruss_intc_match_data *soc_config; struct device *dev; struct mutex lock; /* PRUSS INTC lock */ + u8 irqs_reserved; }; =20 /** @@ -178,6 +180,7 @@ static void pruss_intc_update_hmr(struct pruss_intc *in= tc, u8 ch, u8 host) static void pruss_intc_map(struct pruss_intc *intc, unsigned long hwirq) { struct device *dev =3D intc->dev; + bool enable_hwirq =3D false; u8 ch, host, reg_idx; u32 val; =20 @@ -187,6 +190,9 @@ static void pruss_intc_map(struct pruss_intc *intc, uns= igned long hwirq) =20 ch =3D intc->event_channel[hwirq].value; host =3D intc->channel_host[ch].value; + enable_hwirq =3D (host < FIRST_PRU_HOST_INT || + host >=3D FIRST_PRU_HOST_INT + MAX_NUM_HOST_IRQS || + intc->irqs_reserved & BIT(host - FIRST_PRU_HOST_INT)); =20 pruss_intc_update_cmr(intc, hwirq, ch); =20 @@ -194,8 +200,10 @@ static void pruss_intc_map(struct pruss_intc *intc, un= signed long hwirq) val =3D BIT(hwirq % 32); =20 /* clear and enable system event */ - pruss_intc_write_reg(intc, PRU_INTC_ESR(reg_idx), val); pruss_intc_write_reg(intc, PRU_INTC_SECR(reg_idx), val); + /* unmask only events going to various PRU and other cores by default */ + if (enable_hwirq) + pruss_intc_write_reg(intc, PRU_INTC_ESR(reg_idx), val); =20 if (++intc->channel_host[ch].ref_count =3D=3D 1) { pruss_intc_update_hmr(intc, ch, host); @@ -204,7 +212,8 @@ static void pruss_intc_map(struct pruss_intc *intc, uns= igned long hwirq) pruss_intc_write_reg(intc, PRU_INTC_HIEISR, host); } =20 - dev_dbg(dev, "mapped system_event =3D %lu channel =3D %d host =3D %d", + dev_dbg(dev, "mapped%s system_event =3D %lu channel =3D %d host =3D %d", + enable_hwirq ? " and enabled" : "", hwirq, ch, host); =20 mutex_unlock(&intc->lock); @@ -268,11 +277,14 @@ static void pruss_intc_init(struct pruss_intc *intc) =20 /* * configure polarity (SIPR register) to active high and - * type (SITR register) to level interrupt for all system events + * type (SITR register) to level interrupt for all system events, + * and disable and clear all the system events */ for (i =3D 0; i < num_event_type_regs; i++) { pruss_intc_write_reg(intc, PRU_INTC_SIPR(i), 0xffffffff); pruss_intc_write_reg(intc, PRU_INTC_SITR(i), 0); + pruss_intc_write_reg(intc, PRU_INTC_ECR(i), 0xffffffff); + pruss_intc_write_reg(intc, PRU_INTC_SECR(i), 0xffffffff); } =20 /* clear all interrupt channel map registers, 4 events per register */ @@ -521,7 +533,7 @@ static int pruss_intc_probe(struct platform_device *pde= v) struct pruss_intc *intc; struct pruss_host_irq_data *host_data; int i, irq, ret; - u8 max_system_events, irqs_reserved =3D 0; + u8 max_system_events; =20 data =3D of_device_get_match_data(dev); if (!data) @@ -542,7 +554,7 @@ static int pruss_intc_probe(struct platform_device *pde= v) return PTR_ERR(intc->base); =20 ret =3D of_property_read_u8(dev->of_node, "ti,irqs-reserved", - &irqs_reserved); + &intc->irqs_reserved); =20 /* * The irqs-reserved is used only for some SoC's therefore not having @@ -561,7 +573,7 @@ static int pruss_intc_probe(struct platform_device *pde= v) return -ENOMEM; =20 for (i =3D 0; i < MAX_NUM_HOST_IRQS; i++) { - if (irqs_reserved & BIT(i)) + if (intc->irqs_reserved & BIT(i)) continue; =20 irq =3D platform_get_irq_byname(pdev, irq_names[i]); --=20 2.43.0 From nobody Fri Apr 3 08:19:40 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011001.outbound.protection.outlook.com [40.93.194.1]) (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 286EE33D6C6 for ; Wed, 18 Feb 2026 09:37:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407474; cv=fail; b=uuMnIlbINxa/fIWrwe+kR0mhQBfXafc8N12n/uYmLr5vgB4DLtf9lmfbTAjyQscJH9HBZnibwhH5SfVMWj72TJgPrBJwEJDNN9j6W/KORxHBokvZfESptc/fj8Re/M8ekuZgXS+JI2PzSmxJ15cOLuT4aqkQdLXEuraM0yhq7Ao= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407474; c=relaxed/simple; bh=qzrF7EDWdnQS1jmt7pxqzjX3HXDokCROPetnKG0ELdM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HpS+oRuKKAfvS6Vh+PD7B3/2XK2ZjCFdN01QHEGbPDsQuYYEajfvYXnU3oyN4HfJP7R9Is3HNSM3CHuVtggnXL5jLnIJl7pzvAA8yOsL2Cv5edtz27bKU/i+CGgtg1XvRsP9lQ9/bUyhB9hMOzzM13aFZga8KcUwglxj3r9JcEc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=ENWk8Mf5; arc=fail smtp.client-ip=40.93.194.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="ENWk8Mf5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g01Moj9pqlfDjKyRZIYfmhHZpNCh/MMSc9Ktt8mkLh7jEglFIXbz/rWP1QemFf3HrwVRq2A8qG+h7D2E3IMQoVfRU522yHxxr0PC3ya8zPCPVBuquFGG53cnN6zmvzXrI5abUerXMcPrdpSnCdzeicXLeTZD76mITgWX0trOcDWphQhKc5lQuUizNXG0fz9PkwLhriSrrP8lzqRmYrQtHk4SKTLa27PmrpS/JtMDwK/4DnOSTV5b7OciaLny+rJp2UtgUngiLTNm4cond1qbXf88s1I1chXHCLQWl42Ao9UvmraLLthjmOjbv88J0Imj3/A+obSQd0Dve1QL9QpnCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wBuNConJNM1NFXTL2LZX8myCnQ46Tkjbj5/coswlwQc=; b=NPd7RJc9c8DTHo1qdcZEiQU/+CGbaD9hOq5RVu3xUKvf2Ywd34Uu2W8teJCfoCiVOavgq4iPhUupdHf7jQ6r7v2VnSIu5iLVPZYb7i7j+7Dlpk5QnvQoVdbuW46VFjokKzcg5p6nEDCVMhxg6lo5TqFdYHeJI5lOg3nWwovcTWUf3+PVSzCrhyAiwb/vzsK19lup2TvwbdwESIip79vO5eS1raxTniyxq8PFS9EkNExUkEr8ajzxl4i+O912EJH1NyFGqNc7y+51AIq5rJ9rAm4Li2/z1RloyGg9xfdHo3w09Pa2C6fGlqswrjOJ2ul+IvNBL5AyEkzw3RU8fDpvHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 198.47.23.195) smtp.rcpttodomain=linaro.org smtp.mailfrom=ti.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wBuNConJNM1NFXTL2LZX8myCnQ46Tkjbj5/coswlwQc=; b=ENWk8Mf5AOxyOXL3RbMDVypgWSmLIPaqgb8Q6Iq2ACFMRiJ6Wd36hoj+FDVQEEFEJl58amVyjsfqC/igy4+T1o62SCDAOdMLvNFDqokrgQhWjHAMgLVp6kGjmhRoxugbk4xJtMuMgzchh5Kfj97Cs7reM+pcRdLeh/1vYZmgE4g= Received: from CH2PR03CA0008.namprd03.prod.outlook.com (2603:10b6:610:59::18) by DM4PR10MB6277.namprd10.prod.outlook.com (2603:10b6:8:b6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb 2026 09:37:50 +0000 Received: from CH2PEPF00000141.namprd02.prod.outlook.com (2603:10b6:610:59:cafe::43) by CH2PR03CA0008.outlook.office365.com (2603:10b6:610:59::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.15 via Frontend Transport; Wed, 18 Feb 2026 09:37:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 198.47.23.195) smtp.mailfrom=ti.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ti.com; Received-SPF: Pass (protection.outlook.com: domain of ti.com designates 198.47.23.195 as permitted sender) receiver=protection.outlook.com; client-ip=198.47.23.195; helo=lewvzet201.ext.ti.com; pr=C Received: from lewvzet201.ext.ti.com (198.47.23.195) by CH2PEPF00000141.mail.protection.outlook.com (10.167.244.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 09:37:50 +0000 Received: from DLEE201.ent.ti.com (157.170.170.76) by lewvzet201.ext.ti.com (10.4.14.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:50 -0600 Received: from DLEE203.ent.ti.com (157.170.170.78) by DLEE201.ent.ti.com (157.170.170.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:42 -0600 Received: from lelvem-mr05.itg.ti.com (10.180.75.9) by DLEE203.ent.ti.com (157.170.170.78) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Wed, 18 Feb 2026 03:37:42 -0600 Received: from lelv0854.itg.ti.com (lelv0854.itg.ti.com [10.181.64.140]) by lelvem-mr05.itg.ti.com (8.18.1/8.18.1) with ESMTP id 61I9bgqn646214; Wed, 18 Feb 2026 03:37:42 -0600 Received: from localhost (meghana-pc.dhcp.ti.com [10.24.69.13] (may be forged)) by lelv0854.itg.ti.com (8.14.7/8.14.7) with ESMTP id 61I9bfNY015763; Wed, 18 Feb 2026 03:37:41 -0600 From: Meghana Malladi To: , , , , , CC: , , Vignesh Raghavendra , Roger Quadros , , , Grygorii Strashko , Suman Anna Subject: [PATCH v2 2/3] irqchip/irq-pruss-intc: Fix listed IRQ type in /proc/interrupts Date: Wed, 18 Feb 2026 15:07:29 +0530 Message-ID: <20260218093730.3123342-3-m-malladi@ti.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260218093730.3123342-1-m-malladi@ti.com> References: <20260218093730.3123342-1-m-malladi@ti.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-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF00000141:EE_|DM4PR10MB6277:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c452c4d-3a21-4cb0-77dc-08de6ed16216 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fA1BSamIuwblcZZY0Kzn9p36Ex5XNOehNloTtF4NxYnfCtvXgtV3FjpvLP3+?= =?us-ascii?Q?zcrM74CuSKD2KF5Df26QiNoWXiPQzxVRDli7mZ+fhDRBzmYaaC6ZbhRi7hIq?= =?us-ascii?Q?VDUe3G+yWZFuQfEyeq6l/b0VCqa+u1+K9He5dZOpsRU6iSnbnmC6OZd58PST?= =?us-ascii?Q?rBgLbJu9r4T0ojuEKr/zgF9//gQb4lYjivOk6A/RRnQYDF50s5BYGpr2B3Gh?= =?us-ascii?Q?AKbEpURhyS5A4lqAII6sL6JEpKazCymeeT5xbvmoITNNo4ujLwJfKbEuPClx?= =?us-ascii?Q?Ov2MvRWXLXvjQfy+xPz5PzatEalaL3AlCFzilL57Qhoy2xh4k1ic8lg5qZsZ?= =?us-ascii?Q?5V3siVGnkZBautDEaEs9W5z7QBQLoPKQEYExoXTEY8fJlHz5eLAO9dX5PfyA?= =?us-ascii?Q?Hpzrfai28I2N36+f0NIwkB8IkD0J6VD3NppA82tCCsMfD27EsjljhTvm58yN?= =?us-ascii?Q?Cycrf4VKW1DvAnks6V4zIe6Mu15rTTApdHMrNJBfSwcbtRkVFtXRZyuJKrL8?= =?us-ascii?Q?okGZ4leilRPWi/x8KjU4DtDE8WfdFQS1pki9y5pWdqi4x31f9daF/cKjGNnU?= =?us-ascii?Q?Uf7Kyb/ugCa5QGnYvVs04UpXEkNlo5ef3+Yy7yW1Spf5m77J+ffP6DaQaLBz?= =?us-ascii?Q?X6QFbzPWxXGZJ8HTlZmlKKIxyiLjayNfq4fgsUGSvPm7pK3KuVAiwQ5LPP4f?= =?us-ascii?Q?lNbhKHOonqER1RZELMMs1oCrfDVmmwKM+0CSoQ9ZZVqyePVu0JyAnVyLlP8J?= =?us-ascii?Q?5N+u8B1KgcjQYBeik5t+EaAS9EgWE4BWtPoEtdFvGWrkYZvXouInZFJ/0PJj?= =?us-ascii?Q?7nb83f6sscPNSzYPCpFOuphr8oRtbKr4vOkcQFg+yu1GD/wS9HaIGMVg/xqk?= =?us-ascii?Q?JjXqkdHwecN84uhMgs/MNB1vGQlcTmsXy7ORP2yzRbneTuv1nfKtUEinBk4l?= =?us-ascii?Q?g+RxmzGXzdwqP+s5O6UxLqVnefgLqFY275P92f7NV9qbhJQgcYS+gMckFFzt?= =?us-ascii?Q?m7ygkHkBCAzX8oHCSnvbUIZJuVW6pIoU4ywAu57hbyLtk+4QQGGhJfbPaxMD?= =?us-ascii?Q?zFViTOa12hik6Bz2D95WvW8Ujgf6l7vNIS+eI0LXGNOikFQGVa00ok3q+mxy?= =?us-ascii?Q?TX68JOm/aT7dbi4Nf1doE7RUPHOux8hxmchOC5yNjo55aj4CKXa3tV/Z7lSm?= =?us-ascii?Q?W4rr50a0gfSfMbRSUD+Zj8DpR+xF5OQvir9HFXY7tdB4pHJ8CvmNu/LiHOAc?= =?us-ascii?Q?OAFTQ7Oo8Lil3lFv2LPfpl5Hs4cXPLxhyNaReRqvnb6k5lDndss2XcGPiTqa?= =?us-ascii?Q?QgDAADbCnFW/Mw8PNmdY78BhGO3Xfbi6yxt4cqAiYc36uzqgkprz4ii8YCo7?= =?us-ascii?Q?QNEJSz09crxmaMkyXM+fqLre6sS0AfE1wonadON5O7ureLgq/Ht6jKUaDO5n?= =?us-ascii?Q?Qy5fwzzNtcMy2ataQTr7k0JHVswDB8KeiDzLAQ4zWhWsb5S9IqqoDwNLsZ3z?= =?us-ascii?Q?K85bjgxd5SZ5mCL9JZZngZbyyUN2wv/Zi7JBrIHroyfrrVh/BaiTjQZqIMFu?= =?us-ascii?Q?VY8m4xiWpERf0cFR+ugPUFZhozicO8GrCYsAejEFe5jfsG4p9Rr+CCrOoo5W?= =?us-ascii?Q?LVZuXI+vRLrKUU/FAQaaEMGlpuI94s2xz29KDGOFE3QJaj7UsgFpvM3HhUZU?= =?us-ascii?Q?VKiFAQ=3D=3D?= X-Forefront-Antispam-Report: CIP:198.47.23.195;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:lewvzet201.ext.ti.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: krDDBeZjmPuxiL2agINgQgXUftkjW4WgjMRX/txgedVgxCzZDSBOT/gKGGHBn25IQJfp7vFcQoaZV5I7vEM8S6vM01Zz84gL4dSmrO23+/ZRzGBTN+pgg22rYhQWuFY0T1DRcYGfv/06wLNwikL+DecvfJHJJ4VBoxyDeQ9nHB7lDjEkmOPB6j3EFypftZPG13GjcZFNV9YYDVovV4uhQRI1yRDA+C+wrSKaEa85jIJB0gDjo3U3jz+pEojuZ1gmS0tAdp1ufNR2YcQEBbzAanccLBTRuy9nMfSFXgIDpEDhxQ5CuzrGLs4Q8/sgEAQt0zmEfbbl0k6FJkBSn9nxPwDMq3Qd+okExtYnFbINAbhHqxBvUNxRyTx96zxNf/rr0l4FLvHEIYF5qlya3cDg0FaAn8/6Z2k8gVitQ9SWONbjvpo7qREMktJuiz76VnmP X-OriginatorOrg: ti.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 09:37:50.5106 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5c452c4d-3a21-4cb0-77dc-08de6ed16216 X-MS-Exchange-CrossTenant-Id: e5b49634-450b-4709-8abb-1e2b19b982b7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5b49634-450b-4709-8abb-1e2b19b982b7;Ip=[198.47.23.195];Helo=[lewvzet201.ext.ti.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF00000141.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6277 Content-Type: text/plain; charset="utf-8" From: Grygorii Strashko The PRUSS INTC driver doesn't have .irq_set_type() callback implemented and supports only IRQ_TYPE_LEVEL_HIGH. This resulted in the IRQ properties not being updated properly and the PRUSS INTC IRQs were listed incorrectly in /proc/interrupts as Edge. Example: 218: 0 4b220000.interrupt-controller 26 Edge pru10 Fix this by adding a simple .irq_set_type() implementation which checks the requested IRQ triggering type. Fixes: 04e2d1e06978 ("irqchip/irq-pruss-intc: Add a PRUSS irqchip driver fo= r PRUSS interrupts") Signed-off-by: Grygorii Strashko Signed-off-by: Suman Anna Link: https://lore.kernel.org/all/20230919061900.369300-3-danishanwar@ti.co= m/ Signed-off-by: MD Danish Anwar Reviewed-by: Roger Quadros Signed-off-by: Vignesh Raghavendra Signed-off-by: Meghana Malladi --- drivers/irqchip/irq-pruss-intc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/irqchip/irq-pruss-intc.c b/drivers/irqchip/irq-pruss-i= ntc.c index 4ec1f4fc491f..1fdf110d94ed 100644 --- a/drivers/irqchip/irq-pruss-intc.c +++ b/drivers/irqchip/irq-pruss-intc.c @@ -373,6 +373,14 @@ static int pruss_intc_irq_set_irqchip_state(struct irq= _data *data, return 0; } =20 +static int pruss_intc_irq_irq_set_type(struct irq_data *data, unsigned int= type) +{ + if (type !=3D IRQ_TYPE_LEVEL_HIGH) + return -EINVAL; + + return 0; +} + static struct irq_chip pruss_irqchip =3D { .name =3D "pruss-intc", .irq_ack =3D pruss_intc_irq_ack, @@ -382,6 +390,7 @@ static struct irq_chip pruss_irqchip =3D { .irq_release_resources =3D pruss_intc_irq_relres, .irq_get_irqchip_state =3D pruss_intc_irq_get_irqchip_state, .irq_set_irqchip_state =3D pruss_intc_irq_set_irqchip_state, + .irq_set_type =3D pruss_intc_irq_irq_set_type, }; =20 static int pruss_intc_validate_mapping(struct pruss_intc *intc, int event, --=20 2.43.0 From nobody Fri Apr 3 08:19:40 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012055.outbound.protection.outlook.com [52.101.53.55]) (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 B53AD33CEBC for ; Wed, 18 Feb 2026 09:37:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407472; cv=fail; b=rCsJFwIqk6rLtMWjAv9QS7b9pFMBS8R3B0+FnE/YEai28/ZVmOFCqUyiaMiqoyP8iYdIrggbHb52S5wD9BLI3+0plCiMu9GExHvRWduCs2LZxmTlHbkMwWEoAzvmz0oa7tpWxLJOshAVT+Lv0RvsfwSxdOgheOw9iu/ce9uK+oA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771407472; c=relaxed/simple; bh=EVkGKkGuC1h2WVyOnLt2oMA/MnepeWupaYdgL2VjN/k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JSW5JGiQnnEGCEAtxHAcGG5SwoikTvkaNRUbiq/D7c25JscDMatjN+RdkdKO2jdIrWmgYeX+C2VZ1NB2t8QpVCB8OreyWqwPysGqCVUr2RTMkgjJWjF6kYJx2k77D20VvGUKDmjjKgObe8zXJTBHhCcFJVg393ud0fdh8UZNNA8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=uOnLAwng; arc=fail smtp.client-ip=52.101.53.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="uOnLAwng" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y50AJRaEANGMRFCLZFXvseuV+pIy6MWBnkdf47X92c5G9NRK4RygGHEiUTDCMLcztiHebGuTgBnYy9oHTF9pUMmrlQspOJ5o3GltjzOHFU87L/F0Q1tJ1aW23ljMGylwu7Cx6awduUQf+gzcEb94yO8D30C7GuSUNKqeTvLOoscEpScOHTmbNmBDbtv1X86gM0GY7QQVEAa0nyu0gau78t6gk5W0fvOG5+tVrh/cXB9GwrY11c4QonNPdZd8vaaQHJrVzCI7MpTd/4a0yB9s2TkNzjD42yRtjOxLBO3/59CMLIpyFMaPoYcQ+3Ahq+CnlUNSMDN/RaOqRr4ZODLLnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HC7pCKJbGQYTGy0DBQS4SsGNT0OBsNHvhIkM2L/p1UI=; b=WMO/7eKd8HdUalJFORA1yFI+lwiEyOh8vacGQ/2SDf4A+xZJokBp/jF1Y+lPdEvsrpyZYx2/F7hbORKN482yo9qjwGKmncwO4ivYPjZCDVPOuqXTj2fj6BvWYjZ74+m1yabKcZ1VOj/BHmWit7zGv87oe+MO06vVTB5hqcz9otv6cO3RyFzH7Mf1lfU58CleVeaf/OPqwst4eqRgYWnJVqu7c42+UuiwOxVBJw5G4uUY+sMcOnXgAdpz0UlVqKlpg8DOHN0NoRk9wyOO92hVdYK1NCdZVlakHd0CuxVnMmymbdxeYLIKMJ9EOxUdEwKHRsKEk4MhpeRe2LUO8dxylw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 198.47.23.194) smtp.rcpttodomain=linaro.org smtp.mailfrom=ti.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HC7pCKJbGQYTGy0DBQS4SsGNT0OBsNHvhIkM2L/p1UI=; b=uOnLAwngBlRTJpV2LAG6pQOYnKRox7/yJIE+whyS9XEQQ/e2Jn483FZ8PyTvxBSE6e9yAD8rpjDwJI/rFeGMOcOLz+765rzc7h5ofk2amA+FsHevlxGCixzDPP9V7CpV8XEVsXDB+ShFcROKLZ19p4uencg4veSqysNJnv5lgo0= Received: from CH0P223CA0009.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:116::35) by LV3PR10MB8012.namprd10.prod.outlook.com (2603:10b6:408:28a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb 2026 09:37:48 +0000 Received: from DS2PEPF000061C5.namprd02.prod.outlook.com (2603:10b6:610:116:cafe::74) by CH0P223CA0009.outlook.office365.com (2603:10b6:610:116::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.13 via Frontend Transport; Wed, 18 Feb 2026 09:37:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 198.47.23.194) smtp.mailfrom=ti.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=ti.com; Received-SPF: Pass (protection.outlook.com: domain of ti.com designates 198.47.23.194 as permitted sender) receiver=protection.outlook.com; client-ip=198.47.23.194; helo=lewvzet200.ext.ti.com; pr=C Received: from lewvzet200.ext.ti.com (198.47.23.194) by DS2PEPF000061C5.mail.protection.outlook.com (10.167.23.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 09:37:48 +0000 Received: from DLEE202.ent.ti.com (157.170.170.77) by lewvzet200.ext.ti.com (10.4.14.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:47 -0600 Received: from DLEE204.ent.ti.com (157.170.170.84) by DLEE202.ent.ti.com (157.170.170.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 18 Feb 2026 03:37:45 -0600 Received: from lelvem-mr06.itg.ti.com (10.180.75.8) by DLEE204.ent.ti.com (157.170.170.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Wed, 18 Feb 2026 03:37:45 -0600 Received: from lelv0854.itg.ti.com (lelv0854.itg.ti.com [10.181.64.140]) by lelvem-mr06.itg.ti.com (8.18.1/8.18.1) with ESMTP id 61I9bj7A183990; Wed, 18 Feb 2026 03:37:45 -0600 Received: from localhost (meghana-pc.dhcp.ti.com [10.24.69.13] (may be forged)) by lelv0854.itg.ti.com (8.14.7/8.14.7) with ESMTP id 61I9biwf015770; Wed, 18 Feb 2026 03:37:44 -0600 From: Meghana Malladi To: , , , , , CC: , , Vignesh Raghavendra , Roger Quadros , , , Suman Anna , Grygorii Strashko Subject: [PATCH v2 3/3] irqchip/irq-pruss-intc: Fix processing of IEP interrupts Date: Wed, 18 Feb 2026 15:07:30 +0530 Message-ID: <20260218093730.3123342-4-m-malladi@ti.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260218093730.3123342-1-m-malladi@ti.com> References: <20260218093730.3123342-1-m-malladi@ti.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF000061C5:EE_|LV3PR10MB8012:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f4b431f-918a-48db-6b17-08de6ed160c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c29acm5Rd2lmWS9EQ2pCQk5OYTZqaDBhVHhKVEtKOWtMQ1Zld215b25SOU1B?= =?utf-8?B?cWR5WW9YdzZhbC8yQndrQkdYUGwxVGIxUzRDdjA3a3doUlFvUnc2ajkyM0o2?= =?utf-8?B?NmhYS1YwamJManJpeVhYNzgvRFlMd0c4QnMzeDl5K1RYenhGWVhsUzFtZ21p?= =?utf-8?B?ZktlUGpvR3lpMm1TN3JkNXY5UUpPNzRkUXdaVGZxTFRPTy8vdUU0ZjN3ZTZI?= =?utf-8?B?eHhZcTRmWWs4YjVmWkZEbW9abTlrWEhSUGhJQ2lCR2FCTk05RWg5bW1NcGpC?= =?utf-8?B?dDU2OGJ3TG0rbnk3TDlzUUZ6eXdtc1J6RzVIWmYvcHd1aGdtaDVkd2VmaWtE?= =?utf-8?B?b2JyWWo4RnIwQ0FMM1Nud1RWNlg1SkI0WksyY2tTM1hBNlhHZnI0dTZuNWQ3?= =?utf-8?B?bXNZV05VcCt2aUN4Y0JROFVJL0tQVm1qaTZ0VWkrSDBobTdLMzcyMi8vRzEv?= =?utf-8?B?dzhPQmxucm9HM3lzSzBqRUpaTC9WN0R6UDdwU1pLdmpuN2ZvbkFENVo0b1Mz?= =?utf-8?B?eUY3SzB1SWtSRmluRklmM0VNZklKWXBiQWhtQUM3ZDg0MllMYTNHMjlLQktQ?= =?utf-8?B?eVBOQzVhQ1NjYlZpMXJkdXF5d1h5UEVENFg4VDNCMWt3M2JTTXpYdSswdCt1?= =?utf-8?B?cS9hVTNaT1A0Yks5Q1Fyalc4NHk2dTMrR3k1aEtDY3JKU1laMFoyUXB3MFAy?= =?utf-8?B?MEVBbUpuYXdmU1cwQVhjRkZBeUR2cjJKNE5ZVUVVZmQ1cXhTR1RlTlhCczZl?= =?utf-8?B?ZlVoWk40OStsYk5tWVNjVE9Wd1czaFQyUEFtMHZxUTFsUFlSdmNTK0pLU1Iz?= =?utf-8?B?ZHFXY1ZTcVNHTEdGNG9mdnBjaUJCbFRMUkI4OGpBaTlGNXk4QS90ekZHQnhS?= =?utf-8?B?QTcxZ3Q0SVBTenpsMzdzSzd1SVVhNHdRN3liOVVERXhKS2tvTUk2KzFyczJx?= =?utf-8?B?cm5IUzIyQnB5a2hsOEt1bjJTK1NoaXE5eEZJNE92YVZwbUFsbEN4TVMvc3ps?= =?utf-8?B?ZnF2U2x2MWx4cStwNzRjbDVEQjQrZVZ0N1ZnYkwzNFJVN1FtUFJLL3F4Yzd3?= =?utf-8?B?anZBSys2aEtIOUVqdU5XejZycDEyK1R0My9BZlh4UzhpWTl1bzNyS1FOS29r?= =?utf-8?B?eGRncFJuTVdDK0s1aXFzNm5kWTFRMm52a3JyeVV3TnVRTDVlRk9FM2hlVnlC?= =?utf-8?B?NWpUNEFVOEZPL3N6ajZaaUduRElaWVZTdXN3b2NqWllLQ1g5YkRSSm1XQWxu?= =?utf-8?B?T0dManM3d2dzUVdUaitXalpjODFaZldudk9rTWFyQXFFRXRVTXRpTE9lYVFp?= =?utf-8?B?UmhQQkFmT056eEFsNkI1SU5zcUcrdm9lSTJaT1dBRXRmczZpdkVUTmZSUFNy?= =?utf-8?B?M3JSaHRjWDBLTFJvdlhiYXRxVGkxaEVnTmdTeTJuNnJMM1ZLZ2MzSUtNZTdX?= =?utf-8?B?S3prcFJtNkdGdGwyRW1YVjRIeXJyRFhXdFJ1TWNWMktkNmtId3BVY080ZjdR?= =?utf-8?B?ODUraWNkY1JDc01uMFluTWtEVG83ZG1BTm83TS9vU1JIVFMycFVRNitjSGI5?= =?utf-8?B?MzhRRGdkSkpmeDMzeGF0em1HOCtwSndob2VUVUtIN3R2NEE0M2hpMUV5QzEx?= =?utf-8?B?KzEzODNiZURuZHdpVE5ZU25FbTU0THE5WUtmdXpKUVMvcDdDcDJwelhjZmxr?= =?utf-8?B?T3hDbTdiaFRuT3FBZ1p4ZXh0c3lJWmdnbjVmSW93OFBuQXJnVkZFRHdQbUVN?= =?utf-8?B?Q0p4b1piTTBqc0gwbmVPWVphUEVtSzBrbmdFcndJU01QWnB4WTUzY3gvZ2M0?= =?utf-8?B?clBsVWE2Q1ZZVitTNDQwbEtaclR0bm1GQlZ1V2FNaUpadVRySk1nZ0RmakNl?= =?utf-8?B?MHRySkplZ2hNNGQvZFNsUTQvVTIrVjFoM213ZjhHbHdtSE5nQ1dncS95d2Jz?= =?utf-8?B?Z1FLN1o4Sk9TcFRYOVVIbWx4dWp3UHRMY243dkprRFpRd09NZU9ObG1tUUY4?= =?utf-8?B?RVdjdmNvelZXSFN1aTFSZnFERENYSkhpdFBPYW1TM2JodVRJSGxKVHcwQVcx?= =?utf-8?B?VmhFclRNMDduRGkzMGJ5bVNJNXE0ZkwvUGxLc0xEbUJWTHducWVMNzdnd240?= =?utf-8?B?azVPTE5WSzd2NERHZFlGTldzNlFyK2NIUFZneXJsR0ZPSEsxSHdGUG1GZXFj?= =?utf-8?B?MjJLWGdJS0ZXVUNjcngxTzNOK3dRSEwrWk1rQnZnT1RWSWc5M2F3N3AxQWFr?= =?utf-8?B?M2lqOVZ2eG9ET1oyc2s5RGQvQ1J3PT0=?= X-Forefront-Antispam-Report: CIP:198.47.23.194;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:lewvzet200.ext.ti.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3aujlwonVb4PUNBssAoj7qWqUJ5TIUUKMbYJLwtHzD5CxIyacJQJL8krBTdZakgArxeC4Z9LIG7RxmWyrlPnGXFooXQt0POd2AUdFO+CwBYDXfZ2KOcPI7yyB6xHLWW2ICROxv/Hs3EaexZ1LbCnsZXNtrzxliEB0fhSSO7RRTUbf2kiBnO5BE1xNw2Hvxv/x7j/Zg/Qq1KFd3jGzdhTr5GJR6/+RWwVh0EfugPk/mmIStu6m6YhM8MVVjtjME80ca7J1oda8Ap3hMFvN/0RcizjBBO+niwFuiD209FK70m9hgzlLLhKjywTP1yxH2jzo7O0bVRVURGzxsiPEg1sXNSXtILzEze+56KhWqDfbNogO0IqyxeiN4hUd/AKGHWeYQtFu0A62e1wFnqj2Rdkmrxrg5tTJfVPAHieSjI46IlHtiwLxVAIoWK2eiNpHVoe X-OriginatorOrg: ti.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 09:37:48.2677 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f4b431f-918a-48db-6b17-08de6ed160c1 X-MS-Exchange-CrossTenant-Id: e5b49634-450b-4709-8abb-1e2b19b982b7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5b49634-450b-4709-8abb-1e2b19b982b7;Ip=[198.47.23.194];Helo=[lewvzet200.ext.ti.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF000061C5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR10MB8012 From: Suman Anna IEP compare/capture events are level-triggered and remain asserted until the IEP CMP/CAP status register is cleared. The PRUSS INTC acknowledges this event (via SICR) before the IEP source is actually cleared, leaving the SECR latch still set. When linux unmasks the interrupt after the threaded handler completes, the INTC still sees the event as pending, resulting in an unintended second interrupt. The solution is to actually ack these IRQs from pruss_intc_irq_unmask() after the IRQ source is cleared in HW. The interrupt handling sequence is as follows: IEP hardware =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [1] Compare match occurs [2] IEP sets CMP/CAP status bit =3D 1 [3] Output level stays HIGH until software clears IEP status PRUSS INTC =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [4] Detects level HIGH =E2=86=92 sets SECR[event] =3D 1 [5] Raises host IRQ to Linux Linux interrupt flow (oneshot) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D HARD IRQ: [6] pruss_intc_irq_handler() [7] mask_ack_irq() =E2=86=92 writes SICR =3D event =E2=86=92 tries to clear SECR BUT level still HIGH =E2=86=92 INTC still sees it pending THREAD HANDLER: [8] icss_iep_cap_cmp_handler() =E2=86=92 clears IEP CMP/CAP status bit =E2=86=92 IEP output level goes LOW IRQ FINALIZATION: [9] irq_finalize_oneshot() [10] pruss_intc_irq_unmask(): Without fix: - EISR reenables event - INTC still thinks event pending (stale SECR) =E2=86=92 SECOND IRQ (spurious) With fix: - Write SICR again (now level LOW =E2=86=92 INTC clears latch) - Then EISR enables event cleanly =E2=86=92 No spurious IRQ Fixes: 04e2d1e06978 ("irqchip/irq-pruss-intc: Add a PRUSS irqchip driver fo= r PRUSS interrupts") Signed-off-by: Grygorii Strashko Signed-off-by: Suman Anna Signed-off-by: MD Danish Anwar Link: https://lore.kernel.org/all/20230919061900.369300-4-danishanwar@ti.co= m/ Signed-off-by: Vignesh Raghavendra Signed-off-by: Meghana Malladi --- v2-v1: - Updated the commit message with more details on the fix as per comments from Marc Zyngier drivers/irqchip/irq-pruss-intc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/irqchip/irq-pruss-intc.c b/drivers/irqchip/irq-pruss-i= ntc.c index 1fdf110d94ed..17b03e0d012e 100644 --- a/drivers/irqchip/irq-pruss-intc.c +++ b/drivers/irqchip/irq-pruss-intc.c @@ -70,6 +70,8 @@ #define MAX_PRU_SYS_EVENTS 160 #define MAX_PRU_CHANNELS 20 =20 +#define MAX_PRU_INT_EVENTS 64 + /** * struct pruss_intc_map_record - keeps track of actual mapping state * @value: The currently mapped value (channel or host) @@ -85,10 +87,13 @@ struct pruss_intc_map_record { * @num_system_events: number of input system events handled by the PRUSS = INTC * @num_host_events: number of host events (which is equal to number of * channels) supported by the PRUSS INTC + * @quirky_events: bitmask of events that need quirky IRQ handling (limite= d to + * (internal sources only for now, so 64 bits suffice) */ struct pruss_intc_match_data { u8 num_system_events; u8 num_host_events; + u64 quirky_events; }; =20 /** @@ -304,6 +309,10 @@ static void pruss_intc_irq_ack(struct irq_data *data) struct pruss_intc *intc =3D irq_data_get_irq_chip_data(data); unsigned int hwirq =3D data->hwirq; =20 + if (hwirq < MAX_PRU_INT_EVENTS && + intc->soc_config->quirky_events & BIT_ULL(hwirq)) + return; + pruss_intc_write_reg(intc, PRU_INTC_SICR, hwirq); } =20 @@ -320,6 +329,9 @@ static void pruss_intc_irq_unmask(struct irq_data *data) struct pruss_intc *intc =3D irq_data_get_irq_chip_data(data); unsigned int hwirq =3D data->hwirq; =20 + if (hwirq < MAX_PRU_INT_EVENTS && + intc->soc_config->quirky_events & BIT_ULL(hwirq)) + pruss_intc_write_reg(intc, PRU_INTC_SICR, hwirq); pruss_intc_write_reg(intc, PRU_INTC_EISR, hwirq); } =20 @@ -641,11 +653,13 @@ static void pruss_intc_remove(struct platform_device = *pdev) static const struct pruss_intc_match_data pruss_intc_data =3D { .num_system_events =3D 64, .num_host_events =3D 10, + .quirky_events =3D BIT_ULL(7), /* IEP capture/compare event */ }; =20 static const struct pruss_intc_match_data icssg_intc_data =3D { .num_system_events =3D 160, .num_host_events =3D 20, + .quirky_events =3D BIT_ULL(7) | BIT_ULL(56), /* IEP{0,1} capture/compare = events */ }; =20 static const struct of_device_id pruss_intc_of_match[] =3D { --=20 2.43.0