Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756434AbcJWPqW (ORCPT ); Sun, 23 Oct 2016 11:46:22 -0400 Received: from mail-db5eur01on0084.outbound.protection.outlook.com ([104.47.2.84]:10304 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755184AbcJWPqT (ORCPT ); Sun, 23 Oct 2016 11:46:19 -0400 Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=pass action=none header.from=mellanox.com; From: Noam Camus To: , , CC: , , , Noam Camus Subject: [PATCH v2 2/3] clocksource: update "fn" at CLOCKSOURCE_OF_DECLARE() of nps400 timer Date: Sun, 23 Oct 2016 15:12:27 +0300 Message-ID: <1477224748-25223-3-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1477224748-25223-1-git-send-email-noamca@mellanox.com> References: <1477224748-25223-1-git-send-email-noamca@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22520.000 X-TM-AS-Result: No--5.686200-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:193.47.165.134;IPV:NLI;CTRY:IL;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(36756003)(48376002)(81166006)(50986999)(92566002)(76176999)(4001430100002)(2950100002)(47776003)(356003)(7846002)(305945005)(8676002)(8936002)(81156014)(50226002)(19580405001)(19580395003)(626004)(5003940100001)(5660300001)(4326007)(87936001)(49486002)(106466001)(11100500001)(33646002)(2906002)(586003)(107886002)(229853001)(189998001)(50466002)(77096005)(86362001)(5001770100001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR05MB1056;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD045;1:Maz5wqO11m5YEGWWiaVQJ/ZfAeoUrr/hZME0heqrZUepeFYr1fK3wleji6lpdFMzzzNYXvN8ATH0uXKSiyC+3+LZ+5OlT3nI3r6bEp96gGw2DQaUBZpINRgc2yb25t1jVnaK0WQwifX/A0oF3oWH+tpe40wX9XxG3q/sYPX3gaTCefHDT3WqD1L3k7TzTRZPlJzNB6AXQUEqSkJa6WYCOYnRD+y+TcNee5yMBD1B6F6/V7ZGo4RF5r3TsjrZ6Ed2cYnAi3U2yxh8dr+ULzl8FYpAnYSmOqQSrZGGaqHT2LM40V46iwd+ssefK7u0M8d9zDCPlGV9JO23trhcnwQIRhKhufd0V+SZ+dSoWXR8ZyoZJ3JExex9AM+0O2svmbHXSVZa0PBAx11Euggxwdr7/J2TxelPz6WkDtjjYMCw7nyjFbQw0zyWTCuDVyOSPMhVEHUyc7PuLZCk8xAy5A5Vu0TdrQ3O52EqD+bF06wTVEg7qWob60DAIo7yRm+Nibabh7p3CmmlHxv/vAodYuX34K6LWVLhu8fmdBglhWwxg48uq9177PQ/OZOB8E2568XT1q6F1hNgLwgK4gs5bdoowQ== X-MS-Office365-Filtering-Correlation-Id: 494a939c-8fa8-42df-fb2d-08d3fb3dfe48 X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB1056;2:nfhk47zHppJaSTOAuGl8CTdrEFBcKqGm9A6YM3iOkc+sSzJCZx5kAcWanDV+HVYft1iYEUUwjjWz4wiptMVVA1WbB2Ha62YWWT+sle1y49gW6d5HyFR0WztDnfYJm6rAcN7FNJZARnMaeTylgjYA6Yc9DjgazhSzzhbY5SxHiR/jkiJcAsfeCoVdWT+PFmY6JSXNlNo3zystCYB/vxR+Kg==;3:F88x5lcUC/Zy6dSCgfl109mxzG6vOnP3N4IdMFlgTePhbcWf3U0DPtWSD+zwNWbQfxAx1HT5ruOkI5PaoeK197ug8n2mTmpw+gKcoLYiIuO+ykJg+KwbaJjtgQixHvRhD0xo/NreFD518QDUAhjYV04j/bqHkoR1csluS1w8IZDVPf8GtNJAYxAVZBDJcvyp4Ibqw/Fqyx72IbXBq02o+JYeNLtVAW5o1PKkdPRHPUeFOsriUuJKfKCpfMxbPOk9b2YgTexq5w32xNF9XYbFAFT6YbBhzfRqBzdDMYzcYas=;25:8JXqI5bf5+hLVJ+BZczu2TOO4c3XKIOadQ6+5KAhFFBjJT/l3sGmfDVuQhH8Wsf7JjezjOCGtX+b54r7w6nA6aCcVQ1VvUSfQrlhg+QR9NBNozwSPItRYFMFeP8IPLGIzzi7VAH95LNVPrMUbPaylRSr1WA/hQ9l2NjPqt8x+kYmglHekbE9LR91cbAgrANq1s1BOGL3MRMwTTzvPdksfskASy8d1/0ylREnTERhe3fw45VLsIGROvHBqKdUNIUxo6tmKDkh6YIjWw+ofu4gk0Lr9p66CVjZYW7HOzo5YuCxlIYmUV9KAysAtNRRBUJAi/QGCLI7YXFXN9aZMIkRReyKnrtnUQhzxEWYrLxEGXbhzkbeAsIATz8fipRHbjh6MYZi9qizVfyKiHqEe3cvf0vcf61V1xLfygiSTgGfydzhBK3MNFdjpRRY/98KV4eB X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:VI1PR05MB1056; X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB1056;31:zpl6ZG2wBBgjCcjxUq/bxvPLRQtkLKhJZMhhebyr6R4ZypirVi85T6xP5/9uGet8g93rWVuKJyCFKLZZTXLhj2mR8TPuRC2B7JsnvYzBiYQvEDD/kDKKKIGgE7xZcMzsOB/d1yYAn6fSRvUrLX3Oeoh6eR6SCwvI+j9Sl3o3JNggvbz2WiSNWWrRfuAvaIujdR21+0+tgG1w4AOhnK5kuMlrY4zTSRMxvHaHQFmSuTVbZ/XukxiABpbg9cqU7Na/;20:STZrFIWZ4EKUjW5n9p9ocZti8GmYWy1eUwJRU2NPkY0ffXUvv0YoMSNzJHJtpov4vK+uqHC4FOvxMWc+Tz/Z7Ij58MxOHyQstniy+rCqIlp+z1fJ3q1SpmtKtS9FsxjTG3avEaEgyXFa6K8gEkGy5KH7Yrqw1FbBFXP0SR2kFMhwq71iaH0CqcCq6ouV2Eeh2gy7J03i90zju7061EA0UQB0Wkn+lp11Y3PIZEmhYfij9hEnNlzRCTiQLjZ1uCKgeyqHuSbcfx+v2ydkkg/36MMcKIqWvdEqBfiQoTEqHDf8ox6RM+PX5zHZf9SlM3JAz9yRHKhcOuJIeCBQSyjHCcQlqFe9mhzt+n8dvJpxWPEta860A8rhZc/v49sQIr7KPzwHSjgsRcV9RIXk052ZF7RpjBWsUkoMmgUWFEXQwe9PilLVTdQo0UxxBAfjQ+dmyWtR6zjSqnxjwPvD0sJjQC+nR5f0xK3IPppIlWBC4q0gBI46QSMiy76yVuhq762Y X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(10201501046)(3002001)(6055026);SRVR:VI1PR05MB1056;BCL:0;PCL:0;RULEID:;SRVR:VI1PR05MB1056; X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB1056;4:Z8205tGlIK90807EGxkkWnOUVhoUlDPZFtnuyDDlosWvx6Z7q941jfyavnrKwV9aV2qTaKucf8f/WmXjqX6tttfCvKBWyQ+vODSR76DiYq2PZ5DGcYr/26zIdC4t2Ng3ZAxcKY6nfeMxC6ccrKm5cYRxU0ETQuTVTJbg9cVnE3Q3T/pBuoNCklOYjkUTeurR4QdZgJlKLquLYLomzV7ND/aZha18gjDKLE0W6eWrTuzTIcf4nqbWgpy4L1iMhedaEScDwIHqq2v1sLlx1+A9IH+4iGTvKojRo5+Ytyu2mNolSXh9+Bx7O20uiS88lgpmYtpN/wOV92bbGEacsfdqa5GAbbHAPDseAKhfKOckrHZL56GmknmEi6aV5sIVWiZUXjeAaubYw26jdNUeIejwL8rWA0wXapUx48cWNCPnnGR6BwdS6pP9yuggxgfzdBq6cvyKik+2J6y7aTquhX7lhmo9VmsSCNFCBZZ8wkQUSSc8iBQzApEv3nsWQebFOD4h X-Forefront-PRVS: 0104247462 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR05MB1056;23:Ui/hBcmix0fymeDPwucvwE08YFbd50SKsifSfYb4V?= =?us-ascii?Q?0FaRZgl4b+jFNTwpMnQgZJc/FS/S83qe4dXzCb/uAc+2/khxIq0FXgVcyVy/?= =?us-ascii?Q?ESQRWTNH58VugdSet1rauFvvRz+imq5SQTemEHYbdegk2DWENT+IhL5wLhL8?= =?us-ascii?Q?yjp2tw+FSdw7HbJ+R33/Zcz813vB94ECq6GefNTM/Gxn1IspuYY19vczTmKS?= =?us-ascii?Q?j2Sgi2QEbtV9ig//r1qChKh+821HyDa4h8SvwYJGvBzigMljE6N8evBrwhAK?= =?us-ascii?Q?PmnSnAwRBrzq09TFe6/rr5MhcpTHchk38YLN3WJ/ro0ZDLUc90oIz9Ti5Pr7?= =?us-ascii?Q?3+jsVNP92wpVOwpdgmZcF5tAfuPkQ2ylrA5SUE5PWpfnWEM3S0O3LBtyNnXT?= =?us-ascii?Q?vC08ul6qM1bMsIH7mT9mrPjPOqfKLlQ+DxhBpbAip63kWFGp+GdURWrNKM5d?= =?us-ascii?Q?THwPUaU+dMU/qFWkGQOprYK7mcsxQWKNc61jmmkQ8Iwckh3Y1KuH1GfUlnlV?= =?us-ascii?Q?M6ZAT36kBst1pWhgTrj2f2S7ZnYqyiLoqQ7O3XfXz89khUVFD8AaxV6qs7i/?= =?us-ascii?Q?S2LWmwnhdeFH8vlpGXK8NyYMHO2pDReNKWZAJpRZeIcmcJKrvtth/id2yr25?= =?us-ascii?Q?sk5jYT+JSfNpQeRURM2QaHDhxmFX95UNlImqPc1AtJ9fytPouQcOBgEMj0ME?= =?us-ascii?Q?FMkET1FNfgAdV93fQmNG8k6f703hY3iiMVk1O9IGPxj4r5ogZuNExprwimr2?= =?us-ascii?Q?n1qTUjmfCvhDYxfY1QL2jobJGZT309rioNJlTmoAY4I3rqky8Seu9MTElhOr?= =?us-ascii?Q?TJDHV0wvcV5qzvuP7b5d+wJLhpPeQ4QLQkNWWr/ZfdG22G23RXCZwngAEGCj?= =?us-ascii?Q?pbd9w3Vkg0GRdWcc924plGghKnrsA7eJhW6NsHqNi4TmQQGIRrnyQHDCII66?= =?us-ascii?Q?AuWUlTUePgQBybQTjdBYUTXwqQShOm3JioStbsLmtAzA6eC9vtrtyUqhQgBW?= =?us-ascii?Q?+Iu/RFruAKs+7E3u8QHoP8y48oLskraWWi+MEGBklg1lM07F8lFrKzxCM7+x?= =?us-ascii?Q?4Phg3fDBr0tNLrR5jMFXiuZnRBFg+JP4+cS46Az5LKas4hzew=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB1056;6:Juz691bS1Bn4loztatuiOg5rC4nCk0CTHIpdXQuI+QZB/At8az5rCx9k50pr2wJfWILiiTVfYdEQeLnSJ88v+umpWkcu37OXfDFvjyZwBaZM1a09yRLPNJ+3REiyGGzPyuqoYyqkb1U/HEWe4+pM+ZI6P6w6fmSYKHYgJC3fKQ1yoQ0qClNQkIM+u6Bi2Yuew2fUFOXIf546d5Z9KYva6IGSFueh493f/l2MX+G29J33tYj/dQaqAEe7Fb0wsr2RIBERH2tctjNAkBDVlUFLQFGMYwp8eXvfVOiwgpdwY0FgCt2UnkcmCKYlImPuyzIXz+wJjS/Bh4XSn/Y2tedhictL49oP5x4uPs7gUBPu2eY=;5:bueoSwh/IUDQQhhBVr+sDUe7vqVML+TlrTJoWWQAf8YVcdUXsh4XRnFXmvUK647+RfM43LsDKo9zpz7IX6ASKGSZGIk1zaR9ApsNTtFLbko41MfiM2/iemEvDOJj++wdk7pXWkd0HBQckDh+Zf0/aA==;24:6+UE9WdRg7l7kl3zQKvKxASsTt/JOnkTDx//O4EqPLibny+9wbsXHD9LdL46C24/0qU5e4fuR/hjsKiRbUMUWriVbYLcyCoKZiF88lw7EuI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB1056;7:ZBzriXgAeZIg3sRslw7A/afZG+kJ9ieyCdO71vvaf5W0nM0S1Y/fyW/QtoW6RzwczJGwFByDIl8o24oFxR9B8EtYn1GoIHqRgKf9cMNVGXoRkOcTZLgzkf6KHewdCVlJKDOiQfEAE4wYBlPw7DH3FKMwiQTI5Javnm4j8+dSyVaHH+M0OOZ7+gmNrm8Dol0H0SXtUUADotEjQ86/2Duos11qnzZbeMLHP/7ktNMNN+cTrrnX+1LspEiTIdRjl+xxokOqxtWkzREVvKR8U7adNa4H1sSJCDR+NKJtyXS/b/kowg/0viDzV2Hj+1PbjAcrJMXALziDtLTEKJazYlMsxq8dUTcRm6+6Hy/JMNvkSOU= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2016 12:13:26.5272 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1056 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2771 Lines: 100 From: Noam Camus nps_setup_clocksource() should take node as only argument i.e.: replace int __init nps_setup_clocksource(struct device_node *node, struct clk *clk) with int __init nps_setup_clocksource(struct device_node *node) This is also serve as preperation for next patch which adds support for clockevents to nps400. Specifically we add new function nps_get_timer_clk() to serve clocksource and later clockevent registration. Signed-off-by: Noam Camus --- drivers/clocksource/timer-nps.c | 49 ++++++++++++++++++++------------------ 1 files changed, 26 insertions(+), 23 deletions(-) diff --git a/drivers/clocksource/timer-nps.c b/drivers/clocksource/timer-nps.c index 70c149a..6156e54 100644 --- a/drivers/clocksource/timer-nps.c +++ b/drivers/clocksource/timer-nps.c @@ -47,6 +47,28 @@ static void *nps_msu_reg_low_addr[NPS_CLUSTER_NUM] __read_mostly; static unsigned long nps_timer_rate; +static int nps_get_timer_clk(struct device_node *node, + unsigned long *timer_freq, + struct clk *clk) +{ + int ret; + + clk = of_clk_get(node, 0); + if (IS_ERR(clk)) { + pr_err("timer missing clk"); + return PTR_ERR(clk); + } + + ret = clk_prepare_enable(clk); + if (ret) { + pr_err("Couldn't enable parent clk\n"); + return ret; + } + + *timer_freq = clk_get_rate(clk); + + return 0; +} static cycle_t nps_clksrc_read(struct clocksource *clksrc) { @@ -55,23 +77,17 @@ static cycle_t nps_clksrc_read(struct clocksource *clksrc) return (cycle_t)ioread32be(nps_msu_reg_low_addr[cluster]); } -static int __init nps_setup_clocksource(struct device_node *node, - struct clk *clk) +static int __init nps_setup_clocksource(struct device_node *node) { int ret, cluster; + struct clk *clk; for (cluster = 0; cluster < NPS_CLUSTER_NUM; cluster++) nps_msu_reg_low_addr[cluster] = nps_host_reg((cluster << NPS_CLUSTER_OFFSET), NPS_MSU_BLKID, NPS_MSU_TICK_LOW); - ret = clk_prepare_enable(clk); - if (ret) { - pr_err("Couldn't enable parent clock\n"); - return ret; - } - - nps_timer_rate = clk_get_rate(clk); + nps_get_timer_clk(node, &nps_timer_rate, clk); ret = clocksource_mmio_init(nps_msu_reg_low_addr, "EZnps-tick", nps_timer_rate, 301, 32, nps_clksrc_read); @@ -83,18 +99,5 @@ static int __init nps_setup_clocksource(struct device_node *node, return ret; } -static int __init nps_timer_init(struct device_node *node) -{ - struct clk *clk; - - clk = of_clk_get(node, 0); - if (IS_ERR(clk)) { - pr_err("Can't get timer clock.\n"); - return PTR_ERR(clk); - } - - return nps_setup_clocksource(node, clk); -} - CLOCKSOURCE_OF_DECLARE(ezchip_nps400_clksrc, "ezchip,nps400-timer", - nps_timer_init); + nps_setup_clocksource); -- 1.7.1