Received: by 10.223.148.5 with SMTP id 5csp7702605wrq; Thu, 18 Jan 2018 08:31:55 -0800 (PST) X-Google-Smtp-Source: ACJfBosirTEX4yrJM6hxmgw5UMct8fsCHh1ZUI78JJHZ5BO1gx5JaHsbcRaID0d/bnPb39Cwx+hx X-Received: by 2002:a17:902:5a0b:: with SMTP id q11-v6mr54536pli.207.1516293115096; Thu, 18 Jan 2018 08:31:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516293115; cv=none; d=google.com; s=arc-20160816; b=zf4EN268CeV+Fg26xx6wpCphaFXyUmT9HFR9fVV79NgSdHUqOuhbYutbIOmaETaBuW K5S3gnCmI8Ik3ontmcEa8YWjIyEe7A1P0kuJcprYUjf74POAGRj0vFfV6foDkKRzUGpx /9JHSFmLPuJm5iDxksdWkGlu1fyJ/7OLCGOPUTSEApJXhS72PnKjmNfsV1t9g7w3Uf3F lYKb0JXMcsVee4ATuIoZaOH9PprXitxjkPhkfW9imVM/DyFKCwukkYGuf+bQgF6R2Nsx GuMn3up3TuqEZ7TexvZK8cviLfgk0PkUHLAHsEYBHfeP+7eu77wLx/dxGVBSRXb1kXzR wp2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=ap1jhy21KQnkyKLbGE8jMJ03QlL/uavznx5oUG2rUPc=; b=JMEnHaCMFqn5Q5P9VeT4qzR/SIs4E2fdMjmgwjhpxwQMrzbHx20M4jsMkE6BmZc3bU knCatrrOoiPNlyeUbiWbW1R9nbFf4lq4AuG4Xd38BTkvNkblcTtzYpoNYjhTu06EqLg4 Z9rX2ZYHNufLZalrpb67hENNkbzL2s2UCHD6XF6QSMwjKBCFx/gylwKNVuvJrnVd2F97 r90riMmi6ez6CfcRFYT+3j6E8xop/7S6rIiAfTSLAOYTWlxbUIgQmB+NxfI6v0+6wF9h 03T8Y/6rQx/inFoBbQNe7dXNH4ZZrqXTTFUEIpsQDGvio9T5PM327tXHg1lv06AOz3bZ F81Q== ARC-Authentication-Results: i=1; mx.google.com; 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 o184si6459178pga.697.2018.01.18.08.31.41; Thu, 18 Jan 2018 08:31:55 -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; 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 S933406AbeARQRy convert rfc822-to-8bit (ORCPT + 99 others); Thu, 18 Jan 2018 11:17:54 -0500 Received: from mailoutvs2.siol.net ([213.250.19.135]:47459 "EHLO mail.siol.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933392AbeARQRv (ORCPT ); Thu, 18 Jan 2018 11:17:51 -0500 Received: from localhost (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTP id 6B081521DD2; Thu, 18 Jan 2018 17:17:48 +0100 (CET) X-Virus-Scanned: amavisd-new at psrvmta10.zcs-production.pri Received: from mail.siol.net ([127.0.0.1]) by localhost (psrvmta10.zcs-production.pri [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id UrvQnG2zlT-l; Thu, 18 Jan 2018 17:17:47 +0100 (CET) Received: from mail.siol.net (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTPS id B1204521DE9; Thu, 18 Jan 2018 17:17:47 +0100 (CET) Received: from jernej-laptop.localnet (cpe-86-58-68-135.ftth.triera.net [86.58.68.135]) (Authenticated sender: 031275009) by mail.siol.net (Postfix) with ESMTPA id F0C6A5210A9; Thu, 18 Jan 2018 17:17:45 +0100 (CET) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Maxime Ripard Cc: airlied@linux.ie, robh+dt@kernel.org, mark.rutland@arm.com, wens@csie.org, architt@codeaurora.org, a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com, mturquette@baylibre.com, sboyd@codeaurora.org, Jose.Abreu@synopsys.com, narmstrong@baylibre.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-sunxi@googlegroups.com Subject: Re: [PATCH v3 02/12] clk: sunxi-ng: Change formula for NKMP PLLs Date: Thu, 18 Jan 2018 17:17:45 +0100 Message-ID: <4724479.MCcHYbe7Bl@jernej-laptop> In-Reply-To: <20180118105841.73rwj3he2exd7pno@flea.lan> References: <20180117201421.25954-1-jernej.skrabec@siol.net> <20180117201421.25954-3-jernej.skrabec@siol.net> <20180118105841.73rwj3he2exd7pno@flea.lan> MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Dne Ĩetrtek, 18. januar 2018 ob 11:58:41 CET je Maxime Ripard napisal(a): > Hi, > > On Wed, Jan 17, 2018 at 09:14:11PM +0100, Jernej Skrabec wrote: > > This commit changes formula from this: > > > > Freq = (parent_freq * N * K) / (M * P) > > > > to this: > > > > Freq = (parent_freq / M) * N * K / P > > > > This improves situation when N is in the range 1-255. PLL parent clock > > is almost always 24 MHz, which means that for N >= 180 original formula > > overflows and result becomes useless. Situation can be improved if M is > > used as predivider as it can be seen in the second formula. That way at > > least M > 1 is considered, but it still leaves small gap for wrong result > > when M = 1 and N >= 180. > > > > Using M as predivider shouldn't cause any issue, because it is in range > > 1-4 at most, so there is no or only minimal rounding error. > > > > Signed-off-by: Jernej Skrabec > > I'd really prefer to stick to the formula documented and that we've > used so far. NKMP clocks are most notably used for the CPU PLLs and > I've debugged way too many cpufreq bugs already :) > > What about using long long types for the parent * n * k result? Yes, using long long is the best possible solution and covers all cases whereas this patch does not. I thought that do_div() would cause a lot of overhead, but I noticed that it's not big if both numbers fit in 32 bit, which in our case is true most of the time. I will make a helper function for calculating rate, since using long long needs more than one line of code. Best regards, Jernej