From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013043.outbound.protection.outlook.com [40.107.162.43]) (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 DD88819CC14 for ; Mon, 13 Apr 2026 03:00:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.43 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776049216; cv=fail; b=s1NJLjSGaZJRwA1BTPm1ybvSvk8U/p7PVMQAxzmrixK1uIeGnrOdi9w4IhHXXRx1m+mYoQJLILasL5vn9OpPgccSiouXaDnAZEv9X380d2liBSA7tZFQiIwyw3yOrpgSsjAHw2KxtcpENg0ckVdx30m5IY9cTnkmeATGlaO3S/s= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776049216; c=relaxed/simple; bh=1iUoB6mEtj4KKwDM54GHIoOZTyQVAPcDnYfUvnZMYOg=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=OOs6AUAFah9qxkK6tEongqtX0gWuOZksxCM9AKyiv4vhjVMKJd5s/U8hbSRfMnSvSGSI9KHTiMmvKV/5dm+SG7hT/6FCkcDQl+8NBwHiXVG01PJNlRbcYKdYd8P6XjBmV3lG5Oaqp2ksEo5l4dnS/aJvBtkeqweqMD7/Uh152Ic= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=LIurL4D3; arc=fail smtp.client-ip=40.107.162.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="LIurL4D3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TkGZ4U8vrzjnF/1gMuJkhZcf8bV8wZEtmz4OoeFH14TGJn2yRCu+ZK821NzJLTcF6WyMnEdkEMSYxFl/De9GYtoIzMEUZ+BecgrpxlYcOn3N/rjrI6DpvLIBXYHfJblfY10ERzFIKb47i8gm9KjFFSGK19gX6OHu9cFqUSsvBotMYjNntY6gjqw88VHnIajYovPOJqgeq5Er0cRJO0mRm3nfQfvqhr/m6c7Bo1Y6jl9IU0HDdCcLZhwbDK42az1LIkZbs7Vf+bZFvRVmiFQ42c5TZuDbnIfMib3IYZOPPjQpD9qL0CSpm7tFhFdaxuV7Z9W1sAsHEMHR9RUMKWx2Ag== 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=MyXj22PlYzk8IYZuHp23tqUpOCx9frygwohGCF5Io8U=; b=aq5EzSOfq4x3IGgMWL84/BR1RZs8l3GoC8XVYfnUU2MhR2884Y0JAIQG0ZX1QCV7NCC9QhwBD3bevhdzzxkhPVRGiwkkwG9HzPEmsCV1dfbmipIS2WfJmRuZT7lTJ6YXyD4sDzkm4vcfmojQ/ACw9fOsTi+JLu+UbjuacqaEPBrUM2gW0gwKahqs/3b6+DYseuVjbu1CbsfV4hniwYbuSn5TBMve9wOFQsnnVET0kkG30wAYGxhDRKQkn1o3/u/LzJ+shvgbKdO40H3wPKY3OZsQumztZmZmIQ1F6F4E5FCAbGk1COlCgebURdttYaBeecMp4+vLTzBkNxFZaQPavg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MyXj22PlYzk8IYZuHp23tqUpOCx9frygwohGCF5Io8U=; b=LIurL4D3SgAyh10DNfCT9r//pia6SQs0rQGgkaZi1FJmy1wrGd6ciU/A0g3D8uHjeXNURqRY9BXWc5YsRrL4Uh1cfzHmA0Q40B4vaOAxJNuYBzbrUyBNBimLrKvoo76XfZ/b0PsllG23Y/9Z2tx+YcN3nn7FSzieY+0eRAE3L0NefL+TCsyGcycPpd0tt7oAi5MAaY/HyIpcSoOc1Z93pcQT5cnCefh7WzNd7Ot1lfDu0EpgtlcNyDYc//Zbyi0+YgE2KPd5TyJR6l3zh9N4bCtq33GzMoT2CNOI39aSifios3t0sAHtIGkN4iIer45GIzrf/HJ0nvLa3M69nnSL8w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by VI2PR04MB10569.eurprd04.prod.outlook.com (2603:10a6:800:273::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 03:00:10 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9769.046; Mon, 13 Apr 2026 03:00:10 +0000 Date: Sun, 12 Apr 2026 23:00:02 -0400 From: Frank Li To: Stanley Chu Cc: miquel.raynal@bootlin.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, tomer.maimon@nuvoton.com, kwliu@nuvoton.com, yschu@nuvoton.com Subject: Re: [PATCH v1 1/2] i3c: master: svc: Fix missed IBI after false SLVSTART on NPCM845 Message-ID: References: <20260413005040.1211107-1-yschu@nuvoton.com> <20260413005040.1211107-2-yschu@nuvoton.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: BY1P220CA0026.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::17) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|VI2PR04MB10569:EE_ X-MS-Office365-Filtering-Correlation-Id: ce19aa75-2043-4c99-52e5-08de9908c691 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|52116014|19092799006|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: S4BTUih+mdfXNRrTp3da4Ng3JNDrNg+Ey7wrcEtMyrkIHZDEVGGVM5jyj09OHqJjISOyD0caraCysj5pa6E9UBY8XV0E7+j/fEwc/d4Puyyab5i+TUbv+z0ssuruMg1QvbADmNL1VTONRMsXxBrl/ggSWN7acMDKND64M+psbiq0U60NHHBx5RuO0DtOhotLwS4rpByKE5u8RR3Ci/wGrU8gx+wVqZ//ImUP/D2KsmMpDhhk02ScJ9qz3YAV1dtpwwAoYqgREgHr2zfa9Trbs11mvYIOvoQqZS1oZDVCde9kOsSaZCdv4rP9UN0MymdyqDFIhsr5tyL3VgkjyPrDZKLivf7+XI2mL80/S3gpbPiVbqFf4XMKGBnfULV0yV6VXoLtBHtJl1rioJdZaUZ4/vJ8RoUoKtNtpDu8U8ueQN/CWi1e9nqG1W0BZ/pV0VG6hGsmZh8XoPQUP093h38by1YMFGMkdHVZE//kZCmRf6Ejowk+LOYp9Aft448RiMk+DZZG0Ww3c0nq1I5tP1ITQHc+lpNgj6tLqfTN0mx+q87SCJHbzixMLdiUxnBuMqIN+0FY+Y7tN2S4k8Z4a6r1eIG2XU2o83nK7h+zVUc3gDR9xctdlBSXMKGKq+eQM91pCWC8/8qGqK2NEE5JoUOD9Hboan8MJ2w9wy5cWFfXaS3MRyhtrcizfwzUero2FGZSuQ60YXyBh+Q1r0tkR5ydXhsfbkxoEHXQPGxwaA7NxaxxZcSCl66H+WSje8B9bvGigV52bb1eLyRUca1CTbUzxvG/7V1BCVnn6PIYVf4z3Ew= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(52116014)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TkV2NUMvZGNhYkN0NFVxKzJKN1haeEQ5Yjhra0Zod21uN2xGUWlWaFVTOEh5?= =?utf-8?B?UmFVd1R3YTRIbUZRc1ZJOXd6NGd4TEhQNDQrOHBmYmZrdVBJZzZaK2NMeDVB?= =?utf-8?B?OEZ3VU5QdTN5bFYwWEFIMlp0OUFaZVZuY0g3N1NHNWxaTUdYL0RBeFQrRnFk?= =?utf-8?B?dHRjMzAyVXloSUVWV0t3bWlNYTRtZEthQ2ZjWnFSWW0yYTQvWG1hdkR1am5x?= =?utf-8?B?cWs1cit6bEc0OEduZkNtSFhrT01ESkFXeUVBZmU1NUNsc3IvTVVVNUMvSGww?= =?utf-8?B?WTZUK2djUHl4ZmVnNVBPYWczVERpTEw5aHFjd0tFVGgyaG11MmowQXJUVUgy?= =?utf-8?B?cENqMlBLS0Npa0ZSRTZPUGlob2drQ28vQ2cyUEQvaFpjaUdqVmVFM3JPZ3ZH?= =?utf-8?B?dUVIdU0xRjJYSGZ2R0Y3TnBrNlNxejRzWDdIR2c5ZGZ0bkFnOEJwUEZCOGdY?= =?utf-8?B?b3VjVTlmMkhRdXcxblBYdHRMVlNuektuQ0ZUeUg0RVFrdlh1c0xTbEdMTGZr?= =?utf-8?B?M096NlVHNGFHQjZJVGs1cFVqTEs4RTdRbHBLUGRTSGhPNXdNcHI2bm1GaXEz?= =?utf-8?B?N1hROGd6aXloanQrVk44bnArQm1rT2RXS015TjNpaEdrRTRjelFKNWZYcEMz?= =?utf-8?B?SWdjTlFNRW8rbm83ZEhiZjgrbHdPTmFtRjB6aHRlTGs4NWxjQUZaWnNGVlVj?= =?utf-8?B?WUp4MHYyS1BXSDZWMERzUmdUb2lORGhZY3hET2RpeFIwM3ZjdU5XQ2MxMjdj?= =?utf-8?B?aTNTdTMxZVJqdUY0WE1qVmpBR2RSaVU5REYvbE1iT2RsK3N1czJNQ0h6ZSto?= =?utf-8?B?emJGVnNobUpvZ3lhWlVINE5MenEzMlZ0UnFCaG54bGhML2Y5ekt4RGR6UGl6?= =?utf-8?B?ZTRuSGlZd0hFTnRNWTcwTUJ5Ymd3RlZYeDhBUlNWZE1ibG55UjhEUlJpWUd4?= =?utf-8?B?eWZIVk1GaHh4NmVyVEFwZkdmZzY1akUwR25ZQ1VTaVpQTEhCNCs5eW1nQ28y?= =?utf-8?B?SncvZjBvSDFvejQwcW01L1pMcVNEbkRrR2lEZE1LY3VUQ1JNekprZXFobW5F?= =?utf-8?B?M3V5b1BlMlVoclh5eWVpVGE0N3NZQ1JySUx3MDRtUVdqbXNoZnd0ZUdkZnNl?= =?utf-8?B?akh2SWhnUnpWWkp2eERTc2lMTzBTUmtiSW44c2k3MmZEeUExbUZpMVhJNDhw?= =?utf-8?B?YUhmM2gwTEJxaDVYbHB1aFFPd1pEb2FOKy8vb3FLWmE1UnhrK1JmelA2RGlL?= =?utf-8?B?MjJqbStzQnViYmpKSlAxYy9Yb1VmZmZGMmcvcFNWbys4cGkvM1pReXN1ckFn?= =?utf-8?B?SWFGMVFHL3lFWGkvV2RPZ1BVbCtncjBYdjJnQ1NWYUFrWmdPcGJTdXIyOGFU?= =?utf-8?B?azdaZDBWMW4yTEl3MUtqaWFEcGRFQnpmbmRoZDJpSUI2RUpibjQ0WGU4Y1pZ?= =?utf-8?B?TzlnM3lzRHhhZ1hIdHVmZHVhZE10MEJLajdPMzdnRHRXWE11RXRCUWVoMGRI?= =?utf-8?B?U1BhRmlyY1BYclZVRnJpTGZLNlRtdU1SNTJwdlRHWEpydW16Y1dIL3NzVEt4?= =?utf-8?B?OFU2L0FwY0Z6Y1M1ZkxEdFRHQm1QSE5ZQWpXbmpKa2FXWFNNNmZON2JiTkJy?= =?utf-8?B?ZkVVODJtRi9NeTVwcTNZcmRzUE9nL1FVS1R1NG1mTk1IUGllU1F1ZUtYYVpa?= =?utf-8?B?QlFwMWd4TlB4NkQrRWpqajZXMGhFRlZxUEp1WENSSGVXQUdHYnBoVFlQdUVo?= =?utf-8?B?QXo4S1U3bS9FcUpLcm1HY1BDSGlvaTR1cVJWSjVlZUFEUnlxaGVSSUxjdFZh?= =?utf-8?B?WUViejhIQUtCZG9KbmQrd2cvQXlmZ3NhUlhPa3p5VE1PY2lucWE3aGVuOEx2?= =?utf-8?B?L2ZEaE42ZnVUS1B3SVlWSTRTU1JEbmY4WS9BTUNWOXZQTlpZNkdCZlVpT2dK?= =?utf-8?B?Q2lWOXgwMWVXMEExSll0eDU0cXNnUEpKeE5ZK1ZuZnJNVDBWeWJXVmVlMlRY?= =?utf-8?B?MUpmbGMxWHBBUGNkOFZ3WU1XRU9DQ3pXTk1INU0wQWFWY2RNL0RuSFNsRkla?= =?utf-8?B?RTB1OVViUE56YXVIWGJaWnc5VWt4bjdQN3VUNlE0Sld0UWVIckM1S3JxVHRs?= =?utf-8?B?UUdwYk1TUzQ2bDF0c0pnVjI0M0M1ejhrcVNKN1hiYlF5RkpmVnhKQ0szTldl?= =?utf-8?B?NkRKL2IvcW1jd3lMUW9qQjZUNUJEVkJrQ1VsUlBsK3Q4TzU3ajZCdit3U3o0?= =?utf-8?B?SEZmRWt0WThPYnFhR1RLOXNPVnpMek9FNm15ZSt6TnROUzhYbVpaa0lUbjI2?= =?utf-8?Q?PK/34UyKFxyYHymOve?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce19aa75-2043-4c99-52e5-08de9908c691 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 03:00:10.5007 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: maiUzBYIcydcbqRl38LXO6fqBFa3bnaMaBoqNoCsGlZDl2+ifFWDgKjXvAeSP3Efz7FdVxpzSQFYNSu9KsGaHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10569 On Mon, Apr 13, 2026 at 09:40:02AM +0800, Stanley Chu wrote: > On Mon, Apr 13, 2026 at 9:16 AM Frank Li wrote: > > > > On Mon, Apr 13, 2026 at 08:50:39AM +0800, Stanley Chu wrote: > > > From: Stanley Chu > > > > > > The NPCM845 I3C controller may raise a false SLVSTART interrupt. The > > > handler first latches MSTATUS and then clears SLVSTART. If a real IBI > > > request arrives after the handler latches MSTATUS but before it clears > > > the SLVSTART interrupt status, > > > > How this happen? If irq handler running, hardware (real IBI) will trigger > > irq line before it. > > > > Do you enable other type irq? > > > > Frank > > Hi Frank, > > Only SLVSTART interrupt. Below is the sequence: > - HW raises a false SLVSTART interrupt. > - The IRQ handler latches the MSTATUS register. > - Before the handler clears the SLVSTART status, a real IBI request arrives. > - HW updates the SLVREQ state to indicate a pending IBI. > - The handler continues using the stale MSTATUS snapshot, does not see > the new SLVREQ state, and returns early. Because reading register and IBI request arriving are totally async readl(master->regs + SVC_I3C_MSTATUS), may return two results 1. before IBI request 2. after IBI request How do you make sure second readl(master->regs + SVC_I3C_MSTATUS) always get the result of after IBI request. Frank > - The real IBI is missed and no further interrupt is generated. > > Thanks. > > > > > > HW sets the SLVREQ state. However, the > > > handler still relies on the stale MSTATUS snapshot, returns early, and > > > misses the real IBI. No further interrupt is generated for this pending > > > IBI. > > > > > > Re-read MSTATUS to obtain the latest state and avoid missing a real IBI > > > due to this race condition. > > > > > > Fixes: 4dd12e944f07 ("i3c: master: svc: Fix npcm845 invalid slvstart event") > > > Signed-off-by: Stanley Chu > > > --- > > > drivers/i3c/master/svc-i3c-master.c | 16 ++++++++++++---- > > > 1 file changed, 12 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c > > > index b84b324e4111..7d88e8fe3742 100644 > > > --- a/drivers/i3c/master/svc-i3c-master.c > > > +++ b/drivers/i3c/master/svc-i3c-master.c > > > @@ -672,10 +672,18 @@ static irqreturn_t svc_i3c_master_irq_handler(int irq, void *dev_id) > > > /* Clear the interrupt status */ > > > writel(SVC_I3C_MINT_SLVSTART, master->regs + SVC_I3C_MSTATUS); > > > > > > - /* Ignore the false event */ > > > - if (svc_has_quirk(master, SVC_I3C_QUIRK_FALSE_SLVSTART) && > > > - !SVC_I3C_MSTATUS_STATE_SLVREQ(active)) > > > - return IRQ_HANDLED; > > > + if (svc_has_quirk(master, SVC_I3C_QUIRK_FALSE_SLVSTART)) { > > > + /* > > > + * Re-read MSTATUS to obtain the latest state and avoid > > > + * missing an IBI that arrives after MSTATUS is latched > > > + * but before SLVSTART is cleared. > > > + */ > > > + active = readl(master->regs + SVC_I3C_MSTATUS); > > > + > > > + /* Ignore the false event */ > > > + if (!SVC_I3C_MSTATUS_STATE_SLVREQ(active)) > > > + return IRQ_HANDLED; > > > + } > > > > > > /* > > > * The SDA line remains low until the request is processed. > > > -- > > > 2.34.1 > > >