From patchwork Mon Feb 19 05:22:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 13562170 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BC538C48BC3 for ; Mon, 19 Feb 2024 05:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Subject:Date:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=QcWDNAxwnYYOEbbAA3c+5C+Ilxvfz+Y6fp8A/i0VXDU=; b=gH/vLZ/dARGEfcAxakJK42C+cL bfq9CaEBhixlRySrL5eBMybMyifnvrN4X5g4/5TI0aX2yf5t7h8XgEP7AZr94XTluprwkTVL6vL4I EKyJaHYLkjmW68hUbMVMx1WIgEb32h4fS6ORE3VfgvtlZ00KomT+mHj1w4o8h0wPZpBvzhxyhgd/Z egNzOpiM1Dsji8YB5Lm4B4akdoVDvhsqqlQY7dMLfAJQAcdv24SviQqrElAQxxLfkMFv6+DmOt/jS lKC0ZgUVd6C+cfflFx5byZNxsHnacSAGdajZQhFaaA1MncMPfwr+9ym3+8PL1LlGze3x8jIa9LaIf PRjQq/xA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rbvzG-000000097EM-1FiA; Mon, 19 Feb 2024 05:14:42 +0000 Received: from mail-he1eur01on0602.outbound.protection.outlook.com ([2a01:111:f400:fe1e::602] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rbvzB-00000009794-1CTQ for linux-arm-kernel@lists.infradead.org; Mon, 19 Feb 2024 05:14:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NRptMHnBGFQzVmKVLojirra/lRKQOmeE8sY8FBTXfilZAhPRG+E0hXv+RvGNij0Tm6w4ci2gcLbCCiwbgy0QNYEt31Qb4cG8fWKRvOvvWSi6jzK0rom1n27pS0KmMqakYoBCMdpD6pQKGipMKsorrzsLMec27M4Lm2Bm9YsBwqVSGqZ9z7mj1wCEzvD+moM7uahFbZU4Ro3NtPUzyWpNaMspKmjlGFskTBKLyRT/QD5TAPrDQ4b3YWDfVqtjGuORQDBP7/bxXkqpZ+h86cCHV0U1XXp5xBEkm7uUQlkPRCX3HYaB0WkVA41hysx3HJqkqnrVsqSZrFiq9F7J/7rjiQ== 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=yroYNvtM+ftxkBYnpAH09lTiB04eMcTiVCGoXVH7uV4=; b=bFfjTTwERtnWNkZAOI2lZkDhBwzLWp1G3dJNy+4kVff6fxxUJMUa7vSXsX5/MiwmWSc0l1NLuLN7Dub0lDOqBkUy9F38iscLtcdZBh0WajPHErep6vXcjjNAzpRKftGhCm2Gk/hHMuLNgVffeREzemnjB0ja7KfBiFXAoCdMB0Hz6Hqv0huQZJcWHU9iQ5BgqWuW5YIM/vpXcIKgLEi7U/CdKv8wimHnNoMwQwKMDmppSUFJTOCzHTPq6OOfaB6SSBJTSsp4HdVJwq3nzvCGyBhKjvEQoM1EAO/RrcxG+29PFlBNHfuiaHaWlsgpl+mzqT6WLi36ybvhuQnMm2socg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yroYNvtM+ftxkBYnpAH09lTiB04eMcTiVCGoXVH7uV4=; b=WCBoOTLQAQ4dFeh0ji8jV84CAMvUCGg/2COMLDq5cei0DmRT+7sKNU94fb6xo/7Itxk46Br/jO716apW8E9hmLA/tkDtciyntUOaiEmdsqmFENM+T2oxyg/jOCWYNwX/w4/cHhTSYIDiogeAu5f9RJViVuuYDsAyMyHUsPbL/Eo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by PR3PR04MB7228.eurprd04.prod.outlook.com (2603:10a6:102:8c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.34; Mon, 19 Feb 2024 05:14:29 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::4ac3:3559:4200:38e1]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::4ac3:3559:4200:38e1%4]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 05:14:29 +0000 From: "Peng Fan (OSS)" Date: Mon, 19 Feb 2024 13:22:37 +0800 Subject: [PATCH v8 2/5] mailbox: imx: support return value of init Message-Id: <20240219-imx-mailbox-v8-2-75535a87794e@nxp.com> References: <20240219-imx-mailbox-v8-0-75535a87794e@nxp.com> In-Reply-To: <20240219-imx-mailbox-v8-0-75535a87794e@nxp.com> To: Jassi Brar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Dong Aisheng , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708320164; l=3395; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=S0DKuiQSDcYtu53JqBC1+gV1zoHcWj4DjQyGEWhlcnk=; b=gr9A+GsNSjrArUHd/OF2V4iBesmVbMSKZw/32AIG4X456SV897HBeUiNhlttdCk6pFtRsEIu3 rG1RibGeuoFASKvJ3A0cKy5s3PLRUE/1pFv655leQwdC6hL7VGfH75z X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR04CA0017.apcprd04.prod.outlook.com (2603:1096:4:197::15) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|PR3PR04MB7228:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c012eb2-d482-4001-88d0-08dc3109a633 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gTukSGVndwJJ19RqUtsm8LKHPaXmbh6m6L8M5hrQkQHmN3wKL8wnoj6a9cpWldSa+3bkbb2StOQgW14uRNQvnkhbn4vq6+swzB5zSanW2fBTNfzLvc53vezRVkV/NL2GiId9HVvEMt2C0EzkUfBnjJ4lyXhNfnNyRHAOLLOatx+jx1hIz6+NAOFrvECfvOttzqX9gWRztOcrR1UlNB3z4vP1a0zJwiBZvkj5GeOr6A5NLQ6QXoKWf9eXnhjNGxZB8giywrCm15s/VxC4jyjUU0UOVao8ZJEc+SAHNg/2e9lr/CITlWXuX9MguHWOOylZWcnrW4yIPeaqdyOzoSuNv8fJWGK4h+aqTIcPrjZzTCFEZBY5nMuwgcAR18kncsTbCmK1Bq0k85WIqtvKKEOBezzRQX4kNze/OLmS2WUFH6Oe/AbF6CNdatfp9+4omFTSmN1ua274st5qZehJBCewnSQ7+A68Ltpt2FPDVaO71vjvOLjbgIkJW+xM7v+oUJFgalYTJ1683mIWQcBB1gAr0ILI3GRVUnAlDazj9D9kU8ijaTT9hC5BgwcqCLSmHJTlhZmn2JLYIox+lzt5/5ef+sjrPNN34XDiPFCD3Ua1R4LBTe5F9fpH9AoHTvG3UYMw X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(396003)(136003)(366004)(39860400002)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(41300700001)(8676002)(4326008)(2906002)(8936002)(66476007)(66946007)(7416002)(66556008)(38100700002)(5660300002)(15650500001)(86362001)(52116002)(6512007)(6666004)(316002)(36756003)(6506007)(9686003)(6486002)(921011)(83380400001)(110136005)(478600001)(26005)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?NhUFbh9OXrM8Ok/5YSEDZmeQ7Yw4?= =?utf-8?q?YCbJ84eWe1QcvRBFjMc2JsYns9kcB0UBYtSbE7l2dJ8NS3uzTp4Q1YTydX1HOlQcv?= =?utf-8?q?XBIF5VAvYvc/M0izwEB8ZfC2nN34hyRBBdt+qKOfqRRcsnND8d2pwjykjCCH/kUq/?= =?utf-8?q?8NgFlbEUgUxHndtAMiyRO09Zkv9V+DWIW6jc6GTtEYRYbkyI4jIYTMxMcGhuPzhUD?= =?utf-8?q?hUu/VBWGCPtwTBiZznGiRoNlEObxK6c/wPOaJdsTHP5tZWPe6CHgIELGOKd7NfuKV?= =?utf-8?q?cmsUaqLDMAcszD3yKsZPJJRAiBbHVwJJGNT2VSmad24QWHNaFgqccK0aU0KVd2OLi?= =?utf-8?q?XLejLTLWj6PTPySvmWh+iOh1EJ7X8JDzFpalZRHsoJKOClsCWZ51hzjq5IJUhYDV+?= =?utf-8?q?wSxY1clVplxwVnL8RRSi7bdhrhqmeipGCivgVbG7m1qHZvlw6npsN7fIhiLerzwz5?= =?utf-8?q?di4csKG/bTbsczZGE8bZVQq65mC/XjQtfH7wXxlneu5IH151DRqX+wxXZRXgrpwA9?= =?utf-8?q?j5r1JIpRsIFmaclVofQ0h/sik5awq6DiktiJhXpsTY6mWpnUA+HlOpy7nImyI9/LI?= =?utf-8?q?WOcHyuoxVmsEaVmOi6p4ui5VhrZ7I76eCX2SecYax4cEmm1anT9/X44BCb6QmUqSZ?= =?utf-8?q?gRAB2PZzqXu7IuDOnzCUTfNTSr4WQMjbj3Q23f9IfQK4pueQHoAscFhh0I6VWuw4K?= =?utf-8?q?HQ/XaeCI1+91xZSSslHbl76J2VGe74nUFA6ja+mSp4F7StS/KhSJ2kIIhom8Onimy?= =?utf-8?q?q5S6oqSNzmel2nuarfAX2H86A/zpzldr7U43vNWNQ6Tf7tudcyheghbSopSVUzskF?= =?utf-8?q?xRKkz2ORA1Mr87Ma7yrzhBwttCPMt7QqxdCsLZBPluQrHjXOsnHBua9nNVa5w1AsP?= =?utf-8?q?iMUOHO5GATKkyJ1qN81+Xjzwgt6YhjH4SZaKqFGNe6IxDkzPScP2fR9vpx1bqCqtQ?= =?utf-8?q?iAllURGfmjURj7g5XVuhHK3dk2TIlvkz8/JGZ6nD8IyfX5rQ+JeTKdkutIoTKKOel?= =?utf-8?q?bi8ryZ3CXQlMkfjMp4kXhBmQO7gYjVg8khjIUKwf4bFEeb+AR8H3xwJMmTQoukjwO?= =?utf-8?q?7e7Y59D2U74nLROxCoAQN/2Rm+IUWcCFtHZTe5DyM4iBNSW+Pmbon98FN1NPlU+Eo?= =?utf-8?q?CiMjRkFuTBR2ESkjSBMBCyOqQcJDR9AvmaEwX6sCCG0/XNgDExIfYtL4EFvS8LR4V?= =?utf-8?q?OrfCh0HN4GAIEExLxmVuqENcBjWCKcaF/+lcdZMBAJRFRVkAi2jhP684kQOdQRuKz?= =?utf-8?q?4KHNSaSrlO85EjYUSUHNcQ2BPkRq9NKoJaVqAE0OzgMyIBd0fN76lNRg+WAJg6adq?= =?utf-8?q?GPH3oNf/KeAZE1UYtXr+RHzlR3vvjJ1sWXalqCFIcGnalflATx5BNuUNfPxuIfwf4?= =?utf-8?q?P8MTUAeqsz72oWcjl0GQM1GhaCN1yQjija6IoAa6qunM36xKzXTlfzpfauWD8T1aB?= =?utf-8?q?2ZYeLlZiMPMHccID3VAdM8afvlEQVCVTgjBwEoFAjsdBG5iKC0Ez+iayFMlTCfSR/?= =?utf-8?q?D62z2a8ARVWx?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c012eb2-d482-4001-88d0-08dc3109a633 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 05:14:29.3468 (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: uyFp7gptauh9oESYIe2hex+1NoRZBGymsfEEYGVsUzDwysyo9rcNahAU0ig3zH2uS+fBkoJ3mGOCgQOJY/hrKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7228 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240218_211437_346660_636A5633 X-CRM114-Status: GOOD ( 15.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Peng Fan There will be changes that init may fail, so adding return value for init function. Reviewed-by: Sascha Hauer Signed-off-by: Peng Fan --- drivers/mailbox/imx-mailbox.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c index 656171362fe9..dced4614065f 100644 --- a/drivers/mailbox/imx-mailbox.c +++ b/drivers/mailbox/imx-mailbox.c @@ -110,7 +110,7 @@ struct imx_mu_dcfg { int (*tx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp, void *data); int (*rx)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp); int (*rxdb)(struct imx_mu_priv *priv, struct imx_mu_con_priv *cp); - void (*init)(struct imx_mu_priv *priv); + int (*init)(struct imx_mu_priv *priv); enum imx_mu_type type; u32 xTR; /* Transmit Register0 */ u32 xRR; /* Receive Register0 */ @@ -737,7 +737,7 @@ static struct mbox_chan *imx_mu_seco_xlate(struct mbox_controller *mbox, return imx_mu_xlate(mbox, sp); } -static void imx_mu_init_generic(struct imx_mu_priv *priv) +static int imx_mu_init_generic(struct imx_mu_priv *priv) { unsigned int i; unsigned int val; @@ -757,7 +757,7 @@ static void imx_mu_init_generic(struct imx_mu_priv *priv) priv->mbox.of_xlate = imx_mu_xlate; if (priv->side_b) - return; + return 0; /* Set default MU configuration */ for (i = 0; i < IMX_MU_xCR_MAX; i++) @@ -770,9 +770,11 @@ static void imx_mu_init_generic(struct imx_mu_priv *priv) /* Clear any pending RSR */ for (i = 0; i < IMX_MU_NUM_RR; i++) imx_mu_read(priv, priv->dcfg->xRR + (i % 4) * 4); + + return 0; } -static void imx_mu_init_specific(struct imx_mu_priv *priv) +static int imx_mu_init_specific(struct imx_mu_priv *priv) { unsigned int i; int num_chans = priv->dcfg->type & IMX_MU_V2_S4 ? IMX_MU_S4_CHANS : IMX_MU_SCU_CHANS; @@ -794,12 +796,20 @@ static void imx_mu_init_specific(struct imx_mu_priv *priv) /* Set default MU configuration */ for (i = 0; i < IMX_MU_xCR_MAX; i++) imx_mu_write(priv, 0, priv->dcfg->xCR[i]); + + return 0; } -static void imx_mu_init_seco(struct imx_mu_priv *priv) +static int imx_mu_init_seco(struct imx_mu_priv *priv) { - imx_mu_init_generic(priv); + int ret; + + ret = imx_mu_init_generic(priv); + if (ret) + return ret; priv->mbox.of_xlate = imx_mu_seco_xlate; + + return 0; } static int imx_mu_probe(struct platform_device *pdev) @@ -866,7 +876,11 @@ static int imx_mu_probe(struct platform_device *pdev) priv->side_b = of_property_read_bool(np, "fsl,mu-side-b"); - priv->dcfg->init(priv); + ret = priv->dcfg->init(priv); + if (ret) { + dev_err(dev, "Failed to init MU\n"); + goto disable_clk; + } spin_lock_init(&priv->xcr_lock); @@ -878,10 +892,8 @@ static int imx_mu_probe(struct platform_device *pdev) platform_set_drvdata(pdev, priv); ret = devm_mbox_controller_register(dev, &priv->mbox); - if (ret) { - clk_disable_unprepare(priv->clk); - return ret; - } + if (ret) + goto disable_clk; pm_runtime_enable(dev); @@ -899,6 +911,7 @@ static int imx_mu_probe(struct platform_device *pdev) disable_runtime_pm: pm_runtime_disable(dev); +disable_clk: clk_disable_unprepare(priv->clk); return ret; }