From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753436AbdCIIaE (ORCPT ); Thu, 9 Mar 2017 03:30:04 -0500 Received: from mail-dm3nam03on0078.outbound.protection.outlook.com ([104.47.41.78]:12064 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752672AbdCII35 (ORCPT ); Thu, 9 Mar 2017 03:29:57 -0500 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; From: YuanTian Tang To: , CC: , , , Tang Yuantian , Tang Yuantian Subject: [PATCH] cpufreq: qoriq: enhance bus frequency calculation Date: Thu, 9 Mar 2017 16:15:06 +0800 Message-ID: <1489047306-31818-1-git-send-email-andy.tang@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131335217554370767;(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)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(105606002)(47776003)(53936002)(8676002)(8936002)(50226002)(50986999)(77096006)(86362001)(356003)(36756003)(106466001)(85426001)(305945005)(104016004)(8656002)(38730400002)(4326008)(54906002)(81166006)(2906002)(189998001)(48376002)(50466002)(5660300001)(33646002)(5003940100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR03MB2954;H:az84smr01.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;MX:1;A:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD050;1:bjyjX7plsUipPViCNrKo+Mvf5H5TUrwYR8NvrgAOAiXeZOj0ImEkqvHZvl+6lWDGmuzDaxpw5LDtLSM99EiGSb1MSLJw1K6BKUUCE1iFD+K715F6jrTA+vPOTPzffpEI2TbI3usnES97/RkyTwOudTfqq3GiubxplM59mhw8DtLZp5BhHo2jJtDia+/zoh8dbvVHCQ52a6Nvr9rcN1+SRUFGW4SuWKWpVi4MXoj573jkNHG1sjyJnpCiqMiOZVHKtyxLLNfojk2RE252BA9EM4NR+9cdSSdbwr0+kcUEpvxSJweTll8o85e0byfAAoA4NxzaymbAcPIITLjtI3lw83RSjqPMVxnNDp7ltqyrsmXp6ZRU5TnDuDBQeYXS6TiS8ytYXjQdLIMLnTCPwZ5bw0d7YHDHNnR6B50Dnrtxu24h7YTw8JrhT820ou85Tk87iY6bd6jaWYwQGM6y/26B6puzijTXtiRwo/cZHOEEC0QWceSMBnCjf8hgFSdPD7yg3QOXqiUJiZxS5LQ2g1OrAXIywVRZhYhCbBanl5/JtG1xAW7Cnvb+buAq20T56ZF+WCSijAACY1YDu5UkoU3Lea0WTy0zw3VwQXpis3mCjwGBXcpnL9TP//su6USbO9WjQ6GGmiW4cHkoX8PylZefwRPlOQ/os8Cgx5/MLmDm2o4fitrTSHwuRN/Qn7Po8QRuk5/De7MDx3S7sxKNdHf9Gg== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: a6d56fad-1ac9-4bb1-4f71-08d466c65f48 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR03MB2954; X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;3:ayQklgoCFWXM9/38CJt6HEKmYWOHfpmYnAGE+e9OpGzZ7CV+2Kf6qrsv62RdnizBR9WyfxLoSzoQ75Iis7ZQNy3Lse7PFth6ktTXaBAmnI6XRCEjZzYaQYBS/DIaZ1VALBq//uvu4NpIDcBjiW8JPqojML/p2Mll7iK3m/q5JSIEHrJvSeAm97Pco4sSHj3T9lJCR53SaE1PX4OgO5tecOAYndcpRM47ySH5YTib4hBsaCfkeq6hnEgcxDrH8TaXKY8Qn6HzzNDkCEAEr9T5rE4Af2X/6jYk+eHWeLkQAdkiCXekkmxXxlLCi5EUs+SvIwvgueLe8KnG6RkH3OQRJx7jQPE/pajXkurX/r0TLSg=;25:EhLjJfaPk2YV/oh2apgmpU+dUmlZn8rUsn3X4ZM+dkVKnqWBquZ0nN5AvyhonQT/YV1ny6tjMXchxx9tTghUcjS3t1LaOB09ScnXvG8yyJgzz9aelmBlkT0RkxWVY8pWvAEi0UzbTMvKniKwXxvzZfD2DqOVeucPd2ZkfXS29BDI20S3ww+qLIRLNiVBZmdT4lF6UTQs+U1gC5eI1PaMBjymNUkHb6CZFpA49Z2cPNQsJkRT1D8rwKxOSWksAY2NLe2zgxiM86o3WO1kL3awNlp2+XbsCnXRdOfuqpb9saVbw4NxvcGlmxkIcXfXlg06eVsPcF3Y+nQLptRckP/oigHZ8FBJoq2hrtheP5hPTDHODLcU1Mg9CFyp17EzpbGNoGss1UsvPp1+4fL19vyV+nEzchYzAu7+EruGBCouEePQZbNGDL/DzqOCiWA5AM/i8DHlG+bl9sZgKjIr/r7OsQ== X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;31:InzFYHBfSwmgmZBQLrYUQGHljTw7QYnKLEmky6hQ2ctzHipjxSqnkr0KjIJN4TLc36Gv9b6MdJNudz5KNeqMvAev9GnRCqs6WqG7ZUkzT+jDXV3gmin43RE/q0wRU9L9lOjpOF/kshTprM/Yw0uDdhTK85N7Z79P+AkrKUiAldcdOxyZEuz0saWxRQtvYTfT4XUIyF8c6qVedUV11IeUinGfR+vQaluIzT8jNBDH+J15KVPHtBjG6Nt7IZ6VE1YYCKsejTCuGXXsWj24AmI60Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(204673448043490); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095060)(601004)(2401047)(8121501046)(5005006)(13017025)(13015025)(13024025)(13023025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123563025)(20161123561025)(20161123565025)(20161123559025);SRVR:DM5PR03MB2954;BCL:0;PCL:0;RULEID:(400006);SRVR:DM5PR03MB2954; X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;4:ER40D4F6ZC6TYdqwOduEa0+harqDgk0U29POh/zMcHibLTZW44/bb88yVol5rBz7yf9O2z4JBdTJ9ucMxOBFQ5dNluPbJd03U40wvuyOJyfCMd3+bbxMupagEOQn2BLID4RTrA7qe9DBVPuj36r6JZkA6ubDdhqbEDPGqE+6pRaYGkwF3l8EjDaOnRQI6ssY7oNRyNThF3DbGinxP9gVOx0uHySBNqpasfdXiR6TTXW2OqJEpE2QQ0IKqB6gzUq7gjq9GsNacXyO6SI6GgEiZ1aUNYzHOb4ibLK03df6GDbeMzBhIVpI7vX1wcoqEC49ZJZW5JpgVo0KvVRoGuMaifGagzBRHQvrh0YOL3wMbkfOweAnZ6XU7576w9J7HWOt85KPHlzHZJwAEX6lbyMAKtXzSdrT/n9V3wybiEZbywvWQBsx8hzrTPcngt5tQXa0sY/ytgstHHMrAUreg1+LKJCioRzZJJHaloTV+IcjfGulI3XvL396irpgFUEjqUq5MtZZle/LCJZ/iV/GYO/4Cs50Va0wvNc2Ewt9lYX87rOadFbMbFjqoZ0KvUzWf2XkQ1sa32D/MSr2/bqjv6aTV/2bqF4uISWzRWjGnW49j18jw8jfmAsx0RrJRyw92LVqdWhAeHIgCzcSxJY11p2dbNglbF2/f5tGDFLsb/j2EPAouvnGnk+1MHsDnkhhyuQ03sUtZAkjY+0xsDzlaLUS+oYryeNxyIZvunRfAShD8QOfLrCh/bkAOOPPwQWMBuwWRE8K5tGcaBjW3QUnYwZ12A== X-Forefront-PRVS: 0241D5F98C X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;23:clrQgn9t+dH39xUJItK6eX/VxORWPb5x8TYikxWqKKG39V4AhzxlmveoaFGb+Mlz9vWRLJ+y59Si6NnM91yE6mMI3Y3jyTXchU2pKVRF4wIDsrgBXec52h9/ia+Q6wkgFt5bKUwpdTz6ukHRp+HPjqWpVxc1Slbg2NkZe+qJ96zCiIKDlokZxBmMxY4L9PUIVhaTsQWpUHEozexwGhb0FQrz5id2d8UTMBlI7BZVNcHIMkHVNBti+OO9tRIWLEqcKpZ1JL3w2Me89WQ0tWXN0X5JchJPNXdJqCb0o73UtrTJdZv1/d89XdKn7KhzhW6I6ialf/0JJQ5GzGH0wqdPUXttO6tRBw2txAR8SZIjjfC4XohzSabZeA6xbwjzeFpwlC73QBVVSzlO3cll6iKWKHfW5XcSNO7EZx7WYtqvwK0FRhcUnlr3sMbWC4nezNb4nILuNRJYPv9HbCx+62Y4D+GCkdUIya7+PVwc4zUTl/KhutEahYmq9aTcbTP834fWs311+KXkkjXez6Dw5gzOmNKGMufJRc09HVZwOPRg7/y/F+Bbzn30h7BU4+6LvRjg+hhFRHyfdPuM29xj1DUQUz2I6lUmnhl6El1Zh5L6NoCVU2/eWmc7cEVgQSSAtBA9+qBgVRV+FF6uVqTGHY5kqCLsZLSbdKEwE5T2d7ONX39DVrK8EYKwkloYXgGmE5vnJtv1s31QeUo3g7W1CdguRxMFznVeXoB7KpCVaLsiwfOOiD7T4d7zzlnUP8s4FGJimjb6xq9O5QKtxFtWPu5KLnBJmUsbzBWp8bjFMX94jW2HS/st/MjT8QXXCTFtTijy7yX0pGxmroJhiyqGpbFcNZmxRzHU1aujpnkxcP+GpL9I1EGB9M4/PAxIKqrnAC9wTu+fr8CP24w21G/ffyI6dQ== X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;6:IRHhrCSAh9hLjFq0u8FgoHd9OtQrFs/qG68vU6C3othswHR1ls5oDM1asDKwxzeAydd8m084/sGAF6XnmxBxCPvBS0niZ7vFIo0oEhD3B1ZV/M9MfxLvTISxsA6xsFrQtJsQUL3Y01m6LEA+sv32wALImh2f7GfmHHfTENddgH5Lo47iGmXnpkVMYVYJbgCpUYYcHA+zoYSDadPt4qBvriq+//ilxle/7cZzcWZnsZJDTghetBV4fCHB3s/T4KflsqXcNWmKLw8+6v+4NTbYq15rjcr/OuJlQp5jY3OUuaDPsG1TEvl44HYwNk5GC0TT1ASBEwQCQgDa7kFDmiZYCYMyDZDnisDXhQoQHgAbepb30yTNtSa4ZpghB/x+TLmaOFX2VQQ3kAb6/Dfvg6RMy5HAGb5D5T2zcvwdhIgwY+0=;5:g7VN3ZnAiQk8lgDk+0yQAAtb4Dd9aqlYwMhUhcjFieqcCJUjzRy3RNSDe1ll6WFxU8e86CTCQa02oBP7HSUUfocLidVJUJy+73sB+Ys3tueW/EnUy9y0e0w8rQL6ZfG0/SEn7MfnFPvZ7GfB8L2bmiHze0UwGxEVymLEyTo5RUnrcJQdbfJDvZTmtVhFDCsf;24:hPIcjWjuTTxq6dRTrvTYdPsCGvpz1YozKXugmsKpuT7XTu9fVPf2qhtOjTxMRYB2xl3ON2xOJaMGBiCcXScR6tlOIBYepmxY6AIG12LULeI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR03MB2954;7:VtwZvsoRszNPLdGDgTb4uB8k3r4qw7DJzOgS41NR2jd4Eot2w8s0Gs1ltnW2Ncikqc+Y+KMR7odo6OQbI5s3x5kagZ3NbOx1FDWASciLFyXlNpeeYGvgbPGoVwsoHMHfo3u6iIiymcJg5fN7FzZSczB7mihM9xaeISWpJ6i2Bs89xSplNbQVyHp0tUPzhwysR0sCVybKeTiuRzVaityj1BJAHuJxxEYoZ41FX0T19wkckQxgWoCIpZuW8TitKSnxN5GLr1ZGm565wUkFdCyRgSIo4RWmhomDmYZR2yb/W5G/mMw9o9U2qxRbwMGLHgN2Mwms2QSvm12mv3JSWVlexA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2017 08:29:10.0863 (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: DM5PR03MB2954 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tang Yuantian 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 --- 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..0f22e40 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