From patchwork Tue Aug 15 09:46:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiaowei Bao X-Patchwork-Id: 801519 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xWp2g47xLz9s8J for ; Tue, 15 Aug 2017 20:03:22 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 42B2AC21DE3; Tue, 15 Aug 2017 10:03:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAD_ENC_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8B6DBC21DCE; Tue, 15 Aug 2017 10:03:09 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 69E46C21DCE; Tue, 15 Aug 2017 10:03:08 +0000 (UTC) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0044.outbound.protection.outlook.com [104.47.41.44]) by lists.denx.de (Postfix) with ESMTPS id 8C10EC21C41 for ; Tue, 15 Aug 2017 10:03:07 +0000 (UTC) Received: from BN3PR03CA0070.namprd03.prod.outlook.com (2a01:111:e400:7a4d::30) by SN2PR03MB2271.namprd03.prod.outlook.com (2603:10b6:804:d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1341.21; Tue, 15 Aug 2017 10:03:05 +0000 Received: from BN1AFFO11FD042.protection.gbl (2a01:111:f400:7c10::146) by BN3PR03CA0070.outlook.office365.com (2a01:111:e400:7a4d::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1341.21 via Frontend Transport; Tue, 15 Aug 2017 10:03:05 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD042.mail.protection.outlook.com (10.58.52.253) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1304.16 via Frontend Transport; Tue, 15 Aug 2017 10:03:04 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v7FA3057024527; Tue, 15 Aug 2017 03:03:01 -0700 From: Bao Xiaowei To: , , , , , Date: Tue, 15 Aug 2017 17:46:16 +0800 Message-ID: <1502790376-28643-1-git-send-email-xiaowei.bao@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131472649847981856; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(85426001)(4326008)(8656003)(6666003)(5003940100001)(68736007)(5660300001)(97736004)(81156014)(81166006)(50466002)(106466001)(305945005)(8676002)(8936002)(69596002)(47776003)(104016004)(2906002)(356003)(105606002)(189998001)(48376002)(33646002)(36756003)(50226002)(50986999)(86362001)(2201001)(77096006)(498600001)(626005)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2271; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1AFFO11FD042; 1:JkXgu6Bf0gcxKBzpGpeojvL0EJCsEWUzHOxj6HpZ0?= =?us-ascii?Q?kw67YfE30b07sPB+kNwjm8rIN4J6gGXggaduYoxS8b2xAw24wesKfCAfVB98?= =?us-ascii?Q?gz8Fn/Y5ZUFHoomR+YLXSbEkmJNckHSB63tHje9+KMaP5/u6glsm0Lxc4K/l?= =?us-ascii?Q?bJcpXx9+zWEer4Mz576iW+/G7RdlrQ12kHRCTKLDdXzSvhVj3vF8mW+bYRFx?= =?us-ascii?Q?jJFpCMDWeeEC/PD8moP1td/RAZsuVrnydrLQn3VWUaOyvWRhYNQCHxKSZDGn?= =?us-ascii?Q?wF7gQFsLww4wus7uO4xDv85iAUBguLYVW0rZ0cHGj4xM8aeBR1uPvgniKpve?= =?us-ascii?Q?wToWsxqfN2YJbX2O5rPCAmOfQ7FMpq5pgfYAuhHN/G997B2vSg/THqlkWbIh?= =?us-ascii?Q?syIDRsUOeBRVomiSPGGWjow3PlPnehAlsCkiMWyOAbSvgx7QPQGEbPQb1cMp?= =?us-ascii?Q?EifM81IpYyP95AEv00+B9ypDrIp9m4MOAL5fwMZFqKDnhNyX8ajHPObrWIF1?= =?us-ascii?Q?R3sv8Z32LrL/Dvnfj6oLKtIYawyavPmmc8kjxsLkDXD39tgg2axz6Cay1U8M?= =?us-ascii?Q?RuKHvEDuusaKenrYRB2y55q+n9/xwikbVTnbSIWwbiQF13ierEYTASD12+69?= =?us-ascii?Q?o7wppkRjZYtaSwTscGZEdFFf155A9mMreZZSG/h7aRrR20E8/IvVWRBTUarJ?= =?us-ascii?Q?mfKr47KScP5U2Cz8TGWBpwQRwNCjwPmyfKhS62rJIX41rgv1wI9uN8OG/nWy?= =?us-ascii?Q?Sd4t+6XYkp0Yrts25X5TrpXwDK5GZiN/iQCDvtag7TMy+1WzVO4TWweBl5Ze?= =?us-ascii?Q?dAplJVP6d78c53mpvugZYWM4RJqS9tPfF+/6DPI9Rys/GGKZ59MPUl+DPueD?= =?us-ascii?Q?pQ0jLJ6nrvAjLb4DfXysP1uDrijj+vxit7Chi5nkG51IAcdl/jOlDB5asqtf?= =?us-ascii?Q?Ui48UIVu3iNurpT9+zgTEzMsbd3JWt1FuVRR/nWuA=3D=3D?= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 24389f09-e533-497d-e5bf-08d4e3c4d252 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN2PR03MB2271; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 3:quj4WKmUSIoJ3ALew/q/ybFYZQ0rhPcdEv7YZGGFWnt3i8kCuhc1zL+Okk9pqB32Hm40K13R++wNJwqBMxGv3WV/l2R5f/zCvquHF+2xFOmk0BSJCJlg7lRZy9G63Qz8pFhOFS7xLf8rnZSBe5ynNTllfZGGM4rIW0rUjQypen7mHBzbREXmTdQNSOtcvQ2E/tTUpN0E2dScUXhTzyvP8Tp/MAH1AoiqGPjJaOzjdkPdVQQ2QPoW0GCqc+C7wUutGDBX9diqykebhaoKo1xupUBWzISYKXdwEQFv2NksmM8ouuKis2svPEZAH9L0maIWMqgF8ZsCaN2WZakH63g+4hgwQgWTa2rUnmWJS/HrBy4=; 25:3HmHG3bT9KVY312sIDSCoWeuobyOuOsFeE1/mUWXH6Vw4AMjp+lGNli5DKc6waRhn7N+QobWIr7Zp0GKrgis7tQpbjq6drazKk+CgB7W/6DpVWKtOdsMDf6hpFvCgAQ8416VOx1oWYG5+VhU5ENmux1jU5OsCSNpBoNv0pHbK5/zv5/Lo7Oht4SSKNsvWBx8j+PxTMl6ii3o4Lv6okmivZciZ0GFeKuD1W+E1yMXtkTzf95TTF97jLmBslI1CXHcSOxMPFjLBXINfRGGYpWJQQQI+4vyz/YEdT9gc3GovmnuCP0Zxxe8ZKtRoAhlrAOLJGmsrmogrv3gL5V6//BkDA== X-MS-TrafficTypeDiagnostic: SN2PR03MB2271: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 31:OgMngPV4cAk+TiWGDSKaT6WUcviOirM/3mjouVPwNetME8k5oVnH0YjIg6geqj4V1vsnhuEkLKjjbbvz9m4a/2vwNB/6OLTzrUZyvhbYmLBkdQn7TUElh6Mrbs+gsqsCw5dtnSqPABMAoCMTePkpIbesb1mN3/c+fBdi1Ik4eWOtMfR0pk5qAGbF5Px6Rx5smy9Skk7i2b5GYml4xmAKhG9c8Sgtw8Hh3Ml1VzP/lY8=; 4:rUt6XAv0ixoWm021eZTlS1RiGCr9y2jkF7HW91QuxjrZsa3BwnMzXnk0JJOix8Dtf4t7o0xzVSRUNfZOpLGm0BPoB5t1IU7w/2j2AZ4ZosBW4A41rXAAmeu7ELyK9VePoomdcWZMeON6DDb8D39/5ZdyHDQsXzk3ToHqGiwu39rUIPdrVGjy7ShbuivIJ7H61dm5Rt9Lbiw84Dx6icFubiLdJW57kTNU0+cf7DWYucYG43zOEBleHNrK6JKVDx7Ezys2k8dTUpvVfSSLGBGhDjp3pQWBiaCquA3kggGXTJI= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13016025)(8121501046)(5005006)(13018025)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(20161123561025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(20161123556025)(20161123559100)(20161123565025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR03MB2271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR03MB2271; X-Forefront-PRVS: 04004D94E2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2271; 23:21fRWy7T4zlBucFu3qXJgq0NcCHHCg6BW5jWoTPba?= =?us-ascii?Q?1OGJuH92QkFo99Caq/eGW4Xk58iAe/ItMNEe7YTMOmVfXDJxp1CtPk0PL0NW?= =?us-ascii?Q?RXRcdhHVckvZDlxtgMRx286IXSfYHjcrotm/OOOy3K6B15UBg1vIcWY6tAfA?= =?us-ascii?Q?hfAKqhvRXBfgZZqxpdKcKFssDfVlza5guFyev8UO2XlbLEnj36jgwUEwLAro?= =?us-ascii?Q?c4DJ0xMxv2QYRxnIdHRxLv+Zt2bqLohiVoV4HdCWDL/2V20DP/PyYdXHnpc8?= =?us-ascii?Q?UrD2VPcI6PBvhp2J8OI0bj5Dbe/sTxRQqgtKJQnurnM3y76cGi7LMDGT+JZY?= =?us-ascii?Q?jwj+ahIXgr7V4Ryau3uNKKFtKYJx2Z4YNHyD4WuiiYnCD9kKa2DHO2QcLmJk?= =?us-ascii?Q?T7rVW9+M4ZYRW2cfQZuBbkr+Zhh59AVqBP3fyTJd4GIWdd8D+X3c6UcWvh1B?= =?us-ascii?Q?YEK4HAhvZo0bLy84Nrp1jz1IglORd+wtW14tSQ20N3fX/IX/jAi9ZLCpgDSX?= =?us-ascii?Q?QnwhWoU8uAkKhISJSofy59fsGu2npJaM3s9C9OtfnbOwAfZp4VAyHC7wsbnO?= =?us-ascii?Q?sTi8XomqIY3C8cB80maA1uqZnUYSrHn72Nw6FqfTIZ6c1MjDC34NQzN8RwhY?= =?us-ascii?Q?PyCSWQRhBgdySZRuR4ml3QN8368almbCPQrYFX4JUm3961eikuE1z1WfJxjh?= =?us-ascii?Q?EpGOAepJju/xmMAegejrO5t1Q348bODjdQS9exgyJQyCbSZYfBz/BBN8rg5C?= =?us-ascii?Q?1whJNeilPh76gAjFh8eBXpy3xzruxVZKD7Ed5ziYbn2wKKtanJ4B1avPPWFs?= =?us-ascii?Q?nmofghTfB1eH/6gb/XIDWfoyRN8uXPPkZw+3KJh3tBYFJfbdadLbT5WrFosK?= =?us-ascii?Q?vd01zvWhuAxYeb8XRc3bIEGhu07qPNLw/JCGx0PZBatE/nbnOmTRrE6bV3h9?= =?us-ascii?Q?X3/T2zAHAbZZeKM0BlilsJMoyof8B0A/DfuxqP1Qi8AB/8W1/aoEppiW/aRW?= =?us-ascii?Q?DPT+gWJCuIR6DrSMvi++KbyDb5onu/gB+uaKT+acCvOKY4z7l6DAA3hgLE/9?= =?us-ascii?Q?8Cp9kc=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2271; 6:5kjgejFSMa2ULvzQwLCB64g1UJ86r3rRKAuuoyaqiy84swExjd61m8qsSO/ZCyhkH80QqhiQM7D/Aor/fTm5G76ms8ZQNk2MoTkL+vaUdMuAwxK/+yfK3vbd0JytImg2rhUsfsuMLDAgrYh2n7NvQ4Tsy7Kwdp8yVHK8t2qRwGVw6dckK8pX+gHZqsQI1je1j3Z4Zm16+pP8/7jee0gKyzoD+pIbyEfuS1DXZ+B+MhmxGIjDEi1zlOlNBBs585ZrlX0q+rTe9lr5+nT3hEr6XHFHo6McWEFQnTJjqym8EZKmDLP80XXAtQfh4Jxlb9dzbzWwczLW18N3op1TYfZKYA==; 5:jcf48Axg6iL/uS3z0mczz3+JIpLzKy0EA05thRyDxm3CcmyZrQlMfNF+GurYM9mHs5CXG73zbOmJQW9ptK1EX4Ovi6hQrMVdJhTpMF5ScH5xssxddUakIXMohGaebJSTWedsaxwM1UTgd1b5l+Zbjg==; 24:+Ig0A9+v9awUc7mfZWXfAu8POEXN+IIZFDWuQQpCUt2k/uda9EpuV7j/90PFDdvSldyOFJaFHT84evJp8wFm5eWU8X26Iy9NcHSDL0OotMk=; 7:aTwGMoshZ25K54Qx87Y91BVMfSzczeHBQHnAbyUxz78qkPDGoRZ+S+A/95h5V3o9l/rq9w9fJsXgnAobk5S55/WyI8y15MyQbzqFApxO/IutqFZBR+w9huRXseMrd5S2QN1594Vyj/lKpLZqx323RKeOI85aWK2CxjnrRPPdOrbf+15vhNEhPKJ44dO6UP7REVzNv/K50H0vmt83JRaYONUf7nWk9UBLmurkYMqGnkU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2017 10:03:04.5641 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB2271 Cc: Bao Xiaowei Subject: [U-Boot] [PATCH] PCI: layerscape: Make the pcie link up status judgement more specific X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" For some special reset times for longer pcie devices, in this case, the pcie device may on polling compliance state, the RC considers the pcie device is link up, but the pcie device is not link up, only the L0 state is link up state. So add the link up status judgement mechanisms. Signed-off-by: Bao Xiaowei --- drivers/pci/pcie_layerscape.c | 25 +++++++++++++++++++++---- drivers/pci/pcie_layerscape.h | 3 +++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/pci/pcie_layerscape.c b/drivers/pci/pcie_layerscape.c index 78cde21..4db95c5 100644 --- a/drivers/pci/pcie_layerscape.c +++ b/drivers/pci/pcie_layerscape.c @@ -69,13 +69,30 @@ static int ls_pcie_ltssm(struct ls_pcie *pcie) static int ls_pcie_link_up(struct ls_pcie *pcie) { - int ltssm; + int ltssm, i; ltssm = ls_pcie_ltssm(pcie); - if (ltssm < LTSSM_PCIE_L0) - return 0; - return 1; + /* + * For some special reset times for longer pcie devices, + * the pcie device may on polling compliance state, + * on this state, if the device can restored to the L0 state + * within 100ms considers the pcie device is link up + */ + if (ltssm == LTSSM_PCIE_DETECT_QUIET || + ltssm == LTSSM_PCIE_DETECT_ACTIVE) { + return 0; + } else if (ltssm == LTSSM_PCIE_L0) { + return 1; + } else { + for (i = 0; i < 100; i++) { + udelay(1000); + ltssm = ls_pcie_ltssm(pcie); + if (ltssm == LTSSM_PCIE_L0) + return 1; + } + return 0; + } } static void ls_pcie_cfg0_set_busdev(struct ls_pcie *pcie, u32 busdev) diff --git a/drivers/pci/pcie_layerscape.h b/drivers/pci/pcie_layerscape.h index 782e3ab..4313e85 100644 --- a/drivers/pci/pcie_layerscape.h +++ b/drivers/pci/pcie_layerscape.h @@ -70,6 +70,9 @@ #define LTSSM_STATE_MASK 0x3f #define LTSSM_PCIE_L0 0x11 /* L0 state */ +#define LTSSM_PCIE_DETECT_QUIET 0x00 /* L0 state */ +#define LTSSM_PCIE_DETECT_ACTIVE 0x01 /* L0 state */ +#define LTSSM_PCIE_L0 0x11 /* L0 state */ #define PCIE_DBI_SIZE 0x100000 /* 1M */