From patchwork Tue Jul 14 07:52:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clark Wang X-Patchwork-Id: 11661905 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4BCC3913 for ; Tue, 14 Jul 2020 07:52:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2BA8A217D8 for ; Tue, 14 Jul 2020 07:52:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="E41YoIku" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726609AbgGNHwu (ORCPT ); Tue, 14 Jul 2020 03:52:50 -0400 Received: from mail-eopbgr00062.outbound.protection.outlook.com ([40.107.0.62]:64598 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725801AbgGNHwt (ORCPT ); Tue, 14 Jul 2020 03:52:49 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWBV/I7SshOz882CNBiSCOe8dTLqLdvoZi0yxIf57pXrJdjcbeM9kHNOvrbRjHvulx0NH6S/b2iTekxwEFl9RbBtdmJPkXmZVOa99pzW7M9XtJLzz37lawNA3ClA+8g5Y2G2UwPKpZHkFX1TsUU/5qke9hRriOJX3E4qxJ4ROo2WGhvQCjF8qiid0MATXq3om9j0ybOQNPQRFWTGJ1T6dkzt+/5tWlFrqWgSWF6P6QQVz/O3+LGnDPUOAdq1gzAiNzG0QOKDkByswSuwTbjKebjPZFlyyqAYD04Blq7MNF4/IGaupXR5V7/au+QRHv+gfCa0q18St83KqCWx1PXzfQ== 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-SenderADCheck; bh=jAX/VOWe5u6r0maIKiHNTQNUXXJ1/0Y1jndYh9bd8p8=; b=Pb30PB2dFquYkIdzxNzPv9HcJV17T1ix2EAc+w0Smj2Y2zUT5qUOX/y2UdPEhjOyyD3qcQg8KFoF76pZ373sYy0hgZUeVN6zoMOBf35cvaQM+rds3txFRXUcSP0tRgJRv4wutKRzsYqZMCNeyLTrkkBGa4i8HqDLzqfMsPUoAkv2wHp6KkER9F/n+XKYSWkPsu8XEi8MmyjDROWJD54s9OG5NGrCJAde7KqJSkn8Apug9fIgaO09IY4ZS8/t3lNxQQNoCS5/x4P4nSfDdn5ULu3UYhZ8rvSc0K8EzPeDNLC6fgzx8t51YMeqpIJwewZ7zRUAmks8TTd/lRqdKcXfYw== 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=jAX/VOWe5u6r0maIKiHNTQNUXXJ1/0Y1jndYh9bd8p8=; b=E41YoIkuSq4FfTs9v0w7z/UF414L1vSc2HEmBu3Zh6ei0d+7bxdovDxMOyljhrra6Jtor/DPndC0QOMgZ2JjvI7pPOilVAs3ZutKWY+3aehBhor60PcZdCDLeEjYsh2PKGgnzKE8mi3lW4L/WjBFatAYWYRSBGzgEUa0lRxHxhU= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) by AM6PR04MB4854.eurprd04.prod.outlook.com (2603:10a6:20b:e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Tue, 14 Jul 2020 07:52:45 +0000 Received: from AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694]) by AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694%5]) with mapi id 15.20.3174.026; Tue, 14 Jul 2020 07:52:45 +0000 From: Clark Wang To: broonie@kernel.org Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] spi: lpspi: fix the imbalance of runtime pm function call Date: Tue, 14 Jul 2020 15:52:47 +0800 Message-Id: <20200714075251.12777-2-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200714075251.12777-1-xiaoning.wang@nxp.com> References: <20200714075251.12777-1-xiaoning.wang@nxp.com> X-ClientProxiedBy: SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) To AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.71) by SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Tue, 14 Jul 2020 07:52:43 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: dec0f567-8b1d-43f3-a7b3-08d827cae4c0 X-MS-TrafficTypeDiagnostic: AM6PR04MB4854: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1002; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HzCOYGbJPrnuj3PKtpb61Wc+PupRLvDAcJ1bGJRQe/S430RqqjsT09ddfpJCcO0iMLgrAU079P4dWJoNzEILR1eaO1z45Gyfgxm9ia8KQ3VWAYjSdPzX84Oqfc8IiOC/0gGDQpHHF1gVGkawzTSUiD/Z6dKTs6I7fRnmvtuD1Y2IG1Okpg4lhT6+k8BkdICzJH0HKYnC9eKodSOlDFsnkoSYjb6iKtJjgmoga7+fYV7cwXDQAZHuvrCYy4H7p05XsNNerz9AvzTiNWZpphHlHaeeZteJuT95/4xk3GVm1LBjJ33YfHM9SvtZDP/OD5atygcxqrsc+DMDhe0+7YLihDUy1b50oSAdPZamS7anSNt/kp4pVWPNcvyELjjjYQ2k X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5623.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(39860400002)(376002)(366004)(396003)(346002)(136003)(66556008)(8936002)(66476007)(66946007)(86362001)(316002)(69590400007)(52116002)(5660300002)(6916009)(83380400001)(8676002)(2616005)(956004)(36756003)(6486002)(26005)(1076003)(6512007)(478600001)(2906002)(4326008)(16526019)(6506007)(186003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: RzP1+Rb5oVe54j4KEI8SLMyttQ9V8PY2T1u01KxFDnnkQ4dAfyCu8Wn2fD9JPXjNQtTF2MJsMq9aj0833Z2NwiKHjF6S7PvuIOhuoqSbc0YE/BRVUK8XOyfILHZYX/D38SVkdCTaqb/uI+3CHU32buvHbuPIb7c3OdlYJBrBUmQkmqVtTE2QjZ5raNjtHn8xb/kMQHTAB5hXDJjaIOsFGNzvxK5ezFmkmi/JwA9hF5kp2bLe3QMgBut/v8YtxQIWrAfb4ta65EgI+vHDaf5HI7eb9XaXaA0tL8fiQjJk4vqdeVPSZ+dnVMCkOl2/+lpAbRAJgXCPi/ugzEYntP44Ws0JAwmXqR//uYcEOgGN41EvO1cApnTCiXj8rDAgAo1i5Ulbu6/4xbyt8Wa0BQTGw4cl4F0E+5meDu5rKkBD77aT5RSVD8YumTpQxTSNDFL/SIV1q9YWk5msfO2y10sC88JbIGfqE65EgmivXkjuHxg= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: dec0f567-8b1d-43f3-a7b3-08d827cae4c0 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5623.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2020 07:52:45.2630 (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: 2xephH3Vmwik1/GCWAGVZ+FK+Nr6o4R6TyGA5bWYgC5F4vzt4rz0erYA/LtGrfQSauw52/2Ms2QutFKbCPWnQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4854 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Call the put function after probe successfully. Otherwise, the lpspi module will keep active status until the first spi transfer called. Disable runtime pm when probe fails. There is no need to active runtime pm after probe failed. Signed-off-by: Clark Wang --- drivers/spi/spi-fsl-lpspi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c index 1552b28b9515..a1555bbc5e5a 100644 --- a/drivers/spi/spi-fsl-lpspi.c +++ b/drivers/spi/spi-fsl-lpspi.c @@ -954,10 +954,15 @@ static int fsl_lpspi_probe(struct platform_device *pdev) if (ret < 0) dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret); + pm_runtime_mark_last_busy(fsl_lpspi->dev); + pm_runtime_put_autosuspend(fsl_lpspi->dev); + return 0; out_pm_get: - pm_runtime_put_noidle(fsl_lpspi->dev); + pm_runtime_dont_use_autosuspend(fsl_lpspi->dev); + pm_runtime_put_sync(fsl_lpspi->dev); + pm_runtime_disable(fsl_lpspi->dev); out_controller_put: spi_controller_put(controller); From patchwork Tue Jul 14 07:52:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clark Wang X-Patchwork-Id: 11661907 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2A9D9138C for ; Tue, 14 Jul 2020 07:52:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 13944217D8 for ; Tue, 14 Jul 2020 07:52:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="m2rzlWfZ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726748AbgGNHwv (ORCPT ); Tue, 14 Jul 2020 03:52:51 -0400 Received: from mail-db8eur05on2057.outbound.protection.outlook.com ([40.107.20.57]:6064 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725793AbgGNHwu (ORCPT ); Tue, 14 Jul 2020 03:52:50 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AQ3THLXr/iEfKxbxIzUSNTTUbnMnk13pwCVpuvO08nEZ6yVS5wr17pS9JrtkZkCKBbo+Vl8TywxmEVeszCnFKPzYxyNR/i8IbZV4HWN6ErYj8Y82LG9QwGgZPlGXlaM+eHl5lHOfuF/HR+IUwc2VmTI/W0lsGKDFo/BQlpVRgrlyLbGE6p+Kw2BPghwBnhcWWlVd2JprossCIZ1yhIWwNEu9duqYMYi5xT7nvrXh/3m1UDgJlSwOIZwccQmO06f324vXh/jCvDAjc2rvhUkktZLmVm6j0HDNF1FuGOxD6rjuCcS7jEaAq07NWWRQVo/xEghjYxTDwVT9/KYCapD0sw== 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-SenderADCheck; bh=7PFABFUyuHGED8ObVRDpvfA9foCjM/3PTWXVZgZp5/o=; b=D2kMPhwXTfoh1LKku0QRk/mE+GHve7/BZbzea0qQ+BPN/U2UypS6GBZL3Sy1edxsWvfJxQ27NT/Bk393tGZQrRFlQJ9iraJfIu8xg5AU4acoMil4HtjG6QVew7n+MvBE0y/NpWfhQlmhkYF0vjyaplyge1lFQppjx301rqxhemCXwaLNwUbSwfXcls/gPW2LP5Tg5cJ7SZpBAzxXwqlnaVilPZMl2qbuUVx3SQ923j1858kYkKybM8usv+Kao4Ktk+dgQxBkZAlZ0z1S/mMYUv8QaJxVav6fAaywqLFRgbHPvsUolsKQoVq2qZRSB1+923VXlGngTWBcTC7H6F55kw== 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=7PFABFUyuHGED8ObVRDpvfA9foCjM/3PTWXVZgZp5/o=; b=m2rzlWfZaShkIlHn5DKFIlptbmuvzmILPDiYH01U911mFagTiPpTAnpBWRhOkdG8FFLoQiSpHuRM6tJVPmtcexPiVO2UrBc4z2syWvi6EpaVJ22dwrpAH1f1wegd6p5IuoddTEAJRSsbpn+nNnvQpsNOoKuulOvueo/cARRuLMo= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) by AM5PR04MB3139.eurprd04.prod.outlook.com (2603:10a6:206:8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.23; Tue, 14 Jul 2020 07:52:47 +0000 Received: from AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694]) by AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694%5]) with mapi id 15.20.3174.026; Tue, 14 Jul 2020 07:52:47 +0000 From: Clark Wang To: broonie@kernel.org Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] spi: lpspi: add NULL check when probe device Date: Tue, 14 Jul 2020 15:52:48 +0800 Message-Id: <20200714075251.12777-3-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200714075251.12777-1-xiaoning.wang@nxp.com> References: <20200714075251.12777-1-xiaoning.wang@nxp.com> X-ClientProxiedBy: SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) To AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.71) by SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Tue, 14 Jul 2020 07:52:45 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7c9585c8-6d54-4d61-06d0-08d827cae5fc X-MS-TrafficTypeDiagnostic: AM5PR04MB3139: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J4i1ikjLABxL7DIu8lDD+2ZJvhGQBGD+U4VmWsJClH4Mp4b1Hb+MSAiIJmUjPl7d4bLvbtl9p2q7b0WfYuNsmDhe9Jv2ydq3ilLtPu9gpRCVKq4mr8DhERRuqaNSOP1QumnlJoDYPtkwLcfLtY/UsJXYuSXo1sYfLIfWtN1lrMI7iIgw/HgafA7oyTUkH2KVmSRgBouiQi3Qx2J6Wk2jrpAEzm6VoHR8PJBMZMgVWKUAtOvda0J20PEdZZJJbKNnx2zIIReNd0KBA35Ij6ISKRNPY/zak4KuXSobFT6mWyMcOpHIECdPhjDYY0+bN0eKhKJSJdi2DkOtRmXmg8I9Opg3OCA6lgfu5tP0N1B2/XO7/AupqVp5uG/DEtSUYDT4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5623.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(136003)(366004)(346002)(376002)(6506007)(6486002)(6512007)(52116002)(8936002)(2906002)(16526019)(36756003)(26005)(5660300002)(6916009)(86362001)(478600001)(186003)(316002)(66556008)(66476007)(8676002)(4744005)(2616005)(956004)(4326008)(66946007)(1076003)(69590400007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: IX0Sy0L6Cs9LJRfJqUNegi48OUEjuSTRx6KFn95sbTJ9uHtHHXJaucU8pTH9qHGUSCU/hfNzKjgyd8UXlGxC0NpqRtNX+kKVMxxn64BdmCHWnEFQ3oq9c2vHp+LuYYAUZbUglYvFBMukCPH3xZGP0ARE8UsH6Ibqe/tB9MnaiE2CAyxY36Bw4dOgeFBb9Go7Ch7SSpy1wO6g1R2QeZab68HqeZ69/7A9pd6oQ52ayX1PmTXclzSNSa93Sp091c18ZyQdYlV9QBpHppj7aZ6aL2e44R9wS9xvFBcMhA9719FXu6BLOl5hcTTvRWX+WRYYWcrId9fK8Db8unQPpkWZkLvCT2ItIyJSLjecr0stpKRT/5crTNTjwvyt02o2pFoaZELncSkn6MYnWH0x/oN8CW746CsNBqCdiitnxKf29EPidSAG98Tw4L2CX1m4UqXaVRJM7EiK2/21wT7J+3j1mLMzbHOIrJZEGUjjmM8kH3I= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c9585c8-6d54-4d61-06d0-08d827cae5fc X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5623.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2020 07:52:47.2369 (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: 7QrWjy6cuS0PeSRQFyQL3U+nr7NtIMZEuU9tZxaLijKPA3SWqW8w+xjcx3Hq6YOVjSQPke1sudDbN57o19lSOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB3139 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Add a NULL check for device node and lpspi_platform_info when lpspi device probe. Signed-off-by: Clark Wang --- drivers/spi/spi-fsl-lpspi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c index a1555bbc5e5a..ca43d93adf30 100644 --- a/drivers/spi/spi-fsl-lpspi.c +++ b/drivers/spi/spi-fsl-lpspi.c @@ -841,6 +841,11 @@ static int fsl_lpspi_probe(struct platform_device *pdev) u32 temp; bool is_slave; + if (!np && !lpspi_platform_info) { + dev_err(&pdev->dev, "can't get the platform data\n"); + return -EINVAL; + } + is_slave = of_property_read_bool((&pdev->dev)->of_node, "spi-slave"); if (is_slave) controller = spi_alloc_slave(&pdev->dev, From patchwork Tue Jul 14 07:52:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clark Wang X-Patchwork-Id: 11661913 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 770D0913 for ; Tue, 14 Jul 2020 07:53:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5699221841 for ; Tue, 14 Jul 2020 07:53:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="EqJ3SBi2" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726809AbgGNHwz (ORCPT ); Tue, 14 Jul 2020 03:52:55 -0400 Received: from mail-db8eur05on2057.outbound.protection.outlook.com ([40.107.20.57]:6064 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726734AbgGNHwy (ORCPT ); Tue, 14 Jul 2020 03:52:54 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HP2lS9zPXRL8VHEz1DdQTG26kvWSP2olJ7KmeEcIGj5ftoh1stdZu1gF3qJt5OAfYZVinrrU57uDwIhbLy0aVpxcr4GtfFqm2U0jVJOveIrrwtNgV9AVQKITPqkmaGkOd+1aEpGLi0j8tCczCUvbGS6KMgF059GIhBzJcM4NkpokNOsK8Ul2Ir8rZgT8EK4v/64C2ckh4RHCtUu4//wtijxEY3WM72MlBQ1Fd2HZXdZs0ZQA8NUPtTmH6MuiFZGBvfdrtxFx5/hrcGEqn3ogUOwPA4s734BhqAMATknJBUW4MvVIFq8rvJ6MlAmAxpofnkNhVqmOUuFRrNbRuTcvMA== 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-SenderADCheck; bh=cIyHQ/+ST9bDWSNEUdiUGBheGh53smk7iVf+7CuqPdc=; b=crfYEOoL6HeSKlmpZTMsUSyuSHwUOsQOH26MfMMfckRvznuN+0YS0n8uxk1/IWY6z2YtFT6D7E07JaZr+j7MgNkpno7dRz68PrcAt09m2akPSsXW8goudnzGBG7bUXHL8qdQVFblaVDKh2+eCCBHCj8m8E2WRXWMftHzkXsILOX4QYEgoIhmlzVOAsdNTGYwBdhYVXjR9Eg3Mzpv+TaWWPd6q0c2JumGObEWK2nW5GOp3pyuPm2ux66GF+nCD7EOlUF+lzJJk+S0nUpwrvob4rN+roWNycQHu7BG39DTKlCkmiQdGX7GfQ0ykAUCgY5w2jeFVnZoog6X54Nustjbfg== 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=cIyHQ/+ST9bDWSNEUdiUGBheGh53smk7iVf+7CuqPdc=; b=EqJ3SBi21jWI/pR/dAP2FrRET+iyrA87LTOoz3OsBf+/qYm8QBroLToJprIESgGIiun1CPoDQQwJU0nbhkChR8/Bm7KmlJd6N831tW+NbFQ+I7Z+9hJEB+sjbwc5cjQazO25GVAqxO+KeaADEyImhG1lKof43cg5YKuFtlsNx40= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) by AM5PR04MB3139.eurprd04.prod.outlook.com (2603:10a6:206:8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.23; Tue, 14 Jul 2020 07:52:49 +0000 Received: from AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694]) by AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694%5]) with mapi id 15.20.3174.026; Tue, 14 Jul 2020 07:52:49 +0000 From: Clark Wang To: broonie@kernel.org Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] spi: lpspi: fix kernel warning dump when probe fail after calling spi_register Date: Tue, 14 Jul 2020 15:52:49 +0800 Message-Id: <20200714075251.12777-4-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200714075251.12777-1-xiaoning.wang@nxp.com> References: <20200714075251.12777-1-xiaoning.wang@nxp.com> X-ClientProxiedBy: SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) To AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.71) by SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Tue, 14 Jul 2020 07:52:47 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 97910300-949c-432b-487d-08d827cae72a X-MS-TrafficTypeDiagnostic: AM5PR04MB3139: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GR8FTEfsw4qyF7MRWqU9V8a5VTnbMsc7Ddd3Ldj2abYV+aB23eF4oJTh1unoB/CtlsPsX2ZvPCrnufHDpFLwZ1jvgZanK0bSbJso08t07B5NHSWsxMqKja3ApUgcRcBuOerJ/q8U6WMRPAaV40oz8F8fJrFvFY0/fltBFumt0DQfy3YDobr7+NF6hcwtlCsv/56vVX/hSeNAETtcnynt/EZBvjSYUV8DwdtcP6xNCa6OzRc3LvqsFBDIVSQo5IniAgPp5VDkg4aVOV6Q1S6cZY8kiETIXL3Kvb89CX20LN4rjsdFIGqKvUL04Fg9UcRcxOZooE4ZVngrQo29xfmYVnNwf0xroRqLkgX/gjs5SlHOkQmoqI4Bf3/jahrZjSxX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5623.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(136003)(366004)(346002)(376002)(6506007)(6486002)(6512007)(52116002)(8936002)(2906002)(16526019)(36756003)(26005)(5660300002)(6916009)(86362001)(478600001)(45080400002)(186003)(316002)(83380400001)(66556008)(66476007)(8676002)(2616005)(956004)(4326008)(66946007)(1076003)(69590400007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: UPSrwK7121dpwXiTTdZ51h1SrvYATzJrHVV5pbJJcLQW1AcOsAwwHvTUVMJ8m/R9L4wXZYltU3NALM4uVR3Qo2Yhq5PnKEQNCYSEVE+icrrnJNYruUmLC3k8xNmtI9Bw6ydst+hzye10+NUWTpIJGjcCgJA+PvLS7eP8Zx3NVcJAt2kqryZz79+ps5GY9Z/T6hUoGT1n21RSGrpRJRCapUb9w0CaGgbMdcsePSjXQsolWwhd9hi3+w0wdgjx4MNhllugYkQt9Mk9zS7Uu5A29SKapANCcP1d9pyDHJKcCaQITw7jleqmrfKWm+A2ASTjrI/qT9Jr37ftwTbqSn5q+NHi6hrpCIyUXjHHe5plxNW0oBICgVrNJj7Ytk7SbxZBZWycLBQmM4ba1nn/QZZGqNe+ImsMYszFq8tQeFuniJp9i9NdvpvcD+ohjxGpQfyVEiKBB2rXM3maeBer5uziom+mPHPSSOFQmaucq5YLO9c= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 97910300-949c-432b-487d-08d827cae72a X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5623.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2020 07:52:49.1598 (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: yAAthPYJBQJCwO2XysrFk4ISoEz0Ro3jb5X2Lo5qObYNXjcEXcKOTfCM0DfIYNz62f/SA72SZvwLF8NZ71zm/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB3139 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Calling devm_spi_register_controller() too early will cause problem. When probe failed occurs after calling devm_spi_register_controller(), the call of spi_controller_put() will trigger the following warning dump. [ 2.092138] ------------[ cut here ]------------ [ 2.096876] kernfs: can not remove 'uevent', no directory [ 2.102440] WARNING: CPU: 0 PID: 181 at fs/kernfs/dir.c:1503 kernfs_remove_by_name_ns+0xa0/0xb0 [ 2.111142] Modules linked in: [ 2.114207] CPU: 0 PID: 181 Comm: kworker/0:7 Not tainted 5.4.24-05024-g775c6e8a738c-dirty #1314 [ 2.122991] Hardware name: Freescale i.MX8DXL EVK (DT) [ 2.128141] Workqueue: events deferred_probe_work_func [ 2.133281] pstate: 60000005 (nZCv daif -PAN -UAO) [ 2.138076] pc : kernfs_remove_by_name_ns+0xa0/0xb0 [ 2.142958] lr : kernfs_remove_by_name_ns+0xa0/0xb0 [ 2.147837] sp : ffff8000122bba70 [ 2.151145] x29: ffff8000122bba70 x28: ffff8000119d6000 [ 2.156462] x27: 0000000000000000 x26: ffff800011edbce8 [ 2.161779] x25: 0000000000000000 x24: ffff00003ae4f700 [ 2.167096] x23: ffff000010184c10 x22: ffff00003a3d6200 [ 2.172412] x21: ffff800011a464a8 x20: ffff000010126a68 [ 2.177729] x19: ffff00003ae5c800 x18: 000000000000000e [ 2.183046] x17: 0000000000000001 x16: 0000000000000019 [ 2.188362] x15: 0000000000000004 x14: 000000000000004c [ 2.193679] x13: 0000000000000000 x12: 0000000000000001 [ 2.198996] x11: 0000000000000000 x10: 00000000000009c0 [ 2.204313] x9 : ffff8000122bb7a0 x8 : ffff00003a3d6c20 [ 2.209630] x7 : ffff00003a3d6380 x6 : 0000000000000001 [ 2.214946] x5 : 0000000000000001 x4 : ffff00003a05eb18 [ 2.220263] x3 : 0000000000000005 x2 : ffff8000119f1c48 [ 2.225580] x1 : 2bcbda323bf5a800 x0 : 0000000000000000 [ 2.230898] Call trace: [ 2.233345] kernfs_remove_by_name_ns+0xa0/0xb0 [ 2.237879] sysfs_remove_file_ns+0x14/0x20 [ 2.242065] device_del+0x12c/0x348 [ 2.245555] device_unregister+0x14/0x30 [ 2.249492] spi_unregister_controller+0xac/0x120 [ 2.254201] devm_spi_unregister+0x10/0x18 [ 2.258304] release_nodes+0x1a8/0x220 [ 2.262055] devres_release_all+0x34/0x58 [ 2.266069] really_probe+0x1b8/0x318 [ 2.269733] driver_probe_device+0x54/0xe8 [ 2.273833] __device_attach_driver+0x80/0xb8 [ 2.278194] bus_for_each_drv+0x74/0xc0 [ 2.282034] __device_attach+0xdc/0x138 [ 2.285876] device_initial_probe+0x10/0x18 [ 2.290063] bus_probe_device+0x90/0x98 [ 2.293901] deferred_probe_work_func+0x64/0x98 [ 2.298442] process_one_work+0x198/0x320 [ 2.302451] worker_thread+0x1f0/0x420 [ 2.306208] kthread+0xf0/0x120 [ 2.309352] ret_from_fork+0x10/0x18 [ 2.312927] ---[ end trace 58abcdfae01bd3c7 ]--- So put this function at the end of the probe sequence. Meanwhile, in order to keep the multi-CS working, add "fsl,spi-num-chipselects" check. Signed-off-by: Clark Wang --- drivers/spi/spi-fsl-lpspi.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c index ca43d93adf30..6fb77f0f657a 100644 --- a/drivers/spi/spi-fsl-lpspi.c +++ b/drivers/spi/spi-fsl-lpspi.c @@ -837,7 +837,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev) struct spi_imx_master *lpspi_platform_info = dev_get_platdata(&pdev->dev); struct resource *res; - int i, ret, irq; + int i, ret, irq, num_cs; u32 temp; bool is_slave; @@ -859,6 +859,16 @@ static int fsl_lpspi_probe(struct platform_device *pdev) platform_set_drvdata(pdev, controller); + ret = of_property_read_u32(np, "fsl,spi-num-chipselects", &num_cs); + if (ret < 0) { + if (lpspi_platform_info) { + num_cs = lpspi_platform_info->num_chipselect; + controller->num_chipselect = num_cs; + } + } else { + controller->num_chipselect = num_cs; + } + fsl_lpspi = spi_controller_get_devdata(controller); fsl_lpspi->dev = &pdev->dev; fsl_lpspi->is_slave = is_slave; @@ -873,12 +883,6 @@ static int fsl_lpspi_probe(struct platform_device *pdev) controller->bus_num = pdev->id; controller->slave_abort = fsl_lpspi_slave_abort; - ret = devm_spi_register_controller(&pdev->dev, controller); - if (ret < 0) { - dev_err(&pdev->dev, "spi_register_controller error.\n"); - goto out_controller_put; - } - if (!fsl_lpspi->is_slave) { for (i = 0; i < controller->num_chipselect; i++) { int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); @@ -959,6 +963,12 @@ static int fsl_lpspi_probe(struct platform_device *pdev) if (ret < 0) dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret); + ret = devm_spi_register_controller(&pdev->dev, controller); + if (ret < 0) { + dev_err(&pdev->dev, "spi_register_controller error.\n"); + goto out_pm_get; + } + pm_runtime_mark_last_busy(fsl_lpspi->dev); pm_runtime_put_autosuspend(fsl_lpspi->dev); From patchwork Tue Jul 14 07:52:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clark Wang X-Patchwork-Id: 11661909 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BBEA2138C for ; Tue, 14 Jul 2020 07:52:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C96C21835 for ; Tue, 14 Jul 2020 07:52:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="URDaHSGM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726796AbgGNHwy (ORCPT ); Tue, 14 Jul 2020 03:52:54 -0400 Received: from mail-eopbgr00056.outbound.protection.outlook.com ([40.107.0.56]:35812 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725801AbgGNHwx (ORCPT ); Tue, 14 Jul 2020 03:52:53 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bo72srigKPrLumzK52fTRRwy2A67LSsGw43pzhft9VXxGVKsXCJhovXzzAUsnMViaeN4IOYGYHHeUOS9BgGH0Wt/3itzD2+vH31OhlypSnvoGnqpq8o/FzYwEgzh19XHTrRjOGJJYVJMZzX8zjALLIPOkVWoZ71OIcumI1eouhwg0dh9VHvpyyYmRDhrrIfNn5eNvhKMM2HstwGl1TKVjGQjczTTzwQlm/kCR/zjq+0X9tjQF61PYs5yF+wNAvI+q615wnq46WG6hqRSmSDOAQRTvGwbU78KryMRP/d6N4Z9+Ralp20MKSkMvCV7q+I/MTfW31QXxyZxvMGefCPxbg== 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-SenderADCheck; bh=BUQJSulBVBN9IJjpTdanbvR6wuYBkvQRquEWqqS9tVY=; b=Trot/W1O59btJBs1WqobFqwIPIfXIP22MXQl6GUeA+bB/sw96iDUDfocXKHvqO8Uzsy3cCcK6c1JO5/U9/bd3xe+IxUp/qnW9rrX9wWgelD8zmtz0eflzA68kaqiUkm2gEmGaciX/j6F4xAMq8FuOjZWTmebeoaqv0KJdhC+ysyJ/LOo+bZe0uonu/K3FKyUVa/2f+qFbUNX3BjtQmojuQEALTkDWXAkhFul3/3Y5mpP+Mpc2b5yFZa0K/Th8mwvq/92lRA5IMVSkB1WeAyUu/mXq5d9bUUAJrrySbv9oliXmKefGrsozK0ltX39u1INUNmaL1FRoTUVBcjBw6/Klw== 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=BUQJSulBVBN9IJjpTdanbvR6wuYBkvQRquEWqqS9tVY=; b=URDaHSGMjqDtOW2zV/HY5SYcaVpj+mcizHXViX1S24B+BTmBiap2TNGfWwF4QDuCsp+dCxFuRfocGucIU1RcKnNpSBVoJ5UFTwTdTRyY30pSbqev1k/tpHquAZvUriEyn7qyKJA/8RJqaU6sT6u+w2f7EJmyxkbavSEfgO1sb7M= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) by AM6PR04MB4854.eurprd04.prod.outlook.com (2603:10a6:20b:e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Tue, 14 Jul 2020 07:52:51 +0000 Received: from AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694]) by AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694%5]) with mapi id 15.20.3174.026; Tue, 14 Jul 2020 07:52:51 +0000 From: Clark Wang To: broonie@kernel.org Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] spi: lpspi: handle EPROBE_DEFER when get cs-gpios number Date: Tue, 14 Jul 2020 15:52:50 +0800 Message-Id: <20200714075251.12777-5-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200714075251.12777-1-xiaoning.wang@nxp.com> References: <20200714075251.12777-1-xiaoning.wang@nxp.com> X-ClientProxiedBy: SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) To AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.71) by SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Tue, 14 Jul 2020 07:52:49 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a930526f-de59-46ff-4986-08d827cae852 X-MS-TrafficTypeDiagnostic: AM6PR04MB4854: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z60Zbmjh1nkYK+R3FhVj8Rgo3JJ8j1Imzm0ljZ+TybMIgwoG384rWmrEBfKCg0vdfa5W/YXDLr7eg9D4OCuL1L/JHtXar0WwuvNuDrHwmFEND0jZ4EtAgk9H2AErcDnbBowHBkttWA6+ZR57GiStq/PHP02xJEGh9Pax1Sp1nn87aibYUcyUtWAXwPk1OeSyOH+2DLe1iGQgrt+KWxT3jQpIb2H36KsV6ZV8WytDEtGq+4AFbFz4XHKtC7xIAbuKZISoISo3fDMm+AuiUV1tYGPaGfHshcSfg8U4bOeVChfRu65inZfdszDav6vcgH82TBNowxFFeGRwq33iC3QQvCsSx0hkSqy6kh0AfQDWlv/eyToWzmWryPYxL1nIDRxe X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5623.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(39860400002)(376002)(366004)(396003)(346002)(136003)(66556008)(8936002)(6666004)(66476007)(66946007)(86362001)(316002)(69590400007)(52116002)(5660300002)(6916009)(8676002)(2616005)(956004)(36756003)(4744005)(6486002)(26005)(1076003)(6512007)(478600001)(2906002)(4326008)(16526019)(6506007)(186003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: S39qZrTM6iScGjosOGDKJ+oQ7fd1DYWd57I/mCsYIt4W4kFui042Hs/eftC61nat7wJq3HCAyb0ycAmnRA/mhxIWpuEk46MaDdJIxO0I8g8rQQt0v1QTFVKkUVxbGG5LlTD/OzMCcY21kZTYqABFbL6J15luweIEjH2shvTu9yexSdvwoBVTqYse+zjmgzg8puyXc5BNvDWIJX19EnqShnYEgPVGr7GGzxUMZn5wwfaD5ryiJe6HX82JSEjbXAzt8m82grSbrTwBTu7rg3R4PL31NA5OWPVCwMhr8kNxEPJhQMXp82ntLFD8a9K/LOlw4zjL90kXIkRSsPvgNhj3O5qxCFrhVdDLepJqTdFHVrIAwI7J9XuSW7iPDu8prRVBEi83jDUuMK/vhhc98Yalu4znb625MZPl/7ZKtx5MBuzbqEg1DuRlmiE3SHhMlxhNFvZNES4+JtBYDoKtDMzoJCeFdFfsRDGjGujM1FSzjjU= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a930526f-de59-46ff-4986-08d827cae852 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5623.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2020 07:52:51.1416 (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: 3kkkzO9hEHgDSAWz+V/lPl90TjtHN04JiCbL/7MCtGhSKjfQWSUwLefKQeu0Ry4/mel4yehafThStDqWWP66GA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4854 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org From: Fabrice Goucem If SPI is probed before the GPIO driver, it may miss the cs-gpio configuration in dtb. Add defer probe handler to wait GPIO driver probe. Signed-off-by: Fabrice Goucem Signed-off-by: Clark Wang --- drivers/spi/spi-fsl-lpspi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c index 6fb77f0f657a..05b6ecd82974 100644 --- a/drivers/spi/spi-fsl-lpspi.c +++ b/drivers/spi/spi-fsl-lpspi.c @@ -887,6 +887,11 @@ static int fsl_lpspi_probe(struct platform_device *pdev) for (i = 0; i < controller->num_chipselect; i++) { int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); + if (cs_gpio == -EPROBE_DEFER) { + ret = -EPROBE_DEFER; + goto out_controller_put; + } + if (!gpio_is_valid(cs_gpio) && lpspi_platform_info) cs_gpio = lpspi_platform_info->chipselect[i]; From patchwork Tue Jul 14 07:52:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clark Wang X-Patchwork-Id: 11661911 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 515E3913 for ; Tue, 14 Jul 2020 07:53:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 392F020C56 for ; Tue, 14 Jul 2020 07:53:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="TVsel+Yq" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726843AbgGNHxA (ORCPT ); Tue, 14 Jul 2020 03:53:00 -0400 Received: from mail-eopbgr00056.outbound.protection.outlook.com ([40.107.0.56]:35812 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725793AbgGNHw4 (ORCPT ); Tue, 14 Jul 2020 03:52:56 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fE2H/Rwn9nJeViGzz4r7N7oxEPv5AidmlWl9i9kqTf5GuG8X0QH5m14B2zZ6Wj5YN+RN2kXbac24TOJwwSKPOvcbyOrvJFAIiymEJEpVbRp4+NfkvJk0Bz9KETRC1BJSzHpySwuZHUC8Br50Ef/EZFWUHsiWZB7nY+D12CbKF1IjkScYyzi0CNV76H8FDixL1+LGPJ0OLMm3Fmg58Hr8qCW8bhlaL+Hh9GQ46XoIuCksVbyWo/bzl0Y2tu48wfHBxQLZxFjNwZYUFOc+6Qr984ntKz7wAkLiSxnOxoUW2YMsAlG7Kd1ptvvaN4VFI2DUJ/a+MP7ylXx/hy+kJSiJRA== 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-SenderADCheck; bh=onCOD16eWwZHuHHvKpJzSHjqb+pPqi5wyJDP/Suhuuc=; b=bK21nR8nBh1BlO6ijuSVv+SObCZtA/SH0xrZ0Kei9WS6gsYYmidijgTdqilvGEuP4r5v/A1fGsUK0qFdRh+NCwc2waCJBNSV4/fIzm3I0Ve0heTv15qH3GuGlmlBLcHqsSUxJgALHvqUpnq2ijImL9WIwxSM5KSRUIQ6Wf8bdg9djBnUNuBoRwSQV9+dFspYBaeJcfdq2oSfdT/7BooZ3cNBBvxbS/1GHXugruXcDPb7RvQuSkjejnwW/YwYYMc8SxBCrfsnnySmGSOJk6xDJeEhAlNk1OiKrd5F//Ht93TrASdE6Z+h5AlCp8QAe+jXynjxn84LnLIGrj4sJhJtew== 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=onCOD16eWwZHuHHvKpJzSHjqb+pPqi5wyJDP/Suhuuc=; b=TVsel+YqYdFUXSfqRU7JJZmps/5HZfFaRLIjbwgdKU3el3yftNj9bBhSRaF14SD7HsJUqx9DLum0LDn9E8Li550LztQupRWQHzJILPi2muGTlo1xIFNbP/3KPyp3B9u49aW3JD9yvlOovc5Pdg4oOSXLiXLquFaLPO87uqf9WMQ= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) by AM6PR04MB4854.eurprd04.prod.outlook.com (2603:10a6:20b:e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Tue, 14 Jul 2020 07:52:53 +0000 Received: from AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694]) by AM6PR04MB5623.eurprd04.prod.outlook.com ([fe80::ccb9:b047:d156:2694%5]) with mapi id 15.20.3174.026; Tue, 14 Jul 2020 07:52:53 +0000 From: Clark Wang To: broonie@kernel.org Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] spi: lpspi: fix using CS discontinuously on i.MX8DXLEVK Date: Tue, 14 Jul 2020 15:52:51 +0800 Message-Id: <20200714075251.12777-6-xiaoning.wang@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200714075251.12777-1-xiaoning.wang@nxp.com> References: <20200714075251.12777-1-xiaoning.wang@nxp.com> X-ClientProxiedBy: SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) To AM6PR04MB5623.eurprd04.prod.outlook.com (2603:10a6:20b:a9::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.71) by SG2PR0401CA0013.apcprd04.prod.outlook.com (2603:1096:3:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Tue, 14 Jul 2020 07:52:51 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 428720c2-c2d5-418a-07ff-08d827cae98f X-MS-TrafficTypeDiagnostic: AM6PR04MB4854: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PY8g2hPUDl2d7eXBdpD7b1K4FBOkaJGBXnTjMd2hmF7Fe9cUk4VsKQvG0fHpiOAqv66dDT3AKBqpgNbEDg5e2fKR1Gy3+/iXu6+j3h1NXvW1DwnFeTeTMu6vyY/vDXeDwhbd9O/NCZ8aMCLc75j0jnelyGzIDwlJZ4Iz38h2jZU/HbiHbl4kX7K83C9xAYmhMiiwFddHtA9IKr9dm8ERlLfRNcAHHI+d0E5m+gsBz1fSoGTASlFE+5fo07SfzfLnNY3jD59EoYW/G2T4WIXy6wJ6u9z4zemax9ogbfAxBf20jq+GHgGP7mgB7Io45lXHRlm/9MGDv/wA4UtJM8K6OkzU1ejKCMlmgLjxFEaHh7MdbYONuHlxS+fq4KMNnjLr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5623.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(39860400002)(376002)(366004)(396003)(346002)(136003)(66556008)(8936002)(66476007)(66946007)(86362001)(316002)(69590400007)(52116002)(5660300002)(6916009)(83380400001)(8676002)(2616005)(956004)(36756003)(6486002)(26005)(1076003)(6512007)(478600001)(2906002)(4326008)(16526019)(6506007)(186003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Wzv0nOVXw85nkn6kiSuI5eTCiv38ADrw9qM+CN0sCNEyzAPxPdyRfLyZnNma0s+vJhrhmnrHlB9tzDN1wWoPT0hVV2aUYwE4wwjgbZ95no9IVq1LGdvuxqzO6uC/iuPWAwTu0XRrxZNuejc+/QDr7URVxrLztaa27atNrGQbeN6BhmuaFLo26sbglQfN3yu2mvX8WDw7ArYOb7nC+lykSzEQ6MbpkbCPbXbo8+fZfLjb3JpBILeCntSWUqsBAwf5xLRloQvy+F7YDVZTBZlDaMQCa7ASbrQpZNPfI+q6EVKor+tNY8tNyOPURYD6kRLCYtsXC/ZI+98TyiOVpNqqSF6F83mdCTtg3FXTmXrpoREGDWNOemfMBraHeG2IvlMhY9DM2Y/HwrOiCCPII9D3Lqz09NTCeSbfT6z5turjaBUMK9U8L4QJucq1F96/pv7ZZ6o3PVWXMtPw5t/JGl+1+tTOt+dSosC2HKv/6Rh+ALY= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 428720c2-c2d5-418a-07ff-08d827cae98f X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5623.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2020 07:52:53.3874 (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: zTqATb+NjOaJIIufTPDlwYVjqy2/LwFUFIPhKuPfnfnYYRgB9QOOPrsjP2dXiY6Wokw8T5QypvvOSrbeCS1qVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4854 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org SPI common code does not support using CS discontinuously for now. However, i.MX8DXL-EVK only uses CS1 without CS0. Therefore, add a flag is_only_cs1 to set the correct TCR[PCS]. Signed-off-by: Clark Wang --- drivers/spi/spi-fsl-lpspi.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c index 05b6ecd82974..3f722f8f143f 100644 --- a/drivers/spi/spi-fsl-lpspi.c +++ b/drivers/spi/spi-fsl-lpspi.c @@ -101,6 +101,7 @@ struct fsl_lpspi_data { struct clk *clk_ipg; struct clk *clk_per; bool is_slave; + bool is_only_cs1; bool is_first_byte; void *rx_buf; @@ -276,10 +277,9 @@ static void fsl_lpspi_set_cmd(struct fsl_lpspi_data *fsl_lpspi) temp |= fsl_lpspi->config.bpw - 1; temp |= (fsl_lpspi->config.mode & 0x3) << 30; + temp |= (fsl_lpspi->config.chip_select & 0x3) << 24; if (!fsl_lpspi->is_slave) { temp |= fsl_lpspi->config.prescale << 27; - temp |= (fsl_lpspi->config.chip_select & 0x3) << 24; - /* * Set TCR_CONT will keep SS asserted after current transfer. * For the first transfer, clear TCR_CONTC to assert SS. @@ -440,7 +440,10 @@ static int fsl_lpspi_setup_transfer(struct spi_controller *controller, fsl_lpspi->config.mode = spi->mode; fsl_lpspi->config.bpw = t->bits_per_word; fsl_lpspi->config.speed_hz = t->speed_hz; - fsl_lpspi->config.chip_select = spi->chip_select; + if (fsl_lpspi->is_only_cs1) + fsl_lpspi->config.chip_select = 1; + else + fsl_lpspi->config.chip_select = spi->chip_select; if (!fsl_lpspi->config.speed_hz) fsl_lpspi->config.speed_hz = spi->max_speed_hz; @@ -872,6 +875,8 @@ static int fsl_lpspi_probe(struct platform_device *pdev) fsl_lpspi = spi_controller_get_devdata(controller); fsl_lpspi->dev = &pdev->dev; fsl_lpspi->is_slave = is_slave; + fsl_lpspi->is_only_cs1 = of_property_read_bool((&pdev->dev)->of_node, + "fsl,spi-only-use-cs1-sel"); controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32); controller->transfer_one = fsl_lpspi_transfer_one;