From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753188AbdBNWNm (ORCPT ); Tue, 14 Feb 2017 17:13:42 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:58843 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752125AbdBNWNl (ORCPT ); Tue, 14 Feb 2017 17:13:41 -0500 From: Laurent Pinchart To: Sakari Ailus Cc: Pavel Machek , sre@kernel.org, pali.rohar@gmail.com, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, mchehab@kernel.org, ivo.g.dimitrov.75@gmail.com Subject: Re: [RFC 08/13] smiapp-pll: Take existing divisor into account in minimum divisor check Date: Wed, 15 Feb 2017 00:14:08 +0200 Message-ID: <2278259.j1SsZdfySc@avalon> User-Agent: KMail/4.14.10 (Linux/4.9.6-gentoo-r1; KDE/4.14.28; x86_64; ; ) In-Reply-To: <20170214220503.GO16975@valkosipuli.retiisi.org.uk> References: <20170214134004.GA8570@amd> <20170214220503.GO16975@valkosipuli.retiisi.org.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sakari, On Wednesday 15 Feb 2017 00:05:03 Sakari Ailus wrote: > On Tue, Feb 14, 2017 at 02:40:04PM +0100, Pavel Machek wrote: > > From: Sakari Ailus > > > > Required added multiplier (and divisor) calculation did not take into > > account the existing divisor when checking the values against the > > minimum divisor. Do just that. > > > > Signed-off-by: Sakari Ailus > > Signed-off-by: Ivaylo Dimitrov > > Signed-off-by: Pavel Machek > > I need to understand again why did I write this patch. :-) I was about to mention that a more detailed commit message (or possibly event comments in the source code) would be good :-) > Could you send me the smiapp driver output with debug level messages > enabled, please? > > I think the problem was with the secondary sensor. > > > diff --git a/drivers/media/i2c/smiapp-pll.c > > b/drivers/media/i2c/smiapp-pll.c > > index 771db56..166bbaf 100644 > > --- a/drivers/media/i2c/smiapp-pll.c > > +++ b/drivers/media/i2c/smiapp-pll.c > > @@ -16,6 +16,8 @@ > > * General Public License for more details. > > */ > > > > +#define DEBUG > > + This should be removed. > > #include > > #include > > #include > > @@ -227,7 +229,8 @@ static int __smiapp_pll_calculate( > > more_mul_factor = lcm(div, pll->pre_pll_clk_div) / div; > > dev_dbg(dev, "more_mul_factor: %u\n", more_mul_factor); > > > > - more_mul_factor = lcm(more_mul_factor, op_limits->min_sys_clk_div); > > + more_mul_factor = lcm(more_mul_factor, > > + DIV_ROUND_UP(op_limits->min_sys_clk_div, div)); > > dev_dbg(dev, "more_mul_factor: min_op_sys_clk_div: %d\n", > > more_mul_factor); > > i = roundup(more_mul_min, more_mul_factor); > > @@ -456,6 +459,10 @@ int smiapp_pll_calculate(struct device *dev, > > i = gcd(pll->pll_op_clk_freq_hz, pll->ext_clk_freq_hz); > > mul = div_u64(pll->pll_op_clk_freq_hz, i); > > div = pll->ext_clk_freq_hz / i; > > + if (!mul) { > > + dev_err(dev, "forcing mul to 1\n"); > > + mul = 1; > > + } > > dev_dbg(dev, "mul %u / div %u\n", mul, div); > > > > min_pre_pll_clk_div = -- Regards, Laurent Pinchart