From patchwork Wed Feb 14 13:43:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 128345 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp622348ljc; Wed, 14 Feb 2018 05:44:10 -0800 (PST) X-Google-Smtp-Source: AH8x225tnzsu3p9dS3Is78lMNdBvK2KF6Eu7DOvngY22MFmbzzr3+BKvp1Ze1hqjuwnFzAulirgM X-Received: by 2002:a17:902:aa46:: with SMTP id c6-v6mr4556829plr.357.1518615849871; Wed, 14 Feb 2018 05:44:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518615849; cv=none; d=google.com; s=arc-20160816; b=U8sfsbonuCxmwL0wQwQfYC2RlIQ5dNPw9vmFSt/FxRTeGcAw/yauuq8gGFk6oqwGg9 EGBuoZgYfVMRrRc3UPHLxpRmxYeqZ1Av0prDhy7eSWTvptE3bF7qoZXy0AaPdkDsn7Vy hGUkmpgz/kcm5GHC2jZewPzSBeWL/6H2xtBNBy0ugrTeiosr8i07caZKqCxtthdztsm1 d1SJ7YvGfFP7sYY7fXAqNLzRR2S6ehAX7bLs0ql4R+7ad7E6ZJiDs7Ay5W2TpY9mH5zw XeXChglvDBx6TOoDcPgO+4KoHjHXs7dG1psop+A1Lu7eGsz3Phi9vwW1kuslARe5cM+l QBZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=bDLLco5S7iNPdRidSWRUB29Devrk8i84t9g+zhPMvLY=; b=oooG8LGnb8m9I6u1/TnNL++RDuJn5KBpFefwV2pTbepbdmZq9l3DAVeUA4CwL6BLmW 7y5vzAt4OzdERaqON0wdvDbh9dRYR8N9RhUCiOEDyCDYaRKrkBDwAtw20hKvc5wpTNAJ G4bM5zAz18B5uTrXOcwhY+Y0Nq8nluty0weNsTAMBd6ZeetIuulp8ebbN5e09QJHclJN oJ8eaJiXyZbMh3zlK9mc6mYLaz/ZpZ+ctq7eN0S0/zJSx0wQTl2OE9f/QjrugUcitA0Y 2tcN1aKI6jwsXtCjCVz4v2aSJ2qPDBksGV+JyZQsMLjye4+WfpmTk+rBDu6TrxXlryiZ Q5Pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=pr2o+INe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v35-v6si1453710plg.724.2018.02.14.05.44.09; Wed, 14 Feb 2018 05:44:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=pr2o+INe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030426AbeBNNoH (ORCPT + 28 others); Wed, 14 Feb 2018 08:44:07 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:33680 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030406AbeBNNny (ORCPT ); Wed, 14 Feb 2018 08:43:54 -0500 Received: by mail-wm0-f65.google.com with SMTP id x4so17839148wmc.0 for ; Wed, 14 Feb 2018 05:43:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bDLLco5S7iNPdRidSWRUB29Devrk8i84t9g+zhPMvLY=; b=pr2o+INelgXpqL6Bk3gT/HIgRHt/I6xw4pGAzkYIFizF1N6QwH4pO2+a4mpeoXL5Cw rlgQ+ecsIfe8f2yxXn+snhAI26HvdLGIcEXqMUbRnqS0YKrAJyyqQ7QCuEH8CPpw+qwW OHZEm60cAyyk8xfQ7wIaEeyz/l9+6ItXtAGpWXI6+alEm/9GxDH4P9odcvtoiNfrXpps nZB/xowk8q7TDeW3S9xvT1VIAOXOGo7RMYkZxE+JzTx9ElNA78lCewgXTH39hsZ0ivIs ahXEnfhQKizQ5VzLWWfgDgvbneH5aja6QsBUSwIE/qt0i2xiICJD5RE01fDul2gx/oE5 dwgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bDLLco5S7iNPdRidSWRUB29Devrk8i84t9g+zhPMvLY=; b=t4b2ZgeaYs6sxKf8txMc68cpfAzx2TdnSrW6zjHL8Bcky7paeiVNRLby1dMHqb3zXD y/nTCad8chjWn4uDWi0+a5hBzSO8Q8QIkE3ZW3Q6RC7bFxj/zhvVHX8qXBNn9bGE61j+ ndmK4+N8tvHJyK05wSwnSYFxDSQw+OMNT/sd9PVv0kToZ331rlNmgM/08+6dX4r13X2H 5D9tZabnh5ho6937ooH+/leIUgQe8sUjbjS/qaXghQMh1b3klcIBqYgjunC61P+0Lhvm PXi4PFchJqt7EG5hws5roAac+nSnsRZmrhV+nML4JAT81IWpXj5mFemxS3na0CjBa7G1 mIJA== X-Gm-Message-State: APf1xPCMG0rueDkI0PQD/Bdbe+MIRZZl68Y6ilRVDdB0uMNkyEFelh5v mMCEEk8Qm1FPeIHXV7PE4ESH0A== X-Received: by 10.28.206.6 with SMTP id e6mr2000200wmg.160.1518615833469; Wed, 14 Feb 2018 05:43:53 -0800 (PST) Received: from boomer.lan (cag06-3-82-243-161-21.fbx.proxad.net. [82.243.161.21]) by smtp.googlemail.com with ESMTPSA id k5sm6337694wmg.47.2018.02.14.05.43.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 Feb 2018 05:43:53 -0800 (PST) From: Jerome Brunet To: Michael Turquette , Stephen Boyd Cc: Jerome Brunet , linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 8/8] clk: qcom: use divider_ro_round_rate helper Date: Wed, 14 Feb 2018 14:43:40 +0100 Message-Id: <20180214134340.17242-9-jbrunet@baylibre.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180214134340.17242-1-jbrunet@baylibre.com> References: <20180214134340.17242-1-jbrunet@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There is now an helper function to round the rate when the divider is read-only. Let's use it Signed-off-by: Jerome Brunet --- drivers/clk/qcom/clk-regmap-divider.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) -- 2.14.3 diff --git a/drivers/clk/qcom/clk-regmap-divider.c b/drivers/clk/qcom/clk-regmap-divider.c index 4e9b8c2c8980..1ee75a5e93f4 100644 --- a/drivers/clk/qcom/clk-regmap-divider.c +++ b/drivers/clk/qcom/clk-regmap-divider.c @@ -28,22 +28,14 @@ static long div_round_ro_rate(struct clk_hw *hw, unsigned long rate, { struct clk_regmap_div *divider = to_clk_regmap_div(hw); struct clk_regmap *clkr = ÷r->clkr; - u32 div; - struct clk_hw *hw_parent = clk_hw_get_parent(hw); - - regmap_read(clkr->regmap, divider->reg, &div); - div >>= divider->shift; - div &= BIT(divider->width) - 1; - div += 1; - - if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) { - if (!hw_parent) - return -EINVAL; + u32 val; - *prate = clk_hw_round_rate(hw_parent, rate * div); - } + regmap_read(clkr->regmap, divider->reg, &val); + val >>= divider->shift; + val &= BIT(divider->width) - 1; - return DIV_ROUND_UP_ULL((u64)*prate, div); + return divider_ro_round_rate(hw, rate, prate, NULL, divider->width, + CLK_DIVIDER_ROUND_CLOSEST, val); } static long div_round_rate(struct clk_hw *hw, unsigned long rate,