From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E70ACC433EF for ; Mon, 27 Dec 2021 07:49:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235513AbhL0Ht1 (ORCPT ); Mon, 27 Dec 2021 02:49:27 -0500 Received: from mail-eopbgr40082.outbound.protection.outlook.com ([40.107.4.82]:37505 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235495AbhL0HtV (ORCPT ); Mon, 27 Dec 2021 02:49:21 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vt0fOPFW42nUTM7MvIWlZBu/WColTbIKpFdSEl87KBW6gywKG4ft5WpiW35ZP3ivymM3H44dgsvfutGcykT2qzDI5gCj+9+4PCqf+MyPftZTK9qF+CnyHUDimRUwR0cQXd3sR5WjtB76n8Yb1lU3kJUv2oYyUq16e6U+TGDX6YvFAVpO2L3UxuAiHyA6QSoe5XPM30Yhay7V+59F3y8NI5lzH4JHDrpMopaoJvvu5QXMLBAiVbaXPIS0DSxMbGMpkZk/9E7P74QmIm6T65lpUdAU2rrsFLsr7/6y6/oBGrniswEWeUulQ2f6icSrEfsBUWxVHpXv/BxWIz5Zrb7hFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=J85mFZmjgJNx2kYN80ps6fCJtFjo40Mi9coCpNaNvLo=; b=PUfClvaZLw+oOVkK/+YTzTP+wOwFXm8reZCrqE/+WXDVLfwH6oOr5SH5q9f8f+q3hSN3m5FOmZMVQiwFB5+Ky0lhw7VYpBxoYSSLEvVY/4qFIpfQ9uN71GhNjh3U/N3aF+26Qo8f80+NRPP98bYcFxPHgnZVGdOGY5fhN9jHszfgLtM5xB/AzCRNF3YZbgb1cxeDz4E241CyeZv7UY+px4pRZAAr+cZvtGT2oz2FzzxBe7MUc/Gvr+5I+avZL5/IIe6jJhUakOL0yltz8uCJZjwRAoy9V8/7AxeicDySqYpZatncwuJX26JfWCgZ54epeGCGnPf1edih86iNOk37WA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J85mFZmjgJNx2kYN80ps6fCJtFjo40Mi9coCpNaNvLo=; b=srUVKOu32PmSgrRqlgUIzKY/3WYeGnGALExZISLJTiMYLZ9rKAceK9tB6IETOI21pF4yWlonTklpJwFSWMSaH0b4Uk/+sYHYSAS9rwjM9aBf9MXX8xvJBCAG4sRB/gDgoDgb2S/3Aby5fWiuGvsVelA8+4CCSMU5VPIzoxRkacg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:19 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:19 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 1/8] i3c: master: svc: move module reset behind clk enable Date: Mon, 27 Dec 2021 15:45:22 +0800 Message-Id: <20211227074529.1660398-2-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fa863be0-a184-47e4-bc24-08d9c90d6384 X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:813; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LijEE+OOirQRD2GGp01r+zMF3SQAwRaQEu7i6XN0p1uPhKlGD1QfZ0gHA41QFVMo0VAkym1KmuwVPUMiBrTEXwh5QWg4rT7egY1HpdMIcEOYAcmgDijKDN6fyHq7baGBmC8NuNpUGPVzgRJNN+vCbdLV1ujFQPlJxraEnIgaOhuiXRz2Y2RxHLIUphNkV1LRNrglqk8mCbcpTFh7XW7E6Oj7zmGVoSvjURV65wFOKwxwCx0wI9jglND0ME2asFVEdWybThCuztj1JesyNntGawceLlyFbQeRA78ik+CxDBljVzfq3cP9QnmqVlAGgkR/86Qe1ZA3Lm76XXYaaHBGB+OBtAJh5Y74VS2ncswconenb+AYJMT6jtsJW1DQITEBl93BPKUp/y37J5LksRufBzlZmdBeYTxzH/KqOVFTSfaRMzWYoWvFUyVb1okpplz/i6+5iYuVWtoZmu/7AdgItzGg1OuYMeshlLesGhcNjgTDnWMIUNGB9zxboxuMa5d/UUWD1QjR6re5zbFynEd0RPuvxBaPcOeucwRyH/5k/g+JfUVCRYqPHs7+8iNxRGLKVSSwcRQGCYMkRFR8co7CdlZNRrd9tKjjAccc9i1whD0xueSG/0Aait82bJUH9gi0ggFRKRkK0gk8OR+hfHzwwVJr/W1fhbJKAz3DYNuzdG/9KeOL8kwCrMnvNs6VsJOT+qrb6iAMY5ZIX0Cj6y3Flw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(6666004)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?auG6ID/Fqy1rfcyGK3X4WSkQocpANdrF2ayyb9dFi22le1p1R2NYQTczJu34?= =?us-ascii?Q?ZI39F50gPYKTgcpJR+L2T8pgEKKfHLPjweI+uZoOK1u4WTlVfODtr3K//irU?= =?us-ascii?Q?DGy66ukCEr3C211s0eZ6lfep7HV4JTUkXfoyvB06/Iaz3vMK07pGp3LrtxNs?= =?us-ascii?Q?1qs8616kj5qy60rRe/viStA6DVH0qkM76q6SyZ30N3vfUkY+1W21uLpnk/Kg?= =?us-ascii?Q?f252enDRhbq119zQRR/rA5XR/5GaR6L7fPVrq4sF2Nvx/yAYtLH5k+QTUfMo?= =?us-ascii?Q?lLNy3eznKiGvNT/SM2qqxaOviKKzaeHc72r+4mJ4vaxvWCIHgf2JRldZUY3B?= =?us-ascii?Q?rSOERXIyvfvYTSWgVuqe6umPG9wJyPcXiEM2r4X9Im2QEn01g8SGpdfYUfx8?= =?us-ascii?Q?0qRyth68yfjepSPbddoS6gJYMTSXf1Kefz+CV3k8b/eLbxIE47BOO+JIGClz?= =?us-ascii?Q?kEt1aXhsnFfGeQN2zAeeKdCyUS1LuKeRzQRWbLW7ARjP7P1R5uKc1np8Bksm?= =?us-ascii?Q?xYQxUS2lZaBrnPXb5y1c7J1jB/5fQBz6gu9o7vvRQlSXfWZ6YbsCLpwHE48x?= =?us-ascii?Q?J82DNIanhXA22zKwn2+o0GKr4CVwZG0WVrahZJ3QhlVf2Pg/w5EueCg5bdzS?= =?us-ascii?Q?LlZ9PstB5YTPCNxhTKeALPN97gQ00j3p//G1bWMuLhoeB8dKGcAhGESgSGHp?= =?us-ascii?Q?woZL15w9l2ehyiok9EEDHGQ4ls+zHRsVFUfq2Na6+FzyE1Dg0f2LumFNiytw?= =?us-ascii?Q?EAp+KlqLDWP5v//j8R14U034TdScn6YyYZAGrMSWYAmJDfUYEkRdNnym0cNK?= =?us-ascii?Q?gCWSRvxl1fCJFcMZ05vRHMszBFwuBzufZvnJyy7drqlPM92cV8x0BvjyopUu?= =?us-ascii?Q?6Xx1Gc7dfH9U2k/MPxDj0lqAnJ4OQg2saVQDcqMg/lUly62vKufK3SIUB5Ne?= =?us-ascii?Q?Jbye8O7VCVFiTXupUhu4+NmR0cZm6XzLh2vI3S8xMh9fobawZPVLMto1qCbG?= =?us-ascii?Q?T67b+nk4zDEVvcuG6adYjzFheYzP9R8RfFcnTZABES3Hbv31UCxDoPy8eN7v?= =?us-ascii?Q?r8oCu44INTl0ubTG5cpENdgiF0XoQf3/6PttCWrpK/l+iDohBnDiJgBOGpU7?= =?us-ascii?Q?PyQmhUGPFUptrHFK5GSONWGXF9J0dk5S3hMFVMNlCg0byoLKYBgkPGgiWeA0?= =?us-ascii?Q?jgPj9vvL7VkHfe3JtpJ11AbZ0nCl/QYVHXRutKvKnhlL8n6Wje7AdcGtEkMu?= =?us-ascii?Q?mvcjwrQ9uWxsz1TcYsscrzRV1xrSaDEi1uIRGiwEurBwYvdOIRCZSDX5UCiZ?= =?us-ascii?Q?fgHhvwp/pN92Nl6OZ+X969GfF1yqVz2H1qlo4q8D1xW4GlHUoiAevYpAJxO9?= =?us-ascii?Q?D74hzSrnbb21n75erM750rs3lncPI+zGaJOAGLOtj8OHe5zMQCNQCCn3m/or?= =?us-ascii?Q?vq1z8IfSxEgaIasniyRqMUTArdVtm2SCBv7j4suphcFSclPRVH6Z1nYL98tE?= =?us-ascii?Q?GO7y9APqZ3aaogbLDkobwOeEWwQMDru8dZ5hqHfw031Xta8eNXz8aWcd2Yvk?= =?us-ascii?Q?d1uZIyoGvXMnZCdRNQ7u9Vpqo3q1lDJhzD33rB6EQUm3hP03l+pae8eNQZE1?= =?us-ascii?Q?VNpe2tgYB6idAQRtSNX9TaI=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa863be0-a184-47e4-bc24-08d9c90d6384 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:19.3855 (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: GLSZyK0ni5uax0u9SfS8DWB0lPMvKo3CA1p5SUAzsiD+TT8reCJS7rhGqwmwRT2ao9lfRe/M8RQxhXQjLICvIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Reset I3C module will R/W its regs, so enable its clocks first. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: No change. --- drivers/i3c/master/svc-i3c-master.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 879e5a64acaf..c25a372f6820 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -1381,8 +1381,6 @@ static int svc_i3c_master_probe(struct platform_devic= e *pdev) =20 master->dev =3D dev; =20 - svc_i3c_master_reset(master); - ret =3D clk_prepare_enable(master->pclk); if (ret) return ret; @@ -1419,6 +1417,8 @@ static int svc_i3c_master_probe(struct platform_devic= e *pdev) =20 platform_set_drvdata(pdev, master); =20 + svc_i3c_master_reset(master); + /* Register the master */ ret =3D i3c_master_register(&master->base, &pdev->dev, &svc_i3c_master_ops, false); --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC99FC433F5 for ; Mon, 27 Dec 2021 07:49:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235535AbhL0Ht3 (ORCPT ); Mon, 27 Dec 2021 02:49:29 -0500 Received: from mail-eopbgr80042.outbound.protection.outlook.com ([40.107.8.42]:28376 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235509AbhL0HtX (ORCPT ); Mon, 27 Dec 2021 02:49:23 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XC5WgogYSLAwBHn52bpLPF+l4os3YFO+H5ZXWCp+wtUImqfzuWXnrNAVvJaCK1LH14bNwq7cSCprLq9szXZ4lpRsvEj7rSTwOk5k8PrIe3K5VN/ov2P0w7aRD+siwMHORm63hA1JLX7hNz+EUqn+S65MjAASuHGaEklBY5+VPGoarboxup+0n1/XJMbvTK6LkFK6Zo1VDVXsOiCLjnsqB119qHecMR3N33JpLKtevYyHwkiiNyYs5a3/DDCAXpPt5p8a2Zf0P8oXmSe260i+h+Za/dFloMiYKPZRzImvZaiNhCc/RHJArnnTkmZw7WPaEoUPyadVBKSvVYPa8KjtgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xamtvSS69zF6+fXUNR9DB2PrXOBmOr10jWFtmiAmeHA=; b=VvorUfSnVQiynKBvAlEfA66vkCglIvjymviSLhMeBDUM71ppvHy6vg2hhPXH3nLWul0f4sRtXAWIP4j3jBMJJvu5idou/xapRIWqsgO5mhHbJINdE2FD/yHs0Cf/9OQ8spobhoi5Clk2gKATAreKnfxjVQMYL5aSrsZqh5D4lr5N6fx6xqiBuOCHNr3mqLb5At8SaaDCkhknQU20UyzKTJmRs/NZgub68qoc+H8ezPyhjl2Zz+GxoWkbXQs0IsLHmCeGlikVouWFDC9VRGR4o8Rwxzu3jqHgL2PAhmm/TasPJch382sm0I6vITccFxIOZt0oLxyYBUxi+A987h1mCg== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xamtvSS69zF6+fXUNR9DB2PrXOBmOr10jWFtmiAmeHA=; b=PeIGqA6Bs9Iu9tQHR5bulnndEdy08VzsE73WrIEXCfqho1++7DaPrbWtQSHW2Pz4iL4+B1E5oeCIJle8AFqknvtX5wcppbXxxImmWFJZgL8DU7aMCc8PV3QGkml/Ttt7ZXUDbJMsAxeg2yBf41iSPVRw7D1gVbE6vbSLWQ1WWnw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:21 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:21 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 2/8] i3c: master: svc: fix atomic issue Date: Mon, 27 Dec 2021 15:45:23 +0800 Message-Id: <20211227074529.1660398-3-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 06c1b2ca-85ac-4346-db96-08d9c90d64e4 X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OvCcJ2s2kXen0EkvNV5qAalkNmxzSLzbVkScJNCa/LyC775QAAEm3U/r3OSLP0zVp4T9I7e+bLs5vukQqMCVF/EcmVhxi1xKLdbhK/IGuP4iCkBspyV7/sOun7/TTQOoo95FTN7q2V9K9YMWcQJ0EyfEHT+4EOas0g7MYdRPzMvQ2GS7Bj5kErPrU+liZ6LtRj2I0ohrjXRjRLjPghUWSByREBM7xEubSdwnimS9M/vF5cuEuZgXzJnKXG7ET1qCEjYxhqS9QCclq6US0stTFX+RsvuzqBEHHCovJCae57eD2Qex7oBrySFk1+0Fft9ptxAu9rVx5hnQIPxnCQqF4p0gXAUCjZgcYok8PDXGEnlrpwu2ybkzOFtfYQ+iesXGf0cTZd1DSesfjC2ay6YffassjBm627hMH1pJCBYqk0aGBREJv9IOm1Zw2pyj2Go3/g1nqAgmkY0XouT/0OFBbA3iSRfvM8UZ5FFmGoHAd2Bek+gKYD+PDNuv+7HT+kpxlt3hRvwCfB8en/WYbNf5NyPyP1FH+b3R22VU1gtd4ZlnDqL2np/c53gKtBWIcAQyrj0hCG9y/S58mtVf7QaO91V7v3702iVPu5NIrFcvybUF/w4OmW5iIGk4qhk2lEF5xnjBJqJLndjVYJTzuBnOU2J/J5lV2Hhi8oExfwdN61EwmGe7yAs5YX1bRa+Fqj22WhZ67RKdSeVo9jtFC9L70Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?N80L6sboLEZwnPZcZYuy+UzEFwL7tdK7PAY/BlY1RddWfE4OE49oyByKGOPv?= =?us-ascii?Q?OS3iNQrZ4ghtkhEFmgX5ytry6AmtRe74qDAhfyod85smiEjYWi3MFN9vIOCV?= =?us-ascii?Q?DlwVc6/cLpQnseeRZcbEaFAyu4aFmkaswO3Ajsyjaw/cPM8Ti2wXH7BGd1us?= =?us-ascii?Q?lbq+YsAkMuiq54kHuMcwild/DrhM91Zyu/D/QyNBMWvqEhohohY2iS+5ZI2d?= =?us-ascii?Q?iwkz3zQEc6hPK6VcPF5DfwQ9nWVS2RnhcpVpAfsKfEdXnp4n7pRp7NCntXYN?= =?us-ascii?Q?0bKfRogxeUz4B5JV0VEpkVfGHA+4bsJxiGl48WKiro/X1L7tnqp1w5msDLUT?= =?us-ascii?Q?F5b74BxkFdPEKkkgWutPxIcaZAuzTFgdK5qRiJWkgGY8Teh5NhzvxEZ+no6s?= =?us-ascii?Q?aardz5CL258U03a0TJoQhMlxBCCXzCM/L/U9If0FBPZwAXpvXA/uymascOia?= =?us-ascii?Q?XhR9++hsnSc6Bl5/TvhBSMzJcrIuPwRrp9ptz2VVMrMjB+0pIb1A3Jq65b5e?= =?us-ascii?Q?lJHKsLC2w8MaXL04Zpn1ZmirZmiZMjPFZ+EEvxxIts5ni5K0PRYXkFmpTd9d?= =?us-ascii?Q?7byPLPOjjzBggMAZl9WohKc7sRjJZwpm+WBVdW39uQtj7ogBEw7YTktk8YVI?= =?us-ascii?Q?fv9EnMHcGCu89vz0XWUGNqxVyl0Qu2NAoXGbiUy0wNpInaF3icg9aOrNgjEN?= =?us-ascii?Q?SGhlk5tYkhXK0gT74rN//rvItCfu6LIAPlMwkGUjMPRGE9Aczx2wmfREKiJR?= =?us-ascii?Q?kZ6cfVhe+BC5UaNbpqbssX6+pQvWYsZm5b/6EWLL6XpiZ/9bDgGiA8kUrjej?= =?us-ascii?Q?a3w2dTAwpCxS2DJ/o60hSEZm2Ubzbp+w4FFKIgydq3SvoV9QaMBRd0YTiJfY?= =?us-ascii?Q?IlEDJPYas+t+XFjO5yxxESop3CjbNCeHqqy2xlpTlebi1Ajd7MJwtCAEqNzc?= =?us-ascii?Q?C4RU0KSeW4jo42SNfGWMLi1t3emR3zCrkGFC6TQFNfWcuATh5EDQU9zDKkTh?= =?us-ascii?Q?nFEweWRhqk4kYag8wJzx+XDSsUc1ZTepnkXhAvV4DvwtgKGkRaU2ArdNn/Py?= =?us-ascii?Q?deRSND8su3sxpCqrCsR1xuwlJCn9tzPfGd5npTPlkmQn7ycTkrH/1pQeNPvj?= =?us-ascii?Q?3/527LGPyqsO0poUlshkqWXN81hJuQTX2BoXzE6BWdymunLpiSaRBGhFJHYu?= =?us-ascii?Q?eqp0Q78YDYCL6uxz+N4GrGmUVeBkXKyNzDdJbWxu0lx8NdpcICJexKK0rdBP?= =?us-ascii?Q?TmZnCUV2ZbVNAJ6WIxbI7DpZpQJy1YsEua9YjXm+f4P+o/iFt0KyxjASQouW?= =?us-ascii?Q?/iImSsfqTvd8DDluc6e/wIp1INi0CE+Mi3mv4kpmKwTxhX6HWuVZ3lDnAy6R?= =?us-ascii?Q?bg1JMwD8pEVjGyq1AM95zxzcj2UrTqe/1X+o79lptxZqamGEt6oJnNSxC/OM?= =?us-ascii?Q?HdTOp2x+ox7NegTWhgQnGDAVsrPW+NJFwlpkH90ogy7VA0ZTYtPqV1ZpkCJ/?= =?us-ascii?Q?52rhx09k/KwogqUfXJ5bpBtgEqIOXmlp06JuCiGl7CAC1MewD4rnKR24rYSr?= =?us-ascii?Q?dZJ9YKc9CHTQ+P51Hm47PNumpQUfHVZbeW6U9Ym9TRstlrjpL/42j59DzrXP?= =?us-ascii?Q?R2BTfWaq7QumIFb+GumuEmc=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06c1b2ca-85ac-4346-db96-08d9c90d64e4 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:21.5852 (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: nLC/meowtXmj4R1Zt2bNPKD5imdHFP9mrKSa13e3satWfoaz9ghfnLSI/9f5ct8dSlzBX8KA2qXcF8ofzhnnKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" do_daa_locked() function is in a spin lock environment, use readl_poll_timeout_atomic() to replace the origin readl_poll_timeout(). Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: No change. --- drivers/i3c/master/svc-i3c-master.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index c25a372f6820..47c02a60cf62 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -656,8 +656,10 @@ static int svc_i3c_master_readb(struct svc_i3c_master = *master, u8 *dst, u32 reg; =20 for (i =3D 0; i < len; i++) { - ret =3D readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, - SVC_I3C_MSTATUS_RXPEND(reg), 0, 1000); + ret =3D readl_poll_timeout_atomic(master->regs + SVC_I3C_MSTATUS, + reg, + SVC_I3C_MSTATUS_RXPEND(reg), + 0, 1000); if (ret) return ret; =20 @@ -687,10 +689,11 @@ static int svc_i3c_master_do_daa_locked(struct svc_i3= c_master *master, * Either one slave will send its ID, or the assignment process * is done. */ - ret =3D readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, - SVC_I3C_MSTATUS_RXPEND(reg) | - SVC_I3C_MSTATUS_MCTRLDONE(reg), - 1, 1000); + ret =3D readl_poll_timeout_atomic(master->regs + SVC_I3C_MSTATUS, + reg, + SVC_I3C_MSTATUS_RXPEND(reg) | + SVC_I3C_MSTATUS_MCTRLDONE(reg), + 1, 1000); if (ret) return ret; =20 @@ -744,11 +747,12 @@ static int svc_i3c_master_do_daa_locked(struct svc_i3= c_master *master, } =20 /* Wait for the slave to be ready to receive its address */ - ret =3D readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, - SVC_I3C_MSTATUS_MCTRLDONE(reg) && - SVC_I3C_MSTATUS_STATE_DAA(reg) && - SVC_I3C_MSTATUS_BETWEEN(reg), - 0, 1000); + ret =3D readl_poll_timeout_atomic(master->regs + SVC_I3C_MSTATUS, + reg, + SVC_I3C_MSTATUS_MCTRLDONE(reg) && + SVC_I3C_MSTATUS_STATE_DAA(reg) && + SVC_I3C_MSTATUS_BETWEEN(reg), + 0, 1000); if (ret) return ret; =20 --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71DE4C433FE for ; Mon, 27 Dec 2021 07:49:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235558AbhL0Htc (ORCPT ); Mon, 27 Dec 2021 02:49:32 -0500 Received: from mail-eopbgr40076.outbound.protection.outlook.com ([40.107.4.76]:15936 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235519AbhL0Ht0 (ORCPT ); Mon, 27 Dec 2021 02:49:26 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uq0zS6cLwpi4/xMGu3LDEZOSjSLsl0N+QVLvbmVtKnKrd1tJYO+6NVMyX+M9T6aeZqiwBevVaM8LjexK9gbaNOT6c1gBjwgjMkHeQC+BmBspIyQZmMg7lpqqnYRUpr9cKOXbMhq428tDBavrDf/TBHMLOMeB1HhWemtkrDB5QeKHtl9klph9DwOngRDQRPk0zj1YRL+OB0DtAe6/RXbmq+AjPZ2HyXP28vCdrzqwnt6x+grpRIlIH3pw5LX99IH51NCLJ4FfjVwPTDScvAYdgMZXX/S4DRtPmyB3eCw66Sqgez1CGkxf6wwP5+0wR5wdUGJteqCuQQXCt+mgjz69lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=QUfVU8ZlO1kArJwBMnFVhJEZ/Nog01cUdi63xgM03LM=; b=cJLIumQPiMZKWyoH6wmywf+VsynxiQ6VAI1vdO6wka/y3OTygsVE9dM7cghwZ8GtRvihWi0nQYwZyTbjgN++NJjp5CK2UOotpoGQdgKvFVKrNzVPYkF5dSy1oMwH4++hwRic1P5bfCpUUF4JcYpE3Q85Ku+bwavWq1b624FOrnvGLGzBWA+by/hziQHweXHQplU/vTHIf+J5WBsYoKGFbbRpAO2NB1r81n2GuRDwze4XKR8rpGadNdr/r7qN1VfsxEFIaYiNCT1EyuGqszBCjuk7iw9UwcNJVjTssayryRQEAIB5cRbVNBfBgqzGLGfpwER8TsJND68fIafna/JyyA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QUfVU8ZlO1kArJwBMnFVhJEZ/Nog01cUdi63xgM03LM=; b=dOioepdAZYOyKXixHaUjPrpEgjC0dFnCTLdqi7cYuyVIUSun1iLHp0Sz86sVstv27dqA9JYW9IhgDOwevcoZ9BCStRFwf11jAXHoMdcG3MYdyoyNF3OIsoFj2Yve4kWR/Z9fOStQ6Dejp2SdYkygeJsWZfWJd6psBRZHaUUadwA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:23 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:23 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 3/8] i3c: master: svc: separate err, fifo and disable interrupt of reset function Date: Mon, 27 Dec 2021 15:45:24 +0800 Message-Id: <20211227074529.1660398-4-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0fad1f3-5cac-4420-fc1f-08d9c90d6632 X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1265; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bWhFOpj7Ho0j/VkGoXxJf18/P9F1WERRFY3qY3ShXvLV3DVFptNkOitzdXc2MkvAb9YTIPYQxeCgRchdUw/NMQAtYM3cvRiGxn8bhgHQS0qUZ1LjzYqB2mxV2Qq8/6bNfoy9HcL7hEu/MtPTCxdmZVsh19hK7vY3pXHJ2YmabXtYqyhaURNCJrhG0f5JCkMmzQhhFNPrL7NeA/5n7PfRoNvSWhaNxo9Q74nCQleOkfDxsvwPGsepNaQXdsgm6nNpMOXdi+5aUyFDVwU8eEH7VHXk9dEYFkO91AxWD8RYy7R4UF+8tACgULIymmKcuTCD0gfp2dkXep8KnBnzFxIf9rycBADM65Z8VruQ+WDYh1UzYcR9F8Pi2HhzL8dKs4TAE6r1xKAER6egnChWJbnpDQb6nOOKlQnURPEt+8oYY4Ijp5RPZCUWw2SdgGMBdxRAvgAbakd00HjD6FNKDR3ylJZdtmhUBXdX+ZxpYf7oaOPz68re4G+dmQJ+DmW2Qy8ICzOb/SDG7Wm6DrnrU6QHXJ0uPbe25YqchYPVfQ5otccvG2hWFKafUtZpONH8vR828QNyRy6OQF+wN0Vekj/4odHteCrwA0o4YsEBIp1q2RYPwkj9hK+FQicYQ6tSge+WmyHYRTVAzZOSwwbSXAXSOQlVWAALjBVcTeVKA0s8nBXRFJZAf1Xo2dR+KLDlD+ZxCyJWte0/uFIdlyhHRjT1Pg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BHqXBnXz9cEHZLDpohxSedwFWHP7cwZFm+6ETDeEnQPSFxjT94nhAc31b4eU?= =?us-ascii?Q?GFcju7919M8RS63+u2bHthXR9IZVkQQm58JbzpE8ZbDFilaTN43As3/Jo2Wk?= =?us-ascii?Q?n+XlyhkVR3odATOhTDoDHCMpspwUd2lIsmyFqiNnienRKhBSmcVj0Cyz4T3N?= =?us-ascii?Q?Xv/F5+y7EOLpVoP+0MEA8g/nhj+Jhou9XweXT6GmnOp3dRJqvKCsZCgIb5hL?= =?us-ascii?Q?6KBmkdyNuyZxrnNk2HImlmt/gyEUZp9wXdMANAUkvuEWhVUg+U9IvaACnZSZ?= =?us-ascii?Q?4Nn+EyniRoF7bpDGeXy8TZSaD1wsH16Z1NqebpEQFv5vQLiMGfdDdxWUgWKZ?= =?us-ascii?Q?Xlpg9CsUW+jaIl3gQ1BlPdOq+LI0xR/rWrk1zuPlB8yAYVPtakvo0l39aJo+?= =?us-ascii?Q?NDXdJYq4jrv51RIoqIr0Vhi2L6U+Sdo357oI8sJE4IlsVrd5PSA6HbcAdR28?= =?us-ascii?Q?LeQbHtg965APPMuTL4dDVZ95s49YTrsbKzhMainMwHMj77yCSxBpwKFdfNcl?= =?us-ascii?Q?VTj+QQ1DFf6T9z8uuzFjM8n/kjxeCQN+UAmt2aeIoOV/Cg24YFhnP1B8uQyX?= =?us-ascii?Q?PW346x3bGQKMv30B/70UR4iwmIiZ/YFDAqVOSSK9/f04n/4RgI7nZU2SF7jF?= =?us-ascii?Q?uzb6ph6MxnLlbthFACHd2JZUQ5fks4oQ90qrPJd7U1tpUaKmQJlR1SA6yhF7?= =?us-ascii?Q?yQhiPy8t7i5NeHcpcwhs2d9LxVzANaWsc8jYebLvaxGuD4JoZ4dMK68xFKS5?= =?us-ascii?Q?5mkwQtQnbaHtbPwTKx8ZysKsFxDRLYOrN98yIkKvq1Z63oEoOVGylOTzMpJB?= =?us-ascii?Q?OPgBlbzis7om/pJYMsMSnZPD+LiCRwDAUoxiyBWRy7y4rh2AdnjWURReioA5?= =?us-ascii?Q?qg1QiN/fAOfYxqHD+FWMi5Ime03zn4pm3ylNCHqqHt3uAdU0TgooPjQhj512?= =?us-ascii?Q?xP4V/vRzDJwaKSjKQBq8RtfQA8dIPmFaLJ0imFl8fLGlildgfBpomc1oA9Hi?= =?us-ascii?Q?i+GGemDzz9P/w6RPn8SewXhnMzKR1RCCH9Ez82iRbjoGMmagg4PP+R5ANIj8?= =?us-ascii?Q?NP7Ggz1J/K9vY3fVVnfz+GgqOU2xfWOm385UKkeRmDckBKBwGk/vtSbDcTWI?= =?us-ascii?Q?ECljoz9zKCHiU11YZ/E8hsp64iZr30qM2wRMyLff6BVT2crzHHv+DoHZZBCH?= =?us-ascii?Q?YbKLi2oIudeUmPZBICdoR1Dt+M7wxQnlBNB4IF0y0gkDwaX/LALH2eQXHrsy?= =?us-ascii?Q?DiFytxQrUqsjdzPdCwtmg1D3Pv3HwJtDfJgSBWsSAKBTrQNH7Dn2p6mXw223?= =?us-ascii?Q?h95WUp2+ctjf32c7fKrmqVj7HQFtPHm5Qs0fIi+yGlbMJUdFGmfgU+sPHoTH?= =?us-ascii?Q?4nnPQdVJ/9u5aXJnCsm9WRz4ji5Z4+zTQii3VXseJOmHQY17m9axoVL3JBHy?= =?us-ascii?Q?O9p9k8e2mJxe27Z4BGayOfDN5oCahTY7Ph4l3nohrP+dEs7k/Xvzd4WgZnEM?= =?us-ascii?Q?tLgEalXa0Tl1QLyyt1q6Ih5XTvQn5SzAf79KiTTozmGc3kezPAe7s+b4paZ4?= =?us-ascii?Q?GEO88cQExIz66DzHsgdSCn3TlHNOtt9GMpJYv7Iw2IgIRcgJsHu0yCEFuOE6?= =?us-ascii?Q?9R33DxxlOoSaH8FKgxSBDUs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0fad1f3-5cac-4420-fc1f-08d9c90d6632 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:23.7630 (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: X5s0oqZXuM1DJA9NOCowG5JyHBz7Z4/j6QjdFjW2GsW+lMNz+yPEuhveHSBtL+ex4g2j6ARXus/VqFlig/XMQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Sometimes only need to reset err and fifo regs, so split the origin reset function to three functions. Put them at the top of the file, to let more functions can call them. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: - add Miquel's reviewed tag --- drivers/i3c/master/svc-i3c-master.c | 59 +++++++++++++++++------------ 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 47c02a60cf62..4e69c691253d 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -236,6 +236,40 @@ static void svc_i3c_master_disable_interrupts(struct s= vc_i3c_master *master) writel(mask, master->regs + SVC_I3C_MINTCLR); } =20 +static void svc_i3c_master_clear_merrwarn(struct svc_i3c_master *master) +{ + /* Clear pending warnings */ + writel(readl(master->regs + SVC_I3C_MERRWARN), + master->regs + SVC_I3C_MERRWARN); +} + +static void svc_i3c_master_flush_fifo(struct svc_i3c_master *master) +{ + /* Flush FIFOs */ + writel(SVC_I3C_MDATACTRL_FLUSHTB | SVC_I3C_MDATACTRL_FLUSHRB, + master->regs + SVC_I3C_MDATACTRL); +} + +static void svc_i3c_master_reset_fifo_trigger(struct svc_i3c_master *maste= r) +{ + u32 reg; + + /* Set RX and TX tigger levels, flush FIFOs */ + reg =3D SVC_I3C_MDATACTRL_FLUSHTB | + SVC_I3C_MDATACTRL_FLUSHRB | + SVC_I3C_MDATACTRL_UNLOCK_TRIG | + SVC_I3C_MDATACTRL_TXTRIG_FIFO_NOT_FULL | + SVC_I3C_MDATACTRL_RXTRIG_FIFO_NOT_EMPTY; + writel(reg, master->regs + SVC_I3C_MDATACTRL); +} + +static void svc_i3c_master_reset(struct svc_i3c_master *master) +{ + svc_i3c_master_clear_merrwarn(master); + svc_i3c_master_reset_fifo_trigger(master); + svc_i3c_master_disable_interrupts(master); +} + static inline struct svc_i3c_master * to_svc_i3c_master(struct i3c_master_controller *master) { @@ -279,12 +313,6 @@ static void svc_i3c_master_emit_stop(struct svc_i3c_ma= ster *master) udelay(1); } =20 -static void svc_i3c_master_clear_merrwarn(struct svc_i3c_master *master) -{ - writel(readl(master->regs + SVC_I3C_MERRWARN), - master->regs + SVC_I3C_MERRWARN); -} - static int svc_i3c_master_handle_ibi(struct svc_i3c_master *master, struct i3c_dev_desc *dev) { @@ -1334,25 +1362,6 @@ static const struct i3c_master_controller_ops svc_i3= c_master_ops =3D { .disable_ibi =3D svc_i3c_master_disable_ibi, }; =20 -static void svc_i3c_master_reset(struct svc_i3c_master *master) -{ - u32 reg; - - /* Clear pending warnings */ - writel(readl(master->regs + SVC_I3C_MERRWARN), - master->regs + SVC_I3C_MERRWARN); - - /* Set RX and TX tigger levels, flush FIFOs */ - reg =3D SVC_I3C_MDATACTRL_FLUSHTB | - SVC_I3C_MDATACTRL_FLUSHRB | - SVC_I3C_MDATACTRL_UNLOCK_TRIG | - SVC_I3C_MDATACTRL_TXTRIG_FIFO_NOT_FULL | - SVC_I3C_MDATACTRL_RXTRIG_FIFO_NOT_EMPTY; - writel(reg, master->regs + SVC_I3C_MDATACTRL); - - svc_i3c_master_disable_interrupts(master); -} - static int svc_i3c_master_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C31A0C433EF for ; Mon, 27 Dec 2021 07:49:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235555AbhL0Htg (ORCPT ); Mon, 27 Dec 2021 02:49:36 -0500 Received: from mail-eopbgr40076.outbound.protection.outlook.com ([40.107.4.76]:15936 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235522AbhL0Ht1 (ORCPT ); Mon, 27 Dec 2021 02:49:27 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RRxt7GiKSRtB1Eysvd7fH4OMQb+SArS1208OTqgbKCTa6CHlWPD4O7Cn83Ka5Tkw6OIXE0mTv3mzE9t6XQyAVn3rAMxmFXds7dRQk2uu56IzrXvWlz7F6zsq3EMTEEXipXnSeI3Yh9oA3FpXebrF8AezGTlWznMF5KmSYSBQNb8375oR2TN8Bjvq98OQBpvpbCTT4UF3cV3Shr0fxgLFDsLfzkr5LvEspfYWVg/o/6R0FBNbngweiAJzneWWrWuvsZGBhtJEAQbJk4QMUKmjcoilpflt2UPsLjIYiCf6KtpqPnu94qFxWXim+riLDjbN31KvsDdVYephxOurrOpf2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xpZnMG1+kfLkBaskDPFF6YKFFgEPWAI0+c/nVqSd9EE=; b=Zgz69NjXPDU3Z8sjpSzCHldutm17r2yNUY0bCMlkUIUG32ztP8MgQ3Sn16Ig6cr97A1GN44zsPp0EdUZEW4EIvLAcQY7BF2nRR1uOGQL/+l5vCBOkHkWsfjvfpvvmpDZFctRkDT6gzXZ0eQr+KnhD7sAhJED5C3VlMQgCQ6ZgiexvRmZE9/lbbms+N882G5GOf+Rmsbal0Fyio7HxBTHdfkvUI93UAx6Q01FW9GpjbGgHxAy86MrrcgNMpFJ6iJGHg2eDkLL7qSp/fdJjz35Zlu3JHX0IT1Z6xo+ah03aouB6cf5JJOKEapMgAF0yLHzwDsHksLgC2rcLByb1u2X3Q== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xpZnMG1+kfLkBaskDPFF6YKFFgEPWAI0+c/nVqSd9EE=; b=R3atoN8nbymawLqIbJXHcYKLO9jNjZ+tEJbT3dcKs32LKKzWuLZZKWzrc/Zlfm1QNKRlFaQtG1ZZQ68Glf5KXC7T4jPq2Aw5Go+31bfHIjNLrWIFketjkjtPdXFlZItetH5FCO+DkfmFG4JeWopgwlT382S5os2PF783e6u1Ko8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:26 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:26 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 4/8] i3c: master: svc: add support for slave to stop returning data Date: Mon, 27 Dec 2021 15:45:25 +0800 Message-Id: <20211227074529.1660398-5-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4e0fb193-c588-4ef2-4843-08d9c90d677f X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i1XB1mArbp+hXugD3ix8zPuBzhm8/NZ6sPFbNdTr0tKKeSsFOwUIj0OQNFRiosYZMkFtvcUOdnmmeBUzIp+QJPRgyEifqW9uqhW81OLriW3XdmReVC/GGKy3Y8R98OczWMKqZCJTxAUfZWVFdnsHaK6h9FPGlsECQuedsM2muZS4Yg087ZbEYDRCBOw/c3Dgfk6szDfBD181vbA5vuxxOSsjQ1yix6UP4LWZbw8YjCXnMzuOGMrRjii+8Xk+z5e0mZ/MfRgzbB5FNa9JyiMzEQFGzQZQwuSkeXGF79jE0XPeBF7/MqaZFJwHNlmHIym1jUGaGKVh4z6JQQPGsUrvKhk/AhmMdJx9+FXShs24KGgjPv0jsSpwdjIzeM1DtpJqFEVM3LjTohPt+sOXVbAghO0e80HIVjpzYzQx3qu1gLXT/1j1pML6TQvd7+38BPGf6FjZ2jcZc+GffOHVzI3LUQC1cNAgPElenzD6ABH8vc/5bAPtKLiHOtfW1vJLPUKP0xmia1ijtGxwnPxHyvQPQ1fi/0JoFgS5Eqd5y/7lHZSFDwqNpj80NpGjX76TD+n7qC+TLce2qosb08r5AlXmN6eUHmvPeox2AfmVp4SRpyHqJMCNeKmSSyVq5jpQOPYTjr3kvAS6bHZZOnCoKlJvseOcX5W6Rg0+AiYUZeDJgcU073QVebn1soP3k112Z9DPXc3YP/ZU9QRI4hsGZ21YDQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?asDUq18vKbWQHDHg1UEZkdEXuSsa0dyF1B7QyL28Bpg2gzdp8tpeOS+18YU6?= =?us-ascii?Q?PahZJ3nrxePPn9lrREFYxdHeI0bR2zQrFl8rR3gyjkMGdw7dxlUjb9RVpxE3?= =?us-ascii?Q?Ekk8tyaPkw6OIDixnyGSNzDRpokBLRJJmb3sDU8CR1bcUTbKk9J3t63Z2hVl?= =?us-ascii?Q?ZO8NcozvJ+cWTyD8UcrCfYw28tKTOF+2v+gl17aW6ukmmiaTL8vtck7pUwZo?= =?us-ascii?Q?JUkDXWrKok3r6Ogi58hs9fovrRhGcj3B4w2bHbh3NycKGbP8NlezWyPwTFvG?= =?us-ascii?Q?+2MvZRSM7cQgaFcLOMVrnfL2Hbi/NLBYXhxxILnXOlf8Gqqmsr5ENvYuL5ch?= =?us-ascii?Q?gfNKd1gU4XQc9vgSgiUxd9kSn0ijvt8XIQKJSAF0McrogA/HM0cb2UdsvEDP?= =?us-ascii?Q?KjiVCb7ZUQP5MMMaF3WAYKwr/KfUUn4PtaO+oTNHQmuxeWXsnoFvIVxt0QJg?= =?us-ascii?Q?Tfm69/e6M9CUBh918KbWQbdq491nVIOoatvFB7sVtF26hkt/Mr3SiNn9tKtq?= =?us-ascii?Q?CYtfjW1pvylgnhMRdeXiDHyndu68QKDhVdpH1Vx3RyUMPR3ChyLQ8nfsUs0s?= =?us-ascii?Q?bwDR1LpZtJShLZFh/93tI7YU9sojgi1LrrsutsbU77O8GwL4Hfzid7RSxQaG?= =?us-ascii?Q?J5I9QARkUvUFnVpG1LjWXO71KS0m3bPQySRGIpffytKGsCT//Lyt2mD/vNxX?= =?us-ascii?Q?fewuDPLfni1TEhWXgGPgdPjH4Vi3UkMTI/iCBhnsgTfY2CYmOh0rqfSsEMug?= =?us-ascii?Q?XKc8w5mCgvNE/DL9Oujs+8xBa9ADiTb7uOIq1W4YnhRJGsA0e2LIiSciZ1Vx?= =?us-ascii?Q?+Dnd1mf4aNkPyw+yN8MbXhBd+Q8/BaeqjUlmyRGdFtbvEAFsONpoUP1YY0oQ?= =?us-ascii?Q?Yw77uWd7u9rU0qJt20niDA3fodfy53zWZKtx+JmRsYdpRn7EhvS6lOadhtRV?= =?us-ascii?Q?VtokrJXTxi6XEbW85eWKvpJGWA7sHKnAUmS8IdNtTEvq54QnibTaWiwVEXPi?= =?us-ascii?Q?8iv5lpt8hDJH/KTQWPwzjGCQDyOxW7u6ZiCSPTITb7tdZot8z5Vx0cHLsy/L?= =?us-ascii?Q?jag1RLGHNwBFt2uVQrruP2aXYk08SQNHGDKOFPyAnBuapZZ3FGwvili5eca7?= =?us-ascii?Q?egb8GPOvt2Z+qS89MhfK6QVRBT/PDzg5MORx9ivUmB6DDCZBLhtvNmXcctxo?= =?us-ascii?Q?OO+QOnFKc5zOkJ18F9UASd2dpZ3+CEKybVMr4Rr3tW1wxcVPHp3TXeZ2D1jw?= =?us-ascii?Q?0+mNqF36JMyqJQ5oRPqlnkCQAb0nzXpYvRl5VyAYU05j9XKhKvk6UpWS+u2D?= =?us-ascii?Q?+0jmbvA9m1dWQHGI+f/hndwDh4oe8XPJpSigcJXAHXaFFjNHD5tWQneNMmkD?= =?us-ascii?Q?yybqdBjruHY0pT1b3FDCeU1jA1oebC3eQNKbpKD9Hq+lsEGVPx+sB3Ey6pvG?= =?us-ascii?Q?mLD3TNQb5gr5I6AU/O1guKppgoIAFFEujLHQcKpBoAn0TCOcJmXBWz704eYo?= =?us-ascii?Q?EfZfmo5Tmgzu14SkbMHkuUlq4+8CUDqgR8thdWOksETy3wY+lFazRKFjRRsR?= =?us-ascii?Q?gtHBLs/aPoQxDH3oOvEh7LMX3vl3nHgAHVIJUsj6psPoUv1qbghni7AnfTgm?= =?us-ascii?Q?G6+6HH3YemJ1sfg/yAsim3c=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4e0fb193-c588-4ef2-4843-08d9c90d677f X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:25.9567 (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: UlO+nxzhefd2iqU+/1U1xQWg2WmO7gCQtPAnfwfgcQBNOXY63sbCL3DtkIpK0+I1uV2V7TCHPdb9nco27Pl2gg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When i3c controller reads data from slave device, slave device can stop returning data with an ACK after any byte. Add this support for svc i3c controller. Otherwise, it will timeout when the slave device ends the read operation early. Signed-off-by: Clark Wang Reviewed-by: Jun Li --- V5: - remove <%s> in logs - add some spaces - !SVC_I3C_MSTATUS_STATE(reg) -> SVC_I3C_MSTATUS_STATE_IDLE(reg) --- drivers/i3c/master/svc-i3c-master.c | 56 ++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 4e69c691253d..74b38772d692 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -896,27 +896,35 @@ static int svc_i3c_master_do_daa(struct i3c_master_co= ntroller *m) static int svc_i3c_master_read(struct svc_i3c_master *master, u8 *in, unsigned int len) { - int offset =3D 0, i, ret; - u32 mdctrl; + int offset =3D 0, i; + u32 mdctrl, mstatus; + bool completed =3D false; + unsigned int count; + unsigned long start =3D jiffies; =20 - while (offset < len) { - unsigned int count; + while (!completed) { + mstatus =3D readl(master->regs + SVC_I3C_MSTATUS); + if (SVC_I3C_MSTATUS_COMPLETE(mstatus) !=3D 0) + completed =3D true; =20 - ret =3D readl_poll_timeout(master->regs + SVC_I3C_MDATACTRL, - mdctrl, - !(mdctrl & SVC_I3C_MDATACTRL_RXEMPTY), - 0, 1000); - if (ret) - return ret; + if (time_after(jiffies, start + msecs_to_jiffies(1000))) { + dev_dbg(master->dev, "I3C read timeout\n"); + return -ETIMEDOUT; + } =20 + mdctrl =3D readl(master->regs + SVC_I3C_MDATACTRL); count =3D SVC_I3C_MDATACTRL_RXCOUNT(mdctrl); + if (offset + count > len) { + dev_err(master->dev, "I3C receive length too long!\n"); + return -EINVAL; + } for (i =3D 0; i < count; i++) in[offset + i] =3D readl(master->regs + SVC_I3C_MRDATAB); =20 offset +=3D count; } =20 - return 0; + return offset; } =20 static int svc_i3c_master_write(struct svc_i3c_master *master, @@ -949,7 +957,7 @@ static int svc_i3c_master_write(struct svc_i3c_master *= master, static int svc_i3c_master_xfer(struct svc_i3c_master *master, bool rnw, unsigned int xfer_type, u8 addr, u8 *in, const u8 *out, unsigned int xfer_len, - unsigned int read_len, bool continued) + unsigned int *read_len, bool continued) { u32 reg; int ret; @@ -959,7 +967,7 @@ static int svc_i3c_master_xfer(struct svc_i3c_master *m= aster, SVC_I3C_MCTRL_IBIRESP_NACK | SVC_I3C_MCTRL_DIR(rnw) | SVC_I3C_MCTRL_ADDR(addr) | - SVC_I3C_MCTRL_RDTERM(read_len), + SVC_I3C_MCTRL_RDTERM(*read_len), master->regs + SVC_I3C_MCTRL); =20 ret =3D readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, @@ -971,17 +979,27 @@ static int svc_i3c_master_xfer(struct svc_i3c_master = *master, ret =3D svc_i3c_master_read(master, in, xfer_len); else ret =3D svc_i3c_master_write(master, out, xfer_len); - if (ret) + if (ret < 0) goto emit_stop; =20 + if (rnw) + *read_len =3D ret; + ret =3D readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, SVC_I3C_MSTATUS_COMPLETE(reg), 0, 1000); if (ret) goto emit_stop; =20 - if (!continued) + writel(SVC_I3C_MINT_COMPLETE, master->regs + SVC_I3C_MSTATUS); + + if (!continued) { svc_i3c_master_emit_stop(master); =20 + /* Wait idle if stop is sent. */ + readl_poll_timeout(master->regs + SVC_I3C_MSTATUS, reg, + SVC_I3C_MSTATUS_STATE_IDLE(reg), 0, 1000); + } + return 0; =20 emit_stop: @@ -1039,12 +1057,15 @@ static void svc_i3c_master_start_xfer_locked(struct= svc_i3c_master *master) if (!xfer) return; =20 + svc_i3c_master_clear_merrwarn(master); + svc_i3c_master_flush_fifo(master); + for (i =3D 0; i < xfer->ncmds; i++) { struct svc_i3c_cmd *cmd =3D &xfer->cmds[i]; =20 ret =3D svc_i3c_master_xfer(master, cmd->rnw, xfer->type, cmd->addr, cmd->in, cmd->out, - cmd->len, cmd->read_len, + cmd->len, &cmd->read_len, cmd->continued); if (ret) break; @@ -1173,6 +1194,9 @@ static int svc_i3c_master_send_direct_ccc_cmd(struct = svc_i3c_master *master, if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) svc_i3c_master_dequeue_xfer(master, xfer); =20 + if (cmd->read_len !=3D xfer_len) + ccc->dests[0].payload.len =3D cmd->read_len; + ret =3D xfer->ret; svc_i3c_master_free_xfer(xfer); =20 --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7861CC433F5 for ; Mon, 27 Dec 2021 07:49:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235559AbhL0Hti (ORCPT ); Mon, 27 Dec 2021 02:49:38 -0500 Received: from mail-eopbgr40076.outbound.protection.outlook.com ([40.107.4.76]:15936 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235549AbhL0Htb (ORCPT ); Mon, 27 Dec 2021 02:49:31 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N1AcN4SBHgQ1yHO3gfrImedY3/UJLP8wDGC5hI5n1QoMHyjXZMjTA2PzvUCLnpr4MtsOsw7Qo55+rtNfhi5XU7nSA0ONsbrWfwiw9gHlVL9igNKQEobqqeCQlEnBzghnOMlgX0uY1Pa0h/IVkonfvx0xXWe0Sdjbzrf6DU0L+mxM8x3tfz3WzAujqmIAO6zvvQr9P0jaSm/M/INq4hHWK8swtNTkVIZjRGzdq5klncrb1g31/u8yZHafygVSOt2XoX5agyyzjH5KMgX4T838Kb6kQR6lkBUNEYjOCj8Yb5UOsXxEI2yx/OtIhzoaUIl39MX4tP9AdfGKLYtOADUdkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xrla7n5i7KUZGtYAELn/2sYg1nmTTmWaoDIY8GDqCE8=; b=EjRk1qAsOpFSzDTvv3x58gfkRc4UXetvjxSG7chLVOxj98uC1/+t92lD6hvuJbm/fZ7mS6sOaYbyedzdoRf7vbp6qpwCFt+UMNXE3sXg3lYjdWTMqnbm6ZBzCIqtM26z+qrYpEr6R07+LRSAOKPMsDRqWop725IMgzlwM8C/+a7htY0DDYn3/nymbdX9qzE2JIfkz9RuiIQtB1HNF4zSu/Bo3D3QxpdTobbDvLUUVQ3cMR4Q/tmfNr9bCbeqT4qV4UCwKFcfmInfqAd0rsZ76VTgZdBC99wjGYPfNQLCMVChvBDfhAksuOheXFNoVuKUjxp1trn06utIuTfuNhJP2w== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xrla7n5i7KUZGtYAELn/2sYg1nmTTmWaoDIY8GDqCE8=; b=iv4jIGqKMrNPhmtnmaFf8LMEGSAgdtcgZStmLF9OGzOVBf3zmAMo/9uU2kUjjaXCFpy0AjOTs07/zkWWHgQZ0c5UWfxovFx63GJqOe8QCqDaranvyxtswaZAHsoOjpj2yi1w31/pDp8COR1fjGovMpqCrWvUbqOBhpgBeu2oU7M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:28 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:28 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 5/8] i3c: master: svc: set ODSTOP to let I2C device see the STOP signal Date: Mon, 27 Dec 2021 15:45:26 +0800 Message-Id: <20211227074529.1660398-6-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5dc0b8b0-7324-41e9-7a2f-08d9c90d68ce X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1148; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gs3gq53PwEeziYfkPTHDySK8cESJ51iqg82/N5FFJhDnbdzfDPUiRDjsostjrjvKrWsY553sIr19KAQ8u8QkfclvGnspmGLGCWg/hf7vMrjNNXcD4YZA/b7onzIVVRmPA6QQaW4BjxVX/EQYyD4oJYAIlimU2F40sGOKQu8/d2ZuhoNiWeVIQ/puBgcvoY/UbhtH/a5GJeMnexLSLu3tdpp2cyOlZS3Clq3hiSSWe1+Olo5a7Wt2vvSoV7R8IjUlkgNi2W9/tYn3dwahiaAmpSjoMfIcGbjFXp2GnWHlBORsoCxSsujPd2GGNtwzU5Dsi4xUfqWoU0algCu/KfCZKzf6kzqYun9MHxO6gNQozj7W+wc+m28PoznM4FQ8Ts+xftTmp+zdla7/N48X5Nu/euHikyuzhRarYOpMH5bh4Kl7DPYtapEyN+AFnMzySY5/x8ri4qxINPxGK4O+Q8uOBOZpv57LhtbsV4pdHG/6eDGMrFRpDawiAPdiVZjET9g3VC6eThoVi8vVGHQ2q2swdsTVg6j1K/73LP59bH5kGPsxxhgpl+Hy3KHZc4Z75SWD8XAUN7EraWfKl6R4EY/eu6+uapFahopQb0Or3in8ZuUmnW6xHQLd8ga9S4pa9wrRq5JnCxdtiqwhSiRCa2+klzxtKG/YRCLOFywXiOAUtnLwfeZTN3bTpTKpohZGWj1FBYmu8RffZs7ptDI2yZoI6w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TWZjbsSdNoNNh3ZMEJCLv7bHfoFOyqZPuLRBPtU0LUb1iyqUqy5bfoKR3Chz?= =?us-ascii?Q?JCiFbDfNk1EhF+G99ujwm3PYIZgI52Gx4gwvRqK+IhQwozgS9KBTChL2MtEv?= =?us-ascii?Q?bTCOV+zSicGw92+C0SBXI6L5MW98e/Dc9rIEs2X7IgTbSpxKzXAwG1ur/HdV?= =?us-ascii?Q?ZLo7TaWUyxA1ISqrLG0aTTWkztIha1/GEO/k0jpc/gLtU6F4mya62366W+gs?= =?us-ascii?Q?j/F6hJnngAMw7SpVFaFyahlsmfYIo+eHCGzCD9p6tYjFlDi0JA0SwHvgy12K?= =?us-ascii?Q?coIqzhDe5ZLEuNpmfgcC5kTcUljixpX+2KXUhC7AOtWXnxkufvt9c3EVpG8P?= =?us-ascii?Q?dwWdegtbLFFHWbqu0xl5av/DP4Q1EQO91QCxkp0bhLUvYPkCJiLG3nuT0agV?= =?us-ascii?Q?/L7gl/1BCEwRtDLJx9/iVhHiIBN3jHAxdDdqJxWY11ipnl57x8Ny7VjN6TGM?= =?us-ascii?Q?9z+lD0wjO36BpdpubNd3ELy2zhJ26vjMnO4bufzf54tn53NOogCwpvTG9VMl?= =?us-ascii?Q?9kz2jwY2BGRSNS7uNyhXuFk0yURb55cyeOmdQsGf4LlJ9A/vz2eRPwhg9FsH?= =?us-ascii?Q?68l4u9eNEVTeyfVXzeQ/JepIZZxrfPJU1NpJH7t00e4/8rM5wjED0UtwH6Uq?= =?us-ascii?Q?rm1/6iUFqboRgL2ykRivHJGZ/cg67CAI0eOS7QxPqThoNv/b6qI6lPmK0fNG?= =?us-ascii?Q?/+C7jcK4SBOSKD6YdW2tZiVF2BlRl2wHbYzkqNqygn0DPcdaxIDHFs8beSEr?= =?us-ascii?Q?24AumaNFH0rRvveL6QLtjA3BG18aGfJY1PyjTsGSSQqG1ME01ZJQ1QCnmZmp?= =?us-ascii?Q?3EpqcMg4BJY4iWfZqesPlf5WeZI4fEsrN5nh0wSEhabI4HITsH+0nlrcciVz?= =?us-ascii?Q?QNlkZKKGo+faRnVue9tGJ4M60IDQcfmhnuk1uW4MuyuyR8l/N5Oax5XMLs4d?= =?us-ascii?Q?bcnpNmbxUqo1y+OYBLwuXt3wj86yJNEI5Z4DUzJaGSVeg5hk82bTEED3iTpa?= =?us-ascii?Q?7CS9DnaTRNlWr5nf+zI9pt3JVzuU5bxX/Us8YWJGsl3fI9QKhrSauLt206qZ?= =?us-ascii?Q?1On28qNz5B3G7nB4yadm83axmiEJw7Nbt5ICSl4klFfQnmP+pg4ZHAwYlYB6?= =?us-ascii?Q?ADoVoFk2Qmj+gPsn8oeR1Vhcxk4gbBgX9Rapdybt/J2XYsDHl7838mgqTXUm?= =?us-ascii?Q?UVq0ccQkEJlI2ec94v/yAgop2uJBITNxdVpL59vyWij2KG81v/5jWT/e2rL5?= =?us-ascii?Q?jDieP1o3XICtU6p5n1F44xG9AJxeWJCTpBKMGEBLTqYCRE3ReO4tLNIEmJt5?= =?us-ascii?Q?6t4aiDZxxd9EOw6JC2hvw3b/rOVbK8m/IGTSnyx8KFSfEtG50Meavq/m7rPi?= =?us-ascii?Q?ho5EKRXhlToXnWBmZFpMD3fANXjAS8/GS0fwBq78soMknYWRv8uHmeZcST8T?= =?us-ascii?Q?u2vw8WwuN/y21bgaaLApXZEWZCsfOwftajl1dCn2jCDMlvpwZhFnr7qvl9WZ?= =?us-ascii?Q?uAzxsaeIQavyTkf2geMoRveRaU0GRIHOr4Bva7InHPBpnAJL33jRotwwrDtS?= =?us-ascii?Q?atnrtONQ140PS0QiAZktYPQv+1A/vTdH0g8wTs6BQVrV1CCpCs/nFKX+MQax?= =?us-ascii?Q?tqMQXxPp5TqfrsHvijGe9tQ=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dc0b8b0-7324-41e9-7a2f-08d9c90d68ce X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:28.1954 (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: eKPIsNZ2WwD06w5veGyDr7LQoqqOv787vjAC4EoOIH9MBzdDtVrl/bVqEe6PBYBzJ9ck3M/78nbISXy/juJrsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" If using I2C/I3C mixed mode, need to set ODSTOP. Otherwise, the I2C devices cannot see the stop signal. It may cause message sending errors. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: No change. --- drivers/i3c/master/svc-i3c-master.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 74b38772d692..bc9c7fd69cbe 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -477,7 +477,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) struct i3c_device_info info =3D {}; unsigned long fclk_rate, fclk_period_ns; unsigned int high_period_ns, od_low_period_ns; - u32 ppbaud, pplow, odhpp, odbaud, i2cbaud, reg; + u32 ppbaud, pplow, odhpp, odbaud, odstop, i2cbaud, reg; int ret; =20 /* Timings derivation */ @@ -507,6 +507,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) switch (bus->mode) { case I3C_BUS_MODE_PURE: i2cbaud =3D 0; + odstop =3D 0; break; case I3C_BUS_MODE_MIXED_FAST: case I3C_BUS_MODE_MIXED_LIMITED: @@ -515,6 +516,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) * between the high and low period does not really matter. */ i2cbaud =3D DIV_ROUND_UP(1000, od_low_period_ns) - 2; + odstop =3D 1; break; case I3C_BUS_MODE_MIXED_SLOW: /* @@ -522,6 +524,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) * constraints as the FM+ mode. */ i2cbaud =3D DIV_ROUND_UP(2500, od_low_period_ns) - 2; + odstop =3D 1; break; default: return -EINVAL; @@ -530,7 +533,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) reg =3D SVC_I3C_MCONFIG_MASTER_EN | SVC_I3C_MCONFIG_DISTO(0) | SVC_I3C_MCONFIG_HKEEP(0) | - SVC_I3C_MCONFIG_ODSTOP(0) | + SVC_I3C_MCONFIG_ODSTOP(odstop) | SVC_I3C_MCONFIG_PPBAUD(ppbaud) | SVC_I3C_MCONFIG_PPLOW(pplow) | SVC_I3C_MCONFIG_ODBAUD(odbaud) | --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A673C433F5 for ; Mon, 27 Dec 2021 07:49:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235529AbhL0Htk (ORCPT ); Mon, 27 Dec 2021 02:49:40 -0500 Received: from mail-eopbgr40076.outbound.protection.outlook.com ([40.107.4.76]:15936 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235578AbhL0Htg (ORCPT ); Mon, 27 Dec 2021 02:49:36 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IkiZOyKhoDhtfgNpSZraw1HMzo7yrWMf5Wi2AdTEX1dDeM2I5io8pF2ZcZP9rM+0aJAXtOja+1HB7Tf8GR8Azv6bgZRYGaLOvC83egTSsNbw6noT/mykjKXk39UPg8fm6rFCPabsUwWaX4PJx+Q+RGljBWgmyFZGzWKySNQXm4Zj7M0Jx5xq5FPkaLuKUX2+gZEHV56E7wRHVTzVu0YCmWx92Tz707SfHPO9B5mE1YoZMsfPKv+UIFB3odDQHLkwwxEoEhQ0qxopWyogw20+hwHVih1SaWG+IjKM/2u9kLfcyTK3QWhbtDwJdN7bQOrf41Pnis1K/YCZKb5y3uK7Zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=A7aOp7JfdPBLB0PjrEzdvSJ9jjA8JHcjYlRhhf1GKyM=; b=YA9R3Gj0yjLtpDeud6X+BU1rGursQaVqiNr44mV2XOdhHM9GKzhpcpQHK59/AVOZw2q6gChq1t1tfC6qKSjeGQEoFNtyDamE4pB47H9NyFf5rTRJJBJtg4yqqRQtCYMvinic6MCD+ZmWtriRzZ656UsnXxAyw985O7kDoLfocffZVJFMrHLwtdhBCzXhkBbW5GrUrh43ApFX511nv01hBqhdSjOKZgVNsTI+J+grBBm3KgvvdYwDy9T3FOjrea7r47vrSWWzqsmkHH30ffWhLQpjKtl0tSzI8kH+6hQgCYDBQkjghpLUe64g3No5+33r/lN8XJUFtVfv022Pstmzxg== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A7aOp7JfdPBLB0PjrEzdvSJ9jjA8JHcjYlRhhf1GKyM=; b=rly9VN4dEbtEraumLWITrNdu0Y/0omdAUX5g3d71IffZPIM9QqX2y012rJwEY4caJx40IM38zJTL3SHVuhuz1Pqv2LGcX1OV17RgvKICrEwQYfhi0GgZQA8yGq7l4gwAJC2UZSoTxUI5O2wBsMoOLxIf7Vy7dzcvFUHk8fx4JXM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:30 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:30 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 6/8] i3c: master: svc: add runtime pm support Date: Mon, 27 Dec 2021 15:45:27 +0800 Message-Id: <20211227074529.1660398-7-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 10795e74-4cea-4728-9466-08d9c90d6a39 X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:324; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fxvpLZPi6H4mkqjG3oI2BNu3SOMUh9BXS9HDTS1vkhUC5Kes0Q4Ztgk6Jhbph0+PzLH7YcARRNqdNiAvXlpd0NUbxqXzzdgwcW9MIsabb1eIkwDNUQUzItRV3gIS7xWrObagRjZaYDLXn2SLurRZyaFYwH7lCdmaWuJvr++G1lR9btY/DmIaq7YHlZ4wk6Ko4jgWBY2fJrxLu4jY1dBTgiHY4hq+HZtu1Qws5TK6ZCWK16HeJ8Ov7IdCFUnyzNJiXUOyIfzpwQ/HWzNtB3yPm2vacrsWo4Q776Q8tRczqbW6JJSIQxg1U9VWdXwolKMbpfSy0LN4vKvkTZffq3deLnVPHHBRkPL8rd4pHXjbCo/CVuvKX+SiMAs9ZIVJzt3bJwUZLL5rVV+kPuQpbAwWvMMUlxZU+G+w2zCcI1o2yvIYRf9d8irl99/D1BvTwn/ihasZUbqNQGDLFNHmPuXCl6gNMFu+Qx4tV9w2HVGOrP21MaPm0Ec1sCuLcxQfrzniJPPeqBON8X6PMEVQjC/SIdKy7CupENSHCmnTfUVbRZJxqzxqcU3/nR73oJuLdFFu2SWtWxM1HAu+XJLW7/xZmfmNeHZ9Hoz5phI2p7vxWrLWWMHqqtZkdJ+ftE2Nvji1XarM06cxftmNoY83BfcTeuzuoNRAEyhhqMgzXyUOL3SnJl9Dx9lPlL44cS2IUQw1k/Uk8t3j/nIx9x4dZlYTQg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(83380400001)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(6666004)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XjE0p+nRp0EGzzRSThYll5pYqVZZBv9omd/i7ocvXudptKiJQDCvEDlK93Tb?= =?us-ascii?Q?A4F90FowVl5WcBAWx2GxDLC60RG+vhSOwR6tiRDd311W57PpVfSzTKkhhvYG?= =?us-ascii?Q?DFBMnQYKRmtSjUeG+bx11N0q2agQI8WXUwiMLFgXLAvJWXzyVm6UCdo5r1R/?= =?us-ascii?Q?Qllen53vQ887X7uYW4ukFxeC+Jrw/tmmuwwg7EMKoVBUQMrWKqaBpEkeVU+N?= =?us-ascii?Q?cLn9kkDuD7FS+5UjvqU/I72d9acfUy/d1NhHL80OuoTe06dE8rM7Us9KWN7Y?= =?us-ascii?Q?qXuC7QIhqmXSc3FiRG10GiuksjwgZzNUi8ss0g0MD4Gy4wHT2I4MYhVXAaRq?= =?us-ascii?Q?m+AvMNMVj/y/ZWxuLP/snbkllx/HrgtKhk/tOE1/jxqTfTWZCUibNPRBKUgM?= =?us-ascii?Q?hic/CI+AlUPSI4HnRLjPK+p9fXFyHgPCqVAq5spgWDTCV7NwrBL1OgbAVNTH?= =?us-ascii?Q?TCc4khmNXiKZA+Ms+A+yDm4J9xaXl7GFcB6GUpROV3AgmDLRXfQYvbNlzD77?= =?us-ascii?Q?kmcuhPqtEsa0I11/X1j8U9JZp6tXmDIJXHmiqYpPy/7F8m7ifVpP+vhrgiwh?= =?us-ascii?Q?H/b70kDRRP/AXchx98WIuDcMc6JtekMWwl+nTJQ1LvndGRMN233mD+zEIY8K?= =?us-ascii?Q?YJjWRGqDtdcaxBGSZ0iPn/VzVaHt/pgDQj2PcBeea4Rl5ghKyHP2qEQBJK5a?= =?us-ascii?Q?rNsUS1nZoEceKqqc1hSN7TLlWzR0xIXOMHUXh3BxhGRYXLQJZ1WG0dgaKP+j?= =?us-ascii?Q?Boovh923PleqbTihdSi9zsgpBSmOaY1Nr8dSd9I6HRQeeKp6HVT32eRfClyQ?= =?us-ascii?Q?XPX9/0D4huxTFjI6+5+5tIhJHhXqCjR1yPtVZDKDs0mG1FzTXf38U1u+549Q?= =?us-ascii?Q?78zC6MLQh5YhY9ms39PxL72U/iQRbp2jEDD8JLP5+JTZC0e2pA79VTxhhwTT?= =?us-ascii?Q?+uE00deet1sgq8gTjYnWQgfTww0TuuzEDTv8f679XV+43FAiEhUCUzpO/wRo?= =?us-ascii?Q?jC6PMTr9RK9g8Qgww2mu4cuQlrU9p7PLNrN/Q8qBDDvVXheUpQMtCAAtWgip?= =?us-ascii?Q?o4cfvyOyrIJDniA61+0Qb0NmaO8MV0JDyyQXSU3U/G2u17rTRRprDvxd1tM+?= =?us-ascii?Q?K93L/aDslYL6VLwz6wxmpG9wZVLOE5lsjM6EbT4HifRIyJKb+4WDUV9tL+YS?= =?us-ascii?Q?92UVFjjF5/XrC+rrKrwFsyonPX+/5I3rq2gHbznxNAXfgalm6d6EkkBzbaHd?= =?us-ascii?Q?AocwwdCAyu2zXyAHHe9qSfMYIc3f/Fxyg+0AEAdVNB/Lpj+oqoxpnNHxiRM6?= =?us-ascii?Q?hKGTDka1Npi1L9P521ZRscp/u0BwsxjUkd1R88TaFEy2mzrWO8wpGXLm4dVj?= =?us-ascii?Q?29tWtZUyTdFcoCrY2M2XI9xvHD9VjlueW7jYjHp2JWbj1s9VTadN+Cd2W4p/?= =?us-ascii?Q?w6faGkD5QNwVjioXgudEtX25IFd/5L79vV4xRRA1UEZKfyHExmLUwC1oDlO1?= =?us-ascii?Q?F4rQoKamhh/5tUeTVOs3T1dwnZrcH1Ovyag7Y4CmojcPH26ivmTk2nLGYBLf?= =?us-ascii?Q?0PNtt37x4VplY4sW06zwHAwRzYqUUt64oauqFcA7FuHiUf9ze8F1K4YF/DaS?= =?us-ascii?Q?MewUn6LOi7xNhaIv6Ztl+nY=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10795e74-4cea-4728-9466-08d9c90d6a39 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:30.6880 (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: /Y99YYUsP/fDiwAJnSBZaUKyeITelRTAdg5bTZwO6bRi57ZcnrCJBZYWiIf7MG6kVgkF1HYA432Zy6MbCtOYyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add runtime pm support to dynamically manage the clock. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: - create svc_i3c_master_prepare_clks() and svc_i3c_master_unprepare_clks()=20 - add Miquel's reviewed tag --- drivers/i3c/master/svc-i3c-master.c | 196 ++++++++++++++++++++++------ 1 file changed, 156 insertions(+), 40 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index bc9c7fd69cbe..884f5349fb76 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -17,7 +17,9 @@ #include #include #include +#include #include +#include =20 /* Master Mode Registers */ #define SVC_I3C_MCONFIG 0x000 @@ -119,6 +121,7 @@ #define SVC_MDYNADDR_ADDR(x) FIELD_PREP(GENMASK(7, 1), (x)) =20 #define SVC_I3C_MAX_DEVS 32 +#define SVC_I3C_PM_TIMEOUT_MS 1000 =20 /* This parameter depends on the implementation and may be tuned */ #define SVC_I3C_FIFO_SIZE 16 @@ -480,10 +483,20 @@ static int svc_i3c_master_bus_init(struct i3c_master_= controller *m) u32 ppbaud, pplow, odhpp, odbaud, odstop, i2cbaud, reg; int ret; =20 + ret =3D pm_runtime_resume_and_get(master->dev); + if (ret < 0) { + dev_err(master->dev, + "<%s> cannot resume i3c bus master, err: %d\n", + __func__, ret); + return ret; + } + /* Timings derivation */ fclk_rate =3D clk_get_rate(master->fclk); - if (!fclk_rate) - return -EINVAL; + if (!fclk_rate) { + ret =3D -EINVAL; + goto rpm_out; + } =20 fclk_period_ns =3D DIV_ROUND_UP(1000000000, fclk_rate); =20 @@ -527,7 +540,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) odstop =3D 1; break; default: - return -EINVAL; + goto rpm_out; } =20 reg =3D SVC_I3C_MCONFIG_MASTER_EN | @@ -545,7 +558,7 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) /* Master core's registration */ ret =3D i3c_master_get_free_addr(m, 0); if (ret < 0) - return ret; + goto rpm_out; =20 info.dyn_addr =3D ret; =20 @@ -554,21 +567,35 @@ static int svc_i3c_master_bus_init(struct i3c_master_= controller *m) =20 ret =3D i3c_master_set_info(&master->base, &info); if (ret) - return ret; + goto rpm_out; =20 svc_i3c_master_enable_interrupts(master, SVC_I3C_MINT_SLVSTART); =20 - return 0; +rpm_out: + pm_runtime_mark_last_busy(master->dev); + pm_runtime_put_autosuspend(master->dev); + + return ret; } =20 static void svc_i3c_master_bus_cleanup(struct i3c_master_controller *m) { struct svc_i3c_master *master =3D to_svc_i3c_master(m); + int ret; + + ret =3D pm_runtime_resume_and_get(master->dev); + if (ret < 0) { + dev_err(master->dev, "<%s> Cannot get runtime PM.\n", __func__); + return; + } =20 svc_i3c_master_disable_interrupts(master); =20 /* Disable master */ writel(0, master->regs + SVC_I3C_MCONFIG); + + pm_runtime_mark_last_busy(master->dev); + pm_runtime_put_autosuspend(master->dev); } =20 static int svc_i3c_master_reserve_slot(struct svc_i3c_master *master) @@ -867,31 +894,36 @@ static int svc_i3c_master_do_daa(struct i3c_master_co= ntroller *m) unsigned int dev_nb; int ret, i; =20 + ret =3D pm_runtime_resume_and_get(master->dev); + if (ret < 0) { + dev_err(master->dev, "<%s> Cannot get runtime PM.\n", __func__); + return ret; + } + spin_lock_irqsave(&master->xferqueue.lock, flags); ret =3D svc_i3c_master_do_daa_locked(master, addrs, &dev_nb); spin_unlock_irqrestore(&master->xferqueue.lock, flags); - if (ret) - goto emit_stop; + if (ret) { + svc_i3c_master_emit_stop(master); + svc_i3c_master_clear_merrwarn(master); + goto rpm_out; + } =20 /* Register all devices who participated to the core */ for (i =3D 0; i < dev_nb; i++) { ret =3D i3c_master_add_i3c_dev_locked(m, addrs[i]); if (ret) - return ret; + goto rpm_out; } =20 /* Configure IBI auto-rules */ ret =3D svc_i3c_update_ibirules(master); - if (ret) { + if (ret) dev_err(master->dev, "Cannot handle such a list of devices"); - return ret; - } - - return 0; =20 -emit_stop: - svc_i3c_master_emit_stop(master); - svc_i3c_master_clear_merrwarn(master); +rpm_out: + pm_runtime_mark_last_busy(master->dev); + pm_runtime_put_autosuspend(master->dev); =20 return ret; } @@ -1060,6 +1092,12 @@ static void svc_i3c_master_start_xfer_locked(struct = svc_i3c_master *master) if (!xfer) return; =20 + ret =3D pm_runtime_resume_and_get(master->dev); + if (ret < 0) { + dev_err(master->dev, "<%s> Cannot get runtime PM.\n", __func__); + return; + } + svc_i3c_master_clear_merrwarn(master); svc_i3c_master_flush_fifo(master); =20 @@ -1074,6 +1112,9 @@ static void svc_i3c_master_start_xfer_locked(struct s= vc_i3c_master *master) break; } =20 + pm_runtime_mark_last_busy(master->dev); + pm_runtime_put_autosuspend(master->dev); + xfer->ret =3D ret; complete(&xfer->comp); =20 @@ -1350,6 +1391,14 @@ static void svc_i3c_master_free_ibi(struct i3c_dev_d= esc *dev) static int svc_i3c_master_enable_ibi(struct i3c_dev_desc *dev) { struct i3c_master_controller *m =3D i3c_dev_get_master(dev); + struct svc_i3c_master *master =3D to_svc_i3c_master(m); + int ret; + + ret =3D pm_runtime_resume_and_get(master->dev); + if (ret < 0) { + dev_err(master->dev, "<%s> Cannot get runtime PM.\n", __func__); + return ret; + } =20 return i3c_master_enec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); } @@ -1357,8 +1406,15 @@ static int svc_i3c_master_enable_ibi(struct i3c_dev_= desc *dev) static int svc_i3c_master_disable_ibi(struct i3c_dev_desc *dev) { struct i3c_master_controller *m =3D i3c_dev_get_master(dev); + struct svc_i3c_master *master =3D to_svc_i3c_master(m); + int ret; + + ret =3D i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); =20 - return i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); + pm_runtime_mark_last_busy(master->dev); + pm_runtime_put_autosuspend(master->dev); + + return ret; } =20 static void svc_i3c_master_recycle_ibi_slot(struct i3c_dev_desc *dev, @@ -1389,6 +1445,37 @@ static const struct i3c_master_controller_ops svc_i3= c_master_ops =3D { .disable_ibi =3D svc_i3c_master_disable_ibi, }; =20 +static int svc_i3c_master_prepare_clks(struct svc_i3c_master *master) +{ + int ret =3D 0; + + ret =3D clk_prepare_enable(master->pclk); + if (ret) + return ret; + + ret =3D clk_prepare_enable(master->fclk); + if (ret) { + clk_disable_unprepare(master->pclk); + return ret; + } + + ret =3D clk_prepare_enable(master->sclk); + if (ret) { + clk_disable_unprepare(master->pclk); + clk_disable_unprepare(master->fclk); + return ret; + } + + return 0; +} + +static void svc_i3c_master_unprepare_clks(struct svc_i3c_master *master) +{ + clk_disable_unprepare(master->pclk); + clk_disable_unprepare(master->fclk); + clk_disable_unprepare(master->sclk); +} + static int svc_i3c_master_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -1421,24 +1508,16 @@ static int svc_i3c_master_probe(struct platform_dev= ice *pdev) =20 master->dev =3D dev; =20 - ret =3D clk_prepare_enable(master->pclk); + ret =3D svc_i3c_master_prepare_clks(master); if (ret) return ret; =20 - ret =3D clk_prepare_enable(master->fclk); - if (ret) - goto err_disable_pclk; - - ret =3D clk_prepare_enable(master->sclk); - if (ret) - goto err_disable_fclk; - INIT_WORK(&master->hj_work, svc_i3c_master_hj_work); INIT_WORK(&master->ibi_work, svc_i3c_master_ibi_work); ret =3D devm_request_irq(dev, master->irq, svc_i3c_master_irq_handler, IRQF_NO_SUSPEND, "svc-i3c-irq", master); if (ret) - goto err_disable_sclk; + goto err_disable_clks; =20 master->free_slots =3D GENMASK(SVC_I3C_MAX_DEVS - 1, 0); =20 @@ -1452,29 +1531,38 @@ static int svc_i3c_master_probe(struct platform_dev= ice *pdev) GFP_KERNEL); if (!master->ibi.slots) { ret =3D -ENOMEM; - goto err_disable_sclk; + goto err_disable_clks; } =20 platform_set_drvdata(pdev, master); =20 + pm_runtime_set_autosuspend_delay(&pdev->dev, SVC_I3C_PM_TIMEOUT_MS); + pm_runtime_use_autosuspend(&pdev->dev); + pm_runtime_get_noresume(&pdev->dev); + pm_runtime_set_active(&pdev->dev); + pm_runtime_enable(&pdev->dev); + svc_i3c_master_reset(master); =20 /* Register the master */ ret =3D i3c_master_register(&master->base, &pdev->dev, &svc_i3c_master_ops, false); if (ret) - goto err_disable_sclk; + goto rpm_disable; + + pm_runtime_mark_last_busy(&pdev->dev); + pm_runtime_put_autosuspend(&pdev->dev); =20 return 0; =20 -err_disable_sclk: - clk_disable_unprepare(master->sclk); +rpm_disable: + pm_runtime_dont_use_autosuspend(&pdev->dev); + pm_runtime_put_noidle(&pdev->dev); + pm_runtime_set_suspended(&pdev->dev); + pm_runtime_disable(&pdev->dev); =20 -err_disable_fclk: - clk_disable_unprepare(master->fclk); - -err_disable_pclk: - clk_disable_unprepare(master->pclk); +err_disable_clks: + svc_i3c_master_unprepare_clks(master); =20 return ret; } @@ -1488,13 +1576,40 @@ static int svc_i3c_master_remove(struct platform_de= vice *pdev) if (ret) return ret; =20 - clk_disable_unprepare(master->pclk); - clk_disable_unprepare(master->fclk); - clk_disable_unprepare(master->sclk); + pm_runtime_dont_use_autosuspend(&pdev->dev); + pm_runtime_disable(&pdev->dev); =20 return 0; } =20 +static int __maybe_unused svc_i3c_runtime_suspend(struct device *dev) +{ + struct svc_i3c_master *master =3D dev_get_drvdata(dev); + + svc_i3c_master_unprepare_clks(master); + pinctrl_pm_select_sleep_state(dev); + + return 0; +} + +static int __maybe_unused svc_i3c_runtime_resume(struct device *dev) +{ + struct svc_i3c_master *master =3D dev_get_drvdata(dev); + int ret =3D 0; + + pinctrl_pm_select_default_state(dev); + svc_i3c_master_prepare_clks(master); + + return ret; +} + +static const struct dev_pm_ops svc_i3c_pm_ops =3D { + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) + SET_RUNTIME_PM_OPS(svc_i3c_runtime_suspend, + svc_i3c_runtime_resume, NULL) +}; + static const struct of_device_id svc_i3c_master_of_match_tbl[] =3D { { .compatible =3D "silvaco,i3c-master" }, { /* sentinel */ }, @@ -1506,6 +1621,7 @@ static struct platform_driver svc_i3c_master =3D { .driver =3D { .name =3D "silvaco-i3c-master", .of_match_table =3D svc_i3c_master_of_match_tbl, + .pm =3D &svc_i3c_pm_ops, }, }; module_platform_driver(svc_i3c_master); --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8959AC433EF for ; Mon, 27 Dec 2021 07:49:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235543AbhL0Htp (ORCPT ); Mon, 27 Dec 2021 02:49:45 -0500 Received: from mail-eopbgr40076.outbound.protection.outlook.com ([40.107.4.76]:15936 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235561AbhL0Htj (ORCPT ); Mon, 27 Dec 2021 02:49:39 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QebsHTzFWP8hv5oOQcJ/AmTxW5skCvsVVMOho6BKKtiP5u5y/OTePg6JjmBYW+x1DU+P4qxORMlV8vw28Uz/VCCVf/Fnq63eoJV6KFnO3/OE2DEEMCT9RmYFjnLsYkkIUc0raEdqS+Vth+4CKJ5xfdjTkcAP8Gfp94DDVh7e5E2aHMA4YvYXQEiTfO+ma8cx9hMEoMlAXVbtrsCPJAlwo3D2ChMLEClU/qkPcjam+4ZVBT3OflCwRGhLaP0CEjK7EZ528jOQYQy0cKmSueMpe+awJEl5rWVnzIPoG2h5E0N1lNJrrBpd+QgWQyDNDCXXFWluMVPvvMUX2OPbz6dJww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Q1jezXools/y/l/bcphAuJgmvbXwOynT63sfojpuGy0=; b=gPK/RZBimXxElzPAtVbobBMhBw63OtHsYU5pXxtdwpnlUcuxa6NE2C/pQvKbHfpLLZkDLZ/aV+t+xrg57Z8K03x8hSiq6ea0sJzjt+yEpxnGK5rUCn3wpkIP5wrCRxkh3LJkrMAQ0Bx1gk8pQ1EwdJfxvMI5/6obsXSTqX242K+8n33yAAUxGjr8z//FVhn8xXznJrYSzrfbVtLRvrittj1xKueROf6d4WiwyrWUl3UTe7QrNczmQl9wPm+qzm3kTMWBF163NZgTjNw2ed8noMtdJZoQKZu2lKnlQ4wq+ncx1/VG9+of6ds954g56hQ3D5DL6OdI3rXFbuJ0iKW3/g== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q1jezXools/y/l/bcphAuJgmvbXwOynT63sfojpuGy0=; b=dUui1vQT25hNDPeC4xnzu+O20wUIt6tsnggz/WwsqRhV1jxoyfzN85mSg1kPvfPGar2EfRXSeYnvWIs7ou3uzUewaRzEd+A4uOJfGYHvMF9d5os1hSAmZtCzFoJEpj6eZtXif/bJ36cpDScX31Oyst2i/4lUQ50A24Ix3d2kcSw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR04MB5629.eurprd04.prod.outlook.com (2603:10a6:803:de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Mon, 27 Dec 2021 07:49:33 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:33 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 7/8] i3c: master: svc: add the missing module device table Date: Mon, 27 Dec 2021 15:45:28 +0800 Message-Id: <20211227074529.1660398-8-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2562f110-d166-438c-350b-08d9c90d6ba6 X-MS-TrafficTypeDiagnostic: VI1PR04MB5629:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Efr5EoxNqmdOOudZLsb7NMbbzYi6QmkTh7Fv5XefSBVCvtmJgvVO8xE0ta+udqoXyBwRXeWJkRj/c69WFUlG7gjPtDw5JPY3juQs/eik6aFPSiJ8ImP9VZd9KJ4k31XUTiySoQMHypEFLrKA/S8JMXuOcd6wwBxkSZc3HRZQDXglTfv4JVEU9AZSIlOs8VpqlcxH8qhdh/4Bzfd6vxXKEAcCPQchCQIIQfJ8snGfnXjGuAlNS7K/Z9E0CDF7c4wy8b+lzUexYVigR1K/cahMJlp1rNVxpBeXitPDkwKLl9ugj43WzPw1WENUPeyp86PFihAfed1Q7+bQ8sbJCBmHWHwTomCqrrEJpoFLiD/SXyQqaXPhNydIXYiPzh6zb63XpveJ02B3U0MVHGBArsyto6Ko6p9zNO25h/JAo1FgvVIjWEW+Pg0TTd0zvl8qeNI2TqU4TYcHYfXltrUyLBvFGkl3a3PFp8OJH6zEq9WKOf0gVEG1rAfbezH41N7MniONWbm6N7GoRNrhSncPFAKTjByJTjv6u+JVftzFfcDIPGTbqxCxMTGfs5PcZiQNehEhWBpB7Ll8kCll/Wq51nFa0JIZe+943l70ZXFDS85pKqBdGkddLUTI2YU8R/3sd/tQgz4SQwsfXUiHcZf8YiVjcMWJAvZ0A9RdhfZ04yz30JvOrG/b1Evtl4W5uUmtt79BIHIunVKY4kGWYzxr5JNiog== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6506007)(26005)(2906002)(6916009)(86362001)(36756003)(66556008)(6486002)(66476007)(66946007)(8936002)(52116002)(4326008)(38350700002)(38100700002)(2616005)(186003)(508600001)(4744005)(6666004)(8676002)(6512007)(1076003)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aUPvWIYZBKerfbNNCVQrTjxvW5tFW/lHnDWqbrHfrZBPP/yOK46tXLhhyUm/?= =?us-ascii?Q?3RY7auzpbPDYbXNelRiyyQ1NhaCbuC6fu1NEoar5O4I0JeLaEF0PRWV7qoUU?= =?us-ascii?Q?ZtT8+OWGmyMKdSe5Y8F8izdpTT4w6fDDth/pOZwGKEKCL8U0ABtVN6C1NerM?= =?us-ascii?Q?E3gcpl04m1zFs9o2NBgd7UBQtmrGd8hGJ8nPa5owZWrdkFC8ahZAV2dAUgJv?= =?us-ascii?Q?a4EmcG3Z+mWMx2IOgKV975yDy7BSASZuG1A6sKYIcIWCrzKQT6023ZuVllB0?= =?us-ascii?Q?aynQzgDi+dJKEqPZ5m9oEk1+JwU25Kxuo1LkAYxmbf8p7e2M0mTCcL6E7rx9?= =?us-ascii?Q?s8Q3PmptD+Wl7+t45BOOCHiTVmy+XvdUkRhQE7ntig3FpVxIPbzSG+Wc8b4H?= =?us-ascii?Q?jzh/N+/k9KVvn5GGRt14eDw4KWqCz6Abjsz9uE93Y3qpBZc67X+SJ22VrsJx?= =?us-ascii?Q?/F0DVzPE9KjqujudBNEXsCCHSEqAXrvRB8FlUZxAdghuPD0tFhGl+4nWE3sg?= =?us-ascii?Q?p2K8OemQa3kusj4zS1PsJG5KdvTWl6pjrRWXMij3zY9Lm6gsc/eZT3PjGvs8?= =?us-ascii?Q?4yRucd4AVwtJLa15O9bc79gMVJgGZnSzaums3cspHK548ohaNUjkVH4IATq5?= =?us-ascii?Q?cvccUzWY0jap53uYPuqhpUTIDAJSez5wXYiNkjsfACh46PXoajEEuf8E5+mw?= =?us-ascii?Q?UbstdbuqFYZLM0ztZH/GOOMdMF1BLQU4azrYf/lUW34GU+ezhMpbi1CTDn6a?= =?us-ascii?Q?1uWVZpJrJHPpWbwCm6cLL9YF5m66gllhD6p1F6+iHpJkSzl2JZfXxbtqQTIw?= =?us-ascii?Q?Bwn9LDr0B0IPaGS8Jgy5BX6Rv3JIo7XQj9ib95cHK/QJvjvrkcw4eurllXSe?= =?us-ascii?Q?1PH8t7Ky2QcnK+tvvm//fXbfqjf63ZPTLGAyr2l/c/8hQZpNsiK1wuGRLEYu?= =?us-ascii?Q?ctbj+XRhkBX/BY5km3UvzSrvdTGeYDeEjY3utACK17qW6yNEdz8qD08hNqCv?= =?us-ascii?Q?kKIEL42JPtrtwe05WCuZU/z9qgHhwxXg5/jHBWkVBDbuqFq5lTSaQrXah7Kw?= =?us-ascii?Q?2kNwfMkm62eO2X8QCk36p4auJ6vmkXxK3eMZbMqeXhV9SsSXFF2KvC5cQnap?= =?us-ascii?Q?VlXeAQyRhGo7jz6qP+FH+E0f5nCo2clnsTW8EmQ9l04Rk6Qs11NMHkjury5P?= =?us-ascii?Q?0aOHpwXXIBW1NF1+O8ry+gbiJQfx/BP7rRdrLd9YIdRd+kL8zfKkNytSdWXp?= =?us-ascii?Q?BiuxoRZ0J1wPA9MbzfADSWoJ+7C7T6Ei4N2f+CSXjs7ysJxlZHWlZTrR5xuw?= =?us-ascii?Q?tI1eZ6ieXOeneVC8ir+AJbqkfqal/Y/u9ZsSQ4vswV58ElpWIKum/Y46Gxhd?= =?us-ascii?Q?9ujHExpW8cXTX6art49HzdJ2lgXvzsiAknl2eyC0H7vJ6mZDsOO7a2YCEYb8?= =?us-ascii?Q?qbNS89Hx8B3hrsVL5XBd0tuwf2XDfo0bTgFbGbhjD4WsC/dhYADqNg7z+JEt?= =?us-ascii?Q?kSbskKV2MyyiajK55AuilFc7zJJquXmUUfHXTdytQA+RKFtZKybJV5z7iNn8?= =?us-ascii?Q?3kS7B5wyZEJKfHKlTfA3bpBi3B1nAMIewAXWO4mIA87mlNk/+eKA9Tf0owht?= =?us-ascii?Q?oYko/wx+M+1aCP6IsfIdnS4=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2562f110-d166-438c-350b-08d9c90d6ba6 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:33.0886 (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: RRnJzSOWuCbmgDMLTiZUE+Y5VIuXSn3TO3InwvMRiwfydynzH/VCJQKQkn2CTHu3kvaHXfVSHR/BIL5ZOyuBRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5629 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The missing MODULE_DEVICE_TABLE() will cause the svc-i3c-master cannot be auto probed when it is built in moudle. So add it. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal Reviewed-by: Jun Li --- V5: - add Miquel's reviewed tag --- drivers/i3c/master/svc-i3c-master.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 884f5349fb76..3bc81ef95334 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -1614,6 +1614,7 @@ static const struct of_device_id svc_i3c_master_of_ma= tch_tbl[] =3D { { .compatible =3D "silvaco,i3c-master" }, { /* sentinel */ }, }; +MODULE_DEVICE_TABLE(of, svc_i3c_master_of_match_tbl); =20 static struct platform_driver svc_i3c_master =3D { .probe =3D svc_i3c_master_probe, --=20 2.25.1 From nobody Wed Jul 1 07:51:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16DE7C433F5 for ; Mon, 27 Dec 2021 07:49:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235581AbhL0Htm (ORCPT ); Mon, 27 Dec 2021 02:49:42 -0500 Received: from mail-eopbgr140080.outbound.protection.outlook.com ([40.107.14.80]:61409 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235509AbhL0Hti (ORCPT ); Mon, 27 Dec 2021 02:49:38 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QY3m+rlxlH0bM6yS7nqZk2eq350uFdpvoz5tHpH+iQjcTNvSgnqvY/nRY/OolnBuGmWzHdWA9ST+t3LJev9RZf3eF3kDJcjQ4E/wDIEwg2n/BWABRsdER1JczEquduY9AlsfJA01FCd4Kgi8bQgRqOMOSXSAB4jiJAELm70jf8zesu+HhKa+oKjUrwSwEN3x+nes68yEzFtfS6lNsi+bi6Px0lgQoKm6JNBTBLh0+kdBnoDMKn5kIWMfXGwbvz0JyN0khwOy+5M51BErmIH4aXUVq9uhsQ5J/oKXPEKej9nt71QfF49WMF4pfTXWOYmLoxS7za3BjRxlgG9xYbZI2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=jifJsGARhkDNJRV0D8tgFfXyWzKoCMF4H61IelB15LE=; b=KR9K5B84u6EMuc/UOceXec0gnk4yaSoFoZ8k765wnUFQVzH7URv44Nj2nYNPaeDTCeaKwmd/14TejPG6DyLjaLfuto5pBT1NBW81XHbz8ZpnSwk2qfs/aS6I5zuiqlHYJVWPSvA7U7X/xuvfPYgKwKreU0r9V1XB9420AYA0vSYTytEE9IVo2bTlhNVaXQsfgw+sYa1JnCYPIirAOIECiSlntMPIZAybUpXhx/p1tfHbI8dDtzagSf/IYpc4kFXfJuErAQMwjAqjSUVuTIXJtMsol1+IHHQJFhigNiCMKA+835pyL7CjbvIZOJXPaAxLp4F+h9xKfqOdxOlB/gXF3A== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jifJsGARhkDNJRV0D8tgFfXyWzKoCMF4H61IelB15LE=; b=afhGDkK9wuZc5jIOLmcwgvsdN1WTzUm28MwZ6idWEaMheNvSEc+iV1AhjyhBx2Ci89iS181wHHOCf1l7uuOQZWYkqk80xrhko8KtOtjBKESYMAkr3oDvd2uaQmiAx3h0SfDaMXGs+9v6TuEhXuoa+MlcIEyrtpCEIbrmLjFWJpI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) by VI1PR0402MB3904.eurprd04.prod.outlook.com (2603:10a6:803:17::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.21; Mon, 27 Dec 2021 07:49:35 +0000 Received: from VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748]) by VI1PR04MB5631.eurprd04.prod.outlook.com ([fe80::90fe:b60a:94b5:c748%5]) with mapi id 15.20.4823.022; Mon, 27 Dec 2021 07:49:35 +0000 From: Clark Wang To: miquel.raynal@bootlin.com Cc: conor.culhane@silvaco.com, alexandre.belloni@bootlin.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 8/8] i3c: master: svc: enable the interrupt in the enable ibi function Date: Mon, 27 Dec 2021 15:45:29 +0800 Message-Id: <20211227074529.1660398-9-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211227074529.1660398-1-xiaoning.wang@nxp.com> References: <20211227074529.1660398-1-xiaoning.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0132.apcprd01.prod.exchangelabs.com (2603:1096:4:40::36) To VI1PR04MB5631.eurprd04.prod.outlook.com (2603:10a6:803:dd::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 71f0d48c-a3df-4d44-2cb7-08d9c90d6d0f X-MS-TrafficTypeDiagnostic: VI1PR0402MB3904:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HjZMmqsHR74a2K+IEsKGoaKKhyS5crjoBfwH3KcFEW9rk9QPuMxODBHEWbBxAJhzleKAk623hdvgmmA7qekZ+bjw1VMIGK1EgrEOdMyLzC+Ek0h7ehy1UQCSOOSG3eSLlw+L+8JowrxNWcYrEtRFUhyjNZZ7AmhYtDPuvZ4I7RcVBwkjO85BxhuJR+xkxiiqLYPQfwuGrxq7J5vPM/A8kTJfjkY9qZdNO3GGIUcBifMeWRC5rMawOitOHjbUmbVylFQ/etTDONbGE3ivPGzpoJOLc2Jt1PM7vRmRXz9XWbPSc0dYiFMd2V3i90/+/0D2+c43BAX1fV2ps1dvSCRF3htFijxSfZcW4+IjTDpwNHCZfaebaCiF+gTAUEgB3VUFEDvqO5tdZdYlmPkzyH+YU5Z40QzBdBoPzr/HzCnz6saQyzKrbRvehDee03o2XKVnmu8uQI8cqO+6eo5rb4AhYURVz4sAR3PuJZSd/tF6zXWSuzItBBJYLgz7ZrPuzEIZpc5POgspzulEeaPUKgeUImhbMA3ROZ+HWM8hxpUfpgeOw+aF5xiMxzd2zvZrJVDWyaup3EB2Vj6B8Ce7mh5Fs8//DfYHO8sKjVWPaQe+E/jrvlL5CWC+gFOrKiijas+EeY1BNYxbV0gYI2VxKZrIc3AXTNZeGk0kvoA1yyNPsd7bjZODaS2/NlCQUAAZhMNzrIbPJpFeo2bX6S9oI/ULBQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5631.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(5660300002)(1076003)(186003)(86362001)(6486002)(83380400001)(38350700002)(316002)(508600001)(6916009)(2616005)(6512007)(66556008)(6666004)(66946007)(66476007)(26005)(36756003)(6506007)(2906002)(38100700002)(8936002)(8676002)(4326008)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3u95jlQHeQH9dZI/BoUE+fmI0HZW4Zb/nBCU5yraT0SlflqaF/FgZeKkFPpj?= =?us-ascii?Q?NtYpcShRk4UM16F+kJhYJCgRQ1jW8tD5tH+kiLOJB0TYd0C5P8MT8Bz59k5r?= =?us-ascii?Q?8C8qbKORYh29mOIlvVzEKhodBrvSrtRqU1NcU227O2d2s3efuKoTqvtORJcO?= =?us-ascii?Q?b8wNlgw3Ic6tyJS5BJT6REvZYGbX/t2n33vfKprTh3WR9D2zM+icdtsv1WsY?= =?us-ascii?Q?bXZ7AoXv8gGYMNhuVBo7IB4bg8IFy07+0QJFme/CtMMqMxslcu+j2IqZ8R3L?= =?us-ascii?Q?P7njO5DGptVxbSvMtArA57dlvUyzNKQYRjajb9934C51MtEW/U0m5k8mc9Wt?= =?us-ascii?Q?8QOwmNHaQyu3S5qPj9jROkOUtR0fOwGV8p5hsBigVUX0ntjD4AtHwdHfN5dy?= =?us-ascii?Q?iPyepbSMT1k9b3CqQPv3LhGQDvLNsSVA6Sc2MA2ge/2OzenDJSsh+iirKeOf?= =?us-ascii?Q?/hfOaYcMBaCPqsSQGEdNDB9ewi16p7OGZ8eXu7nkBP6pGtkXPNfKNUJH+1aq?= =?us-ascii?Q?SDoxkPFWlDlalbNLnOg196zMGtzfAkE1l0bbQ3NQOT9hR6PtMkvIWyK/aaVM?= =?us-ascii?Q?+1EDveX0DjJ053c7AlYm9+DvLlv+4kLSrL31R8vDFnJRm5sDEsf9WIJw/qTM?= =?us-ascii?Q?d0dnuxqINu6bCxM7IbngC+UPKMdGEsYZgMVCQX9AfGTl1KkH1sFN4r5j+jP/?= =?us-ascii?Q?UAh9G5Jq4FqOh5sZ8Mz0r+kJeTlkPoaCxUN1+Lw7LEmx3uyLjBWFB91ve3hI?= =?us-ascii?Q?HlbFCKGyTLl9vKjmZvc0R59C7Ej4pzxAICFPHDtGOpERL4NGiEviMB5wsLf6?= =?us-ascii?Q?LsiA0J9C1LX/DGkDQ9nzk9bsYVOJ6l9a/pMJXrTCxDBqrdIkuZYRV73sVUHk?= =?us-ascii?Q?SA9hC/fiHGs8lUoZHJ1MUrURnlTLwQxyYhwK0CKFzX81MWtBrv/LewkxrJaC?= =?us-ascii?Q?CPS4C7FZqW+Uqbn5joMEI0Djdi9bj5UjmQnekz4nMQfKG7G+rowv1ZQNHd++?= =?us-ascii?Q?gxGFZrPtb1L9dYWd+aXrbkdjb0/jpCGV8nM9N+j1of9+Z+GDpCVu1+hdTg6/?= =?us-ascii?Q?yW6mTGAhtVF3L5Y/0aUxdkoQQ0EeOAmGuVsu7d4XwCx6B+R3VW5PCyGl+xEN?= =?us-ascii?Q?dKcCvdvEFOX1G0tSANxlZKUwpNJ2t844LbeH4g8TyAR94cFxHjuLqgZwU3sc?= =?us-ascii?Q?RiGLL5ApUMDn38ByqT4aA+xAeClwzAD4EAeKAg4hRRlFo7RXHmNqsaZVSNwD?= =?us-ascii?Q?RX9GaTcEQRgZN8LzlsjAZlFwOiRj0wyYglV5mUfl0hPu9ZwTaZj2dpDf6kpP?= =?us-ascii?Q?InEqtSSFY1orbKHX/WCCWLDTJ756389KzmjiRJsqCp6LEa7HvEEvgtj0qZIP?= =?us-ascii?Q?bl8Ltsdu3JPgM+EvJtz+vdOqMY391i7NmYGP3zZD/TchLGPi3f8YCmwX+zz4?= =?us-ascii?Q?jRkbcxemeBmpupYvUNw5ZYMIgWZ3Rn0ZwF35ZKForuAM4ncJiwLiXcrZvm9j?= =?us-ascii?Q?RrzkTExPfYOGghSnTqLPF0qd6Y+qttQo/0KldxHDxVxOO7zqUiaKFUiQVjpm?= =?us-ascii?Q?Hf4u+htPW3joc1aD0YIRKTFALKgRloQ7DBCcqqzxhWkeHqrjdhWRbMEpu/pO?= =?us-ascii?Q?0Ce8At2IdcKkk66FkGNS6S4=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71f0d48c-a3df-4d44-2cb7-08d9c90d6d0f X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5631.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2021 07:49:35.2823 (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: ynttRGRXNr05UAbtHdL13Sgg9RcEAqtRk0qrVGluLU4O7dH09F0GWSKBUxNHL1p0lE8Wd2YYWBAdqbJffkZiEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3904 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" If enable interrupt in the svc_i3c_master_bus_init() but do not call enable ibi in the device driver, it will cause a kernel dump in the svc_i3c_master_handle_ibi() when a slave start occurs on the i3c bus, because the data->ibi_pool is not initialized. So only enable the interrupt in svc_i3c_master_enable_ibi() function. Signed-off-by: Clark Wang Reviewed-by: Miquel Raynal --- V5: - Yes, it actually happened when I try the lsmdo6d sensor's ibi function. - add Miquel's reviewed tag --- drivers/i3c/master/svc-i3c-master.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i= 3c-master.c index 3bc81ef95334..7550dad64ecf 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -569,8 +569,6 @@ static int svc_i3c_master_bus_init(struct i3c_master_co= ntroller *m) if (ret) goto rpm_out; =20 - svc_i3c_master_enable_interrupts(master, SVC_I3C_MINT_SLVSTART); - rpm_out: pm_runtime_mark_last_busy(master->dev); pm_runtime_put_autosuspend(master->dev); @@ -1400,6 +1398,8 @@ static int svc_i3c_master_enable_ibi(struct i3c_dev_d= esc *dev) return ret; } =20 + svc_i3c_master_enable_interrupts(master, SVC_I3C_MINT_SLVSTART); + return i3c_master_enec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); } =20 @@ -1409,6 +1409,8 @@ static int svc_i3c_master_disable_ibi(struct i3c_dev_= desc *dev) struct svc_i3c_master *master =3D to_svc_i3c_master(m); int ret; =20 + svc_i3c_master_disable_interrupts(master); + ret =3D i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); =20 pm_runtime_mark_last_busy(master->dev); --=20 2.25.1