From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754741AbdCJBnG (ORCPT ); Thu, 9 Mar 2017 20:43:06 -0500 Received: from mail-by2nam01on0054.outbound.protection.outlook.com ([104.47.34.54]:24672 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751313AbdCJBmv (ORCPT ); Thu, 9 Mar 2017 20:42:51 -0500 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: Yuantian Tang To: , CC: , , , Yuantian Tang Subject: [PATCH v2] cpufreq: qoriq: enhance bus frequency calculation Date: Fri, 10 Mar 2017 09:28:43 +0800 Message-ID: <1489109323-11424-1-git-send-email-andy.tang@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131335837692559678;(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)(39380400002)(39450400003)(39840400002)(39850400002)(39860400002)(39410400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(38730400002)(50986999)(4326008)(105606002)(53936002)(106466001)(48376002)(5660300001)(356003)(50466002)(47776003)(305945005)(33646002)(81166006)(36756003)(54906002)(104016004)(8656002)(2906002)(8936002)(50226002)(85426001)(86362001)(5003940100001)(77096006)(8676002)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2949;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD014;1:MlvAyPIXSzW8s7m1ha+BsOC1Xfiy8Ml7vs89VReK/pvHTcf7pXV4zCH+CI93Y1YoUoa+0ubGUa83fAFTDhzngfR3fYD3wEsh+OUXe3tUoGp334Ww6ROlsFLxf+sxLKtMHyYP+/GVkU0Xe4S3p5oyYt+inaByMS9OQa5mqkSVdPMj2c5hB7qvcMzNSKq3MTN8kuoVF6TKOwTJjio9b3td1CBtTAarXYXO3kELe8Y+RpcV6kUj1heiF3fljCmMI20u9NeS/p28+ZsCVQ9LOvAhwKjJHNAujHOJLYssD4I/vdH7WYi013RG+ckmz5kCK5WasvZd+aZ4gkddjvyXczuA5XP+YQLZ0h4hJjVNC5bF9oD7kwUeE/zTxEDoSOyTapwJs8xRdNtAezPufLv8rTrssQ0Fqp7Q27PCSeCE2An1+qZ6Wn7+vJRVt7bDxZwooaVUMrGUtQLNTpN5rFYwES8eOqveOranq7PcwZ0BDNDNCjtNX5DffdBRbM2JSmjVimRezWVRdlU0fxUyr/M7IssVHgkAtF/HSBRzfkl1r+nd65OPXYVodiWpT8c2mIFakZ5Xv37O8cNJlL3Revsa4pl1Zj05e/JyH3HAR3mD08k0NpVzxdz9pZvnqnsBY8BM9flV2hZwD5m+So0V+HDhcY5VKQbckyp6pgNjDkMI4SDHi54N5pvF71+nMDU0kKH42jMxqz9mJhl3rspAEBLnRCyRhQ== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: cec1d16c-7be5-47e5-7636-08d46756c255 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2949; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2949;3:xY7eRw7CjJQ6YrQPk5j0HX/tkiqwvB2Z4mmHUk0milHq8yx5lMesmMVaIdH4Yl8ZeqaQcBrkCbMbEDdJskaOf2p3jNoN8S+Hb5tCKwfuqWarVq/SUOve8MBAShvBDGrP7oOK+pXrmdmk2e9RjTm5+mgERxsHfybva6Sqyylke6mLO4HGlZJ3tnBWUlbV5O1XTyRqxR3YpsSct+en0kgKlUvX5/6BqEJxBIdl1DphQ8NJClZd4SFeacvXJnV7zQuxkiz7E6/LcsP9rXe+WPDuCTW/Hh4dJHpLDNMuKRw3otVv68TSQLFURX1f+DV3K1ahx8a/PMXL6+UKrJfVpG7qJTIO9NnRXEYOLIz2MezLnbpUUfzWzfMFQddfBIn6oG6s;25:0SaHdf4qG5Tfdzho8HGs2yUq2Thwcecqog9iwJNASwh9HaTa8i79tumtaTXWu9bxPER3V0WCFtiTwkBfNESoJwhsieBk3UgE9/zi4AHOTqqE7ulig7zO/G6wqXjQnc5WmRw0xRJHEE99YqJBwNlzCPg+D28Uo8IuVYnj5aBQXAfibKlMC9nes3/8EoZcR67le5m3/DyQ0BncI2CymcL7m+/Z3Hcep0WwW5bm1YJ51MGXEXJQYFWJjPtth+MU6cvy5ev5gfno0Hc8QgoUb3nklhBulU2Ml1E5pbkg67cftjqOLCIJsRDNK+xi4z9G/qgiKkPESWAoqz+PJMFB3HcqnID5K+d94lFIlyD2SlSmFnGRfty3FcBG+Wz5oav80EgcG4Y09kkQzf4G660mcW6dz8RYrRqi7W7HKrEgHMf0vkyKQa29uOZC7XmAsubZ7sBls1voA4Mi9qxD4nrPIWtNsg== X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2949;31:OzcuZHRX0hwV3kQ/rakhne+LGj0a6EsJOt1au8y11WOMq0hEYOrxHhL7qz86T+WaN4NWPfKLAByJTwAFyAMr4KK5gMzcvNtlepFVh7Cf+4qBTXid428EC1iUbrgnduZlTq4vFYWazRj7wb86qylQcoGB/iELb5HQmzBWuNmVf3uRSdE+GwQn3q0XEmHeA98Aaw0puB4ZrxXAnw/DyMU8Y89bem7zpXURWghSmv8Us+u5hLCkbQjdmO9jYqt2G4ZMg9fkTETyNtmj/A80KUf8iUSLjFALlJVG8GzUOBxR91A= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095060)(601004)(2401047)(13024025)(13023025)(13018025)(13015025)(13017025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6096035)(20161123563025)(20161123565025)(20161123561025)(20161123556025)(20161123559025);SRVR:CY4PR03MB2949;BCL:0;PCL:0;RULEID:(400006);SRVR:CY4PR03MB2949; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2949;4:BslqqYuGNJUQYghXPXyxF0q/XQlhoiF5V8QTDU5GYpQPs9hki0wIglrHpeWgyYcEKHSe4EAZOLQO3sM/9RZfQSgFw6ucgyN0EBp3nq/+wR3TX98k7bGAhhB7f3S/DpLoqn+KlzN1sMCBNKKyBTy9zNv53BmafEzdNxieAw1Mo27/mEiHyI1N/u88g+XUhi268LNfXey64HdaQO9+zjcnulzUx6jaWHjT6pdcN9qzR1uL6A9ENsT/xGWDPCbIPnv6zVuEPEu/Tq74DYno71ZOornyWYwH9iHsF9pJo/wE7SKHZyHT8UQkoFHnvzcKEjhdkpUOakk0Bbp6I/7aAT8QmxJyo+t7JuZHtaTPPTDL45VfkooPVhPX7719WrE5ISxirSHsayWAYAJuOGhNA+APexDm8FN517Al0wAqf7CzN9ezbGhs1v+ulD9TXjryNgr9oMoXrAt2cS1LdeWHPWorfSv3WxxnwQNaENmZp7rFhDoK+AGPQO1e0i4MdWH5CZY7O420Sv+oR8KnadCUdSwe7RlcE7U3gbT9BIlMaf06VhRJOhjoMit8w1XeCl95gufDKg8HwS3W2KFgz5mfbf/RDEH0zjjurrObmBtyW54ZA3JTzf/ycsUou+HY4wqq4ES9p1z2PjhxiU/Aekc4AC9+ZAoq+Qm+i6JNoMvkQ3SIaulevqf9goKxUdRN4rUcaYdf2tTMbV7M+YyWI3Y4/9/wMUM6oU1Tp0KYYGvG72jnFGwyiSlt+4VxoyRzQgCDWbsD X-Forefront-PRVS: 02426D11FE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2949;23:KnK6pTwtQGm09jf+aO0dnOsWZDc8rAIWjyZx7/IEp?= =?us-ascii?Q?dYhgrD5WOUnsyf8Cu7F2d5AUbK+9qB+RuNT2eHGAO6Xsp9yyN7baUavFrq8V?= =?us-ascii?Q?F7BLX2L83P2wwI1G5oioQm0agh6sqbZt3GoAbva4LxZ9W5Z7To8G8fInC/61?= =?us-ascii?Q?IvLzP8hru+vGbv9jZuA0HrqJCl8E/H/tYsp52//tzhLWJksV4SEM6/pMkqeM?= =?us-ascii?Q?1UPcpHXqr4l0l6CKxf/cMV3IhwZNhrNaN08PM3iW4NxnUswDf7T9pNCKHtmO?= =?us-ascii?Q?AMYNvgqHPsjzzI3W6nkrfMTDM7H4yuPJpRbzx9OuUXbC12Z6u8Q03Po/joNc?= =?us-ascii?Q?XmWXMWZxrkv1GYyOYoQpBTd9ZZvtYa+IV0fqYSKidYW/BtnfwAw1Hg/pLT6V?= =?us-ascii?Q?3cepqJKPx0w8HO6gF9HjoTKQ04hVZRPCYTJMm6q1B477cfCTdU0qe/xOOupK?= =?us-ascii?Q?eY9jvyzykDMBwAU8QLfmJprNHMqPZZmA/8W6rWB8XryEPS21/kt5dUrFRTWD?= =?us-ascii?Q?SIOUbudbFRzgLGGWbA4PuyMdTpHlwWP7mNOJABTa6YHulPYeM0oBkTtqWXb+?= =?us-ascii?Q?j5nkFArBeMDdGbFQX4fiLxyuYi6N/bXUHxbBXYbiYbCr3scgPYKuUFmR96Jb?= =?us-ascii?Q?I+HHjMT2h2bThZzuQn8iV0vvYhuNyfUlDv25Xux5kqjgYTwu2Vhou6uwXB50?= =?us-ascii?Q?k9iSOdwChKDjkTIOxvVwwUWkBNJ1OTe5VjirbTyIEEKvSjvvI7Y+uoAtXNYk?= =?us-ascii?Q?ib57T4BVr9u33FhvhDilMq1WVWvM3ePLrouIIpkHq4H0CdlMQLF02MHpjuxl?= =?us-ascii?Q?OwgCgJbmi/eZ08sT3ZzEq4E1v9aVVqQiiNdi4vrK0cSX8VAePU8i5lIvTO1j?= =?us-ascii?Q?gfFJGW1Fy0wbuAm6eA4o34uBmW/U8NhelBbKCOVeHXM/RQIE4vhK4OqhZzmn?= =?us-ascii?Q?ZjVxd2dlAKun0+mwEXACHJ+JlPdEkQONj6peAkRYu+luFdXzEial0aqt/uaT?= =?us-ascii?Q?TI0/54DfgjjmjCBdKmcnrMR1Bb1AgtvLAdd/p6uFXlHMaclXg8iw3PWwrVIS?= =?us-ascii?Q?txebki/lBRwEhiCwxaON0medLEXzvYh0wBelrvR+W0raAooMw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2949;6:pP3gEJ1TNuOOxMUJ1xmEnln7hgae5lzzxSQG+OsRnU0MZPC6DQV3M4hq3fT1f+DxGsYcozM5ND3hi4YWvwTNkljXOsH/v96M10M52dnWwmVUvu1O7sAEWtrr1JcRQEMMm88wTbaUlIi35lkKydQawIesajNri+/dtP59b1U+j1HG60GxTO1ka7VW8glrn11XVZdelm7bpnLtHw8KLHwWJqgXO9EcdXfhz1HEYuzX699Og120VK5+7nVCCqOFYwlgu+dWIw3kaWX2QkHybnvU0vYCdf4+jANnpu04DRLu52IcyBlJjz8Nga70XH9Gwj64ETsFiTrBGXQ3mdlev77Cj6bGhswL6AKJ4wtzmefD5HBXDp6yGllQEYVH4h9K83bPRvm43b38P1KVXvTFPR4bb5kMzXxWvbyzpYFhKxJDRNk=;5:Oosm1wSxlB5SOk+Jx6iI0Qxpv4P4B0X+JbdMIrOapuv7Zbe8+3Pzq38DQY0SdZkaw0l6i6x3cjkU8DCN9kN19xYKb/XsY8puDVpJZ19m4lLWU67OMqHab52pK+dGY6b8/JeCkcDTHHHvVnurFDfZ5sapiuJFTL984WPNALQlHEvULz1Hg1BJeBdzHAbMCirb;24:Ogv87lUGwyFGVZLnXNKzPL1NeLU3URuKrEYaxSx+19pgBOB3GBizJ2GZI9ZlUaKHUevvNrJOkcf54nwdHbnZqvXu/ITtMkN+dhsKWLM42hY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2949;7:6ZkvEx7sEsCBJRTYDZvYu6D0ESnJkci0DodFtlqm6aTa2fOl6ECOxmhXDBrINe+2eT1p7BqLU9li6I6ZT2zfzOJskmFq3hlrxAZ2Gl1onlpSuYSgnVeWV48ar3XGzmbI3ekqMxfEweP8VN5gYMLgnzlt5iNI2cArND8zHMSkyYyEJq8TETQLhtcc7cmoX9vXp2ccgRH3bpH9fC+b+XMmIBBCbmMSdOseqmr3fzrFl234zcm+3yG0cukSBmMmcozugQBdFM6Gt2W9ch8YD4y+pYcdGDGJqEOPjFl2AMVb5X/MYgm+HInj+eWIo713JXwVc6BtlK7Dt7OZYLiBxGglyQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2017 01:42:48.9283 (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: CY4PR03MB2949 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On some platforms, property device-type may be missed in soc node in dts which caused the bus-frequency can not be obtained correctly. This patch enhanced the bus-frequency calculation. When property device-type is missed in dts, bus-frequency will be obtained by looking up clock table to get platform clock and hence get its frequency. Signed-off-by: Tang Yuantian --- v2: -- fix alignment issue drivers/cpufreq/qoriq-cpufreq.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c index bfec1bc..e2ea433 100644 --- a/drivers/cpufreq/qoriq-cpufreq.c +++ b/drivers/cpufreq/qoriq-cpufreq.c @@ -52,17 +52,27 @@ static u32 get_bus_freq(void) { struct device_node *soc; u32 sysfreq; + struct clk *pltclk; + int ret; + /* get platform freq by searching bus-frequency property */ soc = of_find_node_by_type(NULL, "soc"); - if (!soc) - return 0; - - if (of_property_read_u32(soc, "bus-frequency", &sysfreq)) - sysfreq = 0; + if (soc) { + ret = of_property_read_u32(soc, "bus-frequency", &sysfreq); + of_node_put(soc); + if (!ret) + return sysfreq; + } - of_node_put(soc); + /* get platform freq by its clock name */ + pltclk = clk_get(NULL, "cg-pll0-div1"); + if (IS_ERR(pltclk)) { + pr_err("%s: can't get bus frequency %ld\n", + __func__, PTR_ERR(pltclk)); + return PTR_ERR(pltclk); + } - return sysfreq; + return clk_get_rate(pltclk); } static struct clk *cpu_to_clk(int cpu) -- 2.1.0.27.g96db324