From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965302AbdEON7b (ORCPT ); Mon, 15 May 2017 09:59:31 -0400 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:22016 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965239AbdEON71 (ORCPT ); Mon, 15 May 2017 09:59:27 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Dong Aisheng To: CC: , , , , , , , Dong Aisheng Subject: [PATCH 2/9] clk: reparent orphans after critical clocks enabled Date: Mon, 15 May 2017 21:59:16 +0800 Message-ID: <1494856763-6543-3-git-send-email-aisheng.dong@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1494856763-6543-1-git-send-email-aisheng.dong@nxp.com> References: <1494856763-6543-1-git-send-email-aisheng.dong@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131393303655702036;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(39860400002)(39410400002)(39850400002)(39380400002)(39840400002)(39400400002)(39450400003)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(45080400002)(5660300001)(498600001)(85426001)(305945005)(81166006)(2906002)(189998001)(8936002)(2351001)(5003940100001)(33646002)(6916009)(86362001)(4326008)(36756003)(6666003)(575784001)(2950100002)(8676002)(104016004)(50226002)(106466001)(68736007)(77096006)(110136004)(48376002)(50466002)(105606002)(47776003)(356003)(54906002)(38730400002)(8656002)(50986999)(76176999)(53936002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN1PR03MB169;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD043;1:iNSrlOrjhNNViekD2BXbwhn/lsU6f5HBizC5re38huC7hdLTLC3DArL9dYEXfsWWwlihipOjeFcB9E/Hv4n2oKVTVn9OhRM0b9PZMYFvFCpCLNfK79rUjNIbOelA7Vq15Mg6bwltaLux0pyIB1cbmkzcVRzmICubRbFBJEk21uZdHh9T0G2EGo/gc1IR/3zwMs9dBXEutKKHrAggbQTiOeB/IHySjqjy3eU0YbMlBm82QVxnp6M0oAE8qBMtceN6xSWD9v8tNF0D+h8lPYFQh181FKyOqh6y4nxp6fR9cXhMARW5DYoYI1tGsuMvoU+KrQIJ2vlzV4gJEKJ4HQrlKJKXzCdGK16QNgHFOARWA6+v0CkShNmE0NzA45YHntoSYuSg8xRX0cADnvfRFNUmPOVxv7fy1xytHlp/NGyGx8c5DUsBtPqLEXXWD8mVSFmgLgWWKXRUR3Qzm0S/haOdafPGH6Qu/u8S2tpmL8NPp/mxtSSeRRYywY9jz5xhA5mw0r1BMioOgkCaGXRxxHDKM8J13Xo/vwVXW1tOpcc7PlmO9ok6BBv4Z2Vg8wlcEt8e5cLCy5Am//tdYjvVsnzI+l5TYOOMu1VpWa+DP7qUQO8/eCOWZTuFR7XTlFDn2Ggsc3t7bkoORlp9ElWQatXRHowxjXkp02iAfzuwi/uhYzU5e0th4IFDfkr22kj5muFa8qs592Kg1GZnFLd3pWpgFHfSbj9ERw3AjtMiqfX3fU4= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ee7b244e-96ff-48b9-5e14-08d49b9a98ba X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131430075)(201703131517081);SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB169;3:0wtpFh2F0oi9OiGy3UNZI/zZj+XaGfAaEg2W0vUCK12prtErRa4n8eNuHDXpnInNKwQsn5EzM97/vvLCkFl1AW9MWbryX4BvxDmHVuHSQNIobKYcU/8POAqoBpdTM8t82ARzLMvbByRaei+sbq4e+oYeaFKJflO1NaIVHtWTygLBx9i0t1aKuK3+/w9cfIZUM2qrwCkapSWgXgTISWVjqbFIHX4PE2v3BUzC6CbeMnuU6RV4PimVGSZ2a4nYodtIovhn47gEGMhRNKetNLwDpoePebKJzh6yUT8YG9PKvoDvDO68LPPsL/BcCw3H9Ckv1yA6s3/ZvJb4cMBOMtKhmuADlLsOBteAJuRQ1UqwinpqmAeD22g+hUU6Ap9EY+qzRsbxKig4IskOQp2RW4rSGI0aXNaJX1tfswR56n8FhfvSzK6CTOP/qA19XXcIMqB+;25:zSNVBFb/UDQJu7QLWpIOHfXs4wE495pv3/4EdfpeybQg0jSzO9KGpPLwWFjOsLjfnlRPRnpRrF1eH6DH9jTzMVrmZAJAAn3IFN/Om/vs6eEbZhdEA6DxR2nXzdYyOjz7OmodPSl3N7B313CajjrDd1AjR8pliAOu1kF/UiRaeZNcArp2VBtz1EpmYxgi0+nWG5q3Rr6zCUO15BwD9Tsz4Hku8bs9lIvx7JVEeBLb37J98UcCPfcmUGyo3bBGINJl8x2l8s2GfHSypsSKpmzXBTMuhqcmDnKZj9iH3gC7ULHZUgGGeUPEHBZZq0UmTUym1IVssRej6OJMG9VGTCLc7cckmIWLa8kBeg5ZmvFVNTk5xN6rK038VLzNVV6/HFyFWI8bDDOpAjwWyDiffSxnzM8cU4M9uYCiOP6+eQpAAJnx/D1bpNHS+jJQBne5uvH1+8C+pWRUZakWLytqp5EW+w== X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB169;31:lgRb8FDfQMCBfphYqWj9Ao1IgvtmFDa3uEQ61YXY/dM3le9lH7yfGrcubdRcgGmStgKcd+reFKq9VLTQwvwMWV3YCzgYV4pWVcV5XqXR5T+1QZad7Z3WxUd+1M9y/VFvuzWLHgkdMGgvtQHbyyhcltQQGdIKXEDiOoJU6HoMqTGPsW00O9+oR6TOcdbQpaVvzVEN1LZLVloI2C4OQB5bAwBeHvLZnhn8P9e8P2+bEm8msBtLD5AQplqPO6aD+6QtC4dD36NqBQ7qQNmJzXmpYQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(601004)(2401047)(13023025)(13024025)(13018025)(13015025)(5005006)(8121501046)(13017025)(3002001)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123561025)(20161123565025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123556025)(20161123559100)(20161123563025);SRVR:BN1PR03MB169;BCL:0;PCL:0;RULEID:(400006);SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1PR03MB169;4:tRwqoV5qpZ9wS8SsYVwhrYajJaUXxo6z2hPUDeTbcMK?= =?us-ascii?Q?Hu2SG59ofhnn4shbIItFsMhC62rRq3jDOIt/JUuJ6RdS8IMo/98FWnuOigZ2?= =?us-ascii?Q?ISRkUfHFJ2T/m26Gko+RwQ6ZBs+9KXxSa2WcySc9yBnlT8l8OjeSpMg6gTay?= =?us-ascii?Q?tUihAAMAz+ZEXaaOigRZ1JH9WjSGisFlqCs5cKKNMFO9eDoX7uxo8ftjr76f?= =?us-ascii?Q?Ookm330dxykJmVIBhVjcDMXAOZ94lRXuSGiL5OqRhffD3L3moYBL8o4CoU1B?= =?us-ascii?Q?pV+9yJZT5NcIahjAV0ZvK8Yt3XzUM3lisQbqIMrMNLT8menn/8xu1Bwo+slB?= =?us-ascii?Q?1zn6vVQFmUlTSqb+j37LmtpVXrzEoqU16ZW1D5RoRQLRQcrL/QKvbIHzubdx?= =?us-ascii?Q?/xZMtjGYhQqlB1T2tPSriq09GRr4XhOr2pcrJ/Blsyr4j+aPAVeEJzrRVL46?= =?us-ascii?Q?2uimTE/6VZyCea4MB+tP6djUlBSKIuU1YvJSTFzBTGLNPYp+iPK1HjScyTEK?= =?us-ascii?Q?HQb0DcLNuM6EYGKlJrCUXD4OGFSQwtv2XRXH692CmZ8QpE2BLG86qhT+URUL?= =?us-ascii?Q?zM6SMRZ6G6AA3Y/3lm4wRw5Noq7+wJg0M1o4NT95jOatVwPOfin6YhheZK47?= =?us-ascii?Q?1UT2aFNw8gnR/3YFKLUjMB6NqXVKPiFBke4O5LfVybGUYUbci12RhEsaeAxn?= =?us-ascii?Q?jhAc4M/C0go0GgiU5VuUNMqlz7p2jQZAsdgkTcUHE7dD2qQM0lxBLTbZJn1f?= =?us-ascii?Q?aWech9CGrCXScee2Kpbto1T3oah6ZW2m0coJ/cw4jmeF6yReTr/FUxkbDC3d?= =?us-ascii?Q?fDbDjJSDDJh+jMSD9hRA5VILk7a0YF6/k63006NT8e/pCHfycHC4hDOMRlOP?= =?us-ascii?Q?dR3ZhZr/lf81av4F4IkX6+MTaihotfmKGUpcNPgmJHT9FrceB3jCukVgF0J1?= =?us-ascii?Q?POlKXaVw5WYmguv51AQuZS4ZJXQUL7vs8mj9NpQ=3D=3D?= X-Forefront-PRVS: 0308EE423E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1PR03MB169;23:2DHoSW5FarNnoYZNjXlWMsn1cIW/T0m8JNbUAEuE3A?= =?us-ascii?Q?XmFq6GzclqHv9jzhaBXBrO6geTKTLVVF0afaiJVDucBQ8t/lOf+tk1XU2vi4?= =?us-ascii?Q?0w9IowUT7dh7xlQI+oq03qTkP+F4s31OEHM+DrLf3BIYRnEswKdewALfHqqw?= =?us-ascii?Q?mnkQhJwKPDgiIObysQkkmUHBKzAoZev7BdezAiJjYtn/s8gaMXGLN0yeRXjy?= =?us-ascii?Q?IuxphzUEqHC+0F+F2ox7cuoZHVYwvwEDQqtM/Ba+oj65O4Cy/24Cvg0OpIH8?= =?us-ascii?Q?aAGittVbWvQp6ARrBvgakB1Ima7PDWGWOlmnLe6MC0evrSDxKldnToXjtAPD?= =?us-ascii?Q?2J1F0UG6ujWG3gbm2xFhlvNDNYWzRD/UY5uG79tjn4OdR8K8vYowMpFUBvBN?= =?us-ascii?Q?xAZePfSZjwEJiV6m4ZBBcTBFlAGsxWQSyLP1Fb7KK1VasE5M1x8/N9bd4oYH?= =?us-ascii?Q?CPGJ/TGAKRAluVBicNNsKbQmBu4o0BUuTCrcjkUWHaKaVTRou9h/hgTxezRL?= =?us-ascii?Q?hkBDnCXx2LbKZC/v3qrYIgdaJD4Mde4qHDggNbQHxnGiF9IuudU5MhgEq+NA?= =?us-ascii?Q?+C9o9sr2Uzr0/gsDeqhoBiKqtjBmhy2dHI0XGqSkAgr+VVedHsWetXvmAFti?= =?us-ascii?Q?zITMaohMvzOK6IENBzjL8PTVbmcxaMY9OoW0VSttMhBeVLQZkW8KATAzzvk5?= =?us-ascii?Q?svCm3Lcm/UdZCvbOtm+WjTr85xeE/1OLRzPkxIqtkEvCV5VFe8K1ds599uGc?= =?us-ascii?Q?QrQgZom2C7p3wSwpxWS86ZA93GJBxwrOkBVHNbRAU8GA1Ai7E4afakDewTPI?= =?us-ascii?Q?2urZ9A96WN7Lul5rk9oAQmvX1q93VM7COucXEl7GNYyaiTJawBpoQNBofK2z?= =?us-ascii?Q?C53XxFU1iqFLhmp8dcLTWjAKfo6LAqtwnPZFF7TFKe98M6qCZyQVmI+pqvYe?= =?us-ascii?Q?DJe+4koPrvte4ewIvgInz+akKvfm2qHQJTfeuxsOo+yHS85x/yR2hacrHOjU?= =?us-ascii?Q?TVBi7LQia/N4e4mcABvbk9V9bkF+MBMHQvALXZDjJJn6X2xjdx96Z31B+GwR?= =?us-ascii?Q?tS8C30cLJHWo129sMy8NAr2wKWSA3YNEnSIW7pEGefNPlbwH+d85F5F4Tpcr?= =?us-ascii?Q?ipTFm0V2hbefK/avMh7W4KczpubLjAPxE4jzo/BxRQtPVLB2DWuBCbMqtExr?= =?us-ascii?Q?BsqBx+u0COMUzxyFKOwOktO1+jLo4qiWBWat6ZiTZzO0hiY3q4mfNqm4jLyL?= =?us-ascii?Q?tbGLFgYH95kEMRpeJ2kfiT5kdnAssOLMv2G3Ad0hCQMyUx6pBT8ydatdgrDe?= =?us-ascii?Q?eNx5zKgFPVotBPvo85ES0=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB169;6:y+0FymDVmxKmjb1vD/0MEA7GTmq1/gNVKxy8VJrufy292EV6syyvv4xxrgVCOG6DtDkg/J5alN1RDjT7b+rNKnCoCgfdZpGR65vVb+G9l3q31NLtw5kGCkNSXOeN44LMWgvH7GkmIoMtfOhRsR8bewMI/d/dLbuZkzC/nTCG3FpB06wBj3DorPlwNVMnErFWYDecLmpemS/suQciNN1mA8O4LOQ5OSSjl6SeiQxEGBR6TSrc4ZaGxowndACcehJLsm8Bmf/CD+tABiOa7CW0OpAKxCUag0LBRo8qxhtqgFJpcqmaPAIIbYQAO3rabK8M5ULsbT9a4vbJviqb0Xs+MhT77L5IMApDUocsueDevYckB/LQA3yyJ32VgkaG3bFIZKdXpdEQivMPDanNeNpsZVB8oSV0vimvR002Ic5MWuRz4B0G9nGt8TgdaK05tvA9DMfqvTTrlecvT0nPA3MI9j3Byb3ueGjjDOxeBeyPG89Y0JUZwDIL4X/ZsrmoTUGW;5:rXFbd17f9dLFhYxSsoXDcyYGEkVEG4KS4b2xsJLbvP2yFTxxv+h3FMY+aWXuKEF39gx811HHqlvDKBNS877v1HiaXQGNILltu63L3FoqYavr8T02MSaYRu2GW6AL23eqKvCtGrJdqeaNQggg3w376DazvUvY/87gA++6JP4CwXHnv6ryg5H7FpsdMU++vL5U;24:QGTLenQDvJzQNYa1aWZTajiAdMHnX6UH1D3M8061/v/nv42mROU1hgyVYN4wZo4uJttZHEfnfp9aN9EJkORY6y9bn3djD1ENGzz48cduXf0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB169;7:aPch63Nl5GLjl/y6vTvi+bvoJvBmOpLg0/uiJklNkGNfppDVsRd1rVnolLs78CE1rYfuTBes7ibOZH5JyFpXfCWQfm2BpSnpTG6ZvAA1pqJEEVB5WLKSFsMbmvn/Qanh5xxbCZtp5pUduhXWlkvLPoOQuO8XYZ/lwpRpLFujTnKBnV7HLfaegHg23oJClV2kkHpIXUCNAZ7ZeGahaaWgUtzRmmG41hCS8dk2FlfV/l8hPQEoa2MOY8JSsZgMX+khW8ce4od4BUBbIu4rlOf2kSgCg1tPZeH7Zl+aD3CW8xxCT0zjLeu9tGLJtxWo4JhSaF1EBho1oocp18FxWocu3Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2017 13:59:25.3830 (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.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB169 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The orphan clocks reparent operation should be moved after the critical clocks enabled, otherwise it may get a chance to disable a newly registered critical clock which triggers the following warning. [ 0.000000] WARNING: CPU: 0 PID: 0 at drivers/clk/clk.c:597 clk_core_disable+0xb4/0xe0 [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.11.0-rc1-00056-gdff1f66-dirty #1373 [ 0.000000] Hardware name: Generic DT based system [ 0.000000] Backtrace: [ 0.000000] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 0.000000] r6:600000d3 r5:00000000 r4:c0e26358 r3:00000000 [ 0.000000] [] (show_stack) from [] (dump_stack+0xb4/0xe8) [ 0.000000] [] (dump_stack) from [] (__warn+0xd8/0x104) [ 0.000000] r10:c0c21cd0 r9:c048aa78 r8:00000255 r7:00000009 r6:c0c1cd90 r5:00000000 [ 0.000000] r4:00000000 r3:c0e01d34 [ 0.000000] [] (__warn) from [] (warn_slowpath_null+0x28/0x30) [ 0.000000] r9:00000000 r8:ef00bf80 r7:c165ac4c r6:ef00bf80 r5:ef00bf80 r4:ef00bf80 [ 0.000000] [] (warn_slowpath_null) from [] (clk_core_disable+0xb4/0xe0) [ 0.000000] [] (clk_core_disable) from [] (clk_core_disable_lock+0x20/0x2c) [ 0.000000] r4:000000d3 r3:c0e0af00 [ 0.000000] [] (clk_core_disable_lock) from [] (clk_core_disable_unprepare+0x14/0x28) [ 0.000000] r5:00000000 r4:ef00bf80 [ 0.000000] [] (clk_core_disable_unprepare) from [] (__clk_set_parent_after+0x38/0x54) [ 0.000000] r4:ef00bd80 r3:000010a0 [ 0.000000] [] (__clk_set_parent_after) from [] (clk_register+0x4d0/0x648) [ 0.000000] r6:ef00d500 r5:ef00bf80 r4:ef00bd80 r3:ef00bfd4 [ 0.000000] [] (clk_register) from [] (clk_hw_register+0x10/0x1c) [ 0.000000] r9:00000000 r8:00000003 r7:00000000 r6:00000824 r5:00000001 r4:ef00d500 [ 0.000000] [] (clk_hw_register) from [] (_register_divider+0xcc/0x120) [ 0.000000] [] (_register_divider) from [] (clk_register_divider+0x44/0x54) [ 0.000000] r10:00000004 r9:00000003 r8:00000001 r7:00000000 r6:00000003 r5:00000001 [ 0.000000] r4:f0810030 [ 0.000000] [] (clk_register_divider) from [] (imx7ulp_clocks_init+0x558/0xe98) [ 0.000000] r7:c0e296f8 r6:c165c808 r5:00000000 r4:c165c808 [ 0.000000] [] (imx7ulp_clocks_init) from [] (of_clk_init+0x118/0x1e0) [ 0.000000] r10:00000001 r9:c0e01f68 r8:00000000 r7:c0e01f60 r6:ef7f8974 r5:ef0035c0 [ 0.000000] r4:00000006 [ 0.000000] [] (of_clk_init) from [] (time_init+0x2c/0x38) [ 0.000000] r10:efffed40 r9:c0d61a48 r8:c0e78000 r7:c0e07900 r6:ffffffff r5:c0e78000 [ 0.000000] r4:00000000 [ 0.000000] [] (time_init) from [] (start_kernel+0x218/0x394) [ 0.000000] [] (start_kernel) from [<6000807c>] (0x6000807c) [ 0.000000] r10:00000000 r9:410fc075 r8:6000406a r7:c0e0c930 r6:c0d61a44 r5:c0e07918 [ 0.000000] r4:c0e78294 [ 0.000000] ---[ end trace 0000000000000000 ]--- Cc: Stephen Boyd Cc: Michael Turquette Cc: Shawn Guo Signed-off-by: Dong Aisheng --- drivers/clk/clk.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index fc58c52..e2955b1 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2471,25 +2471,6 @@ static int __clk_core_init(struct clk_core *core) core->rate = core->req_rate = rate; /* - * walk the list of orphan clocks and reparent any that newly finds a - * parent. - */ - hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) { - struct clk_core *parent = __clk_init_parent(orphan); - - /* - * we could call __clk_set_parent, but that would result in a - * redundant call to the .set_rate op, if it exists - */ - if (parent) { - __clk_set_parent_before(orphan, parent); - __clk_set_parent_after(orphan, parent, NULL); - __clk_recalc_accuracies(orphan); - __clk_recalc_rates(orphan, 0); - } - } - - /* * optional platform-specific magic * * The .init callback is not used by any of the basic clock types, but @@ -2511,6 +2492,26 @@ static int __clk_core_init(struct clk_core *core) } kref_init(&core->ref); + + /* + * walk the list of orphan clocks and reparent any that newly finds a + * parent. + */ + hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) { + struct clk_core *parent = __clk_init_parent(orphan); + + /* + * we could call __clk_set_parent, but that would result in a + * redundant call to the .set_rate op, if it exists + */ + if (parent) { + __clk_set_parent_before(orphan, parent); + __clk_set_parent_after(orphan, parent, NULL); + __clk_recalc_accuracies(orphan); + __clk_recalc_rates(orphan, 0); + } + } + out: clk_prepare_unlock(); -- 2.7.4