Received: by 2002:a9a:45c2:0:b029:115:3f2f:b9e1 with SMTP id r2csp847094lko; Mon, 5 Jul 2021 00:15:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRGSiCE6d+fjoRtg+4Gi4ZZk6UckUh384RRmbEvxo1ciXLHA5yWvdEIDDQfLpwxqqou9Aw X-Received: by 2002:a92:d60c:: with SMTP id w12mr10063815ilm.246.1625469310329; Mon, 05 Jul 2021 00:15:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625469310; cv=none; d=google.com; s=arc-20160816; b=01mxqLG5/ogQROcVgv7VSAVI2PqLHfw93XyjdtPhdaDBgW0oZSKZKXX6uaaosmUd1d a14y21cI1Y3mU1ehkJRrgFxCAxPXOKjbVCPj6rTAl7DIjgDY7kvnnxhwQ9UA40Ur2nXz kywej9FLlNs+Y4tToRB+aYnzblYcFKnj4DxedzF+Lj09i+K9nzMzF9WhMAO4qu0Q1S8R j13Jpf/rigB5ytCuttEzZxAyTe8aiwWcgUX9ee+A5iQCG10nF3VR2Hf4L6/+aHXYR5C6 RsZ6VB1N3swvDO/CHdL9TPKrN9Mrntg0atR/QhFO7MaT5BTy65f8bj3OrOyDP3k0s0Mc mnAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=sGY2Xo5nRpya1iozs6Zn1ymyhmImu02DSEk/bfE1Ri0=; b=mlVmuvQzDnucQrSPYQtsYarUmfDzXPZX8/Aw0fR4LeQAzOsa5Ca9KRrLAhkP1YznCK lOqDF+C8yDdILtA6PyIvNzfVt4JhFPJS2v6YhbIIFCmnEX/4OzO8/8661YJS43j6AaeU D/gUZ444novsUyT6+kPhp/T3Tv/MQs3DRuSSyJ07+xWyAW/XbOZK834QFUclUmg5Io6T 6WskazK1Jk+azi2yxpJDItkaKFhbx8buNbiR/0WWSNiZb/gj7uxeqyIIMIAhgrclPwNy m1X4x6TRhF/SIbx03BheYNSKum3GPnsuVIkvPFj6b5BWRwt1Bb0EVydq6H1YnnowtNM0 dYcw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w16si4100084jal.57.2021.07.05.00.14.59; Mon, 05 Jul 2021 00:15:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230002AbhGEHQ3 (ORCPT + 99 others); Mon, 5 Jul 2021 03:16:29 -0400 Received: from mga17.intel.com ([192.55.52.151]:47704 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229941AbhGEHQ2 (ORCPT ); Mon, 5 Jul 2021 03:16:28 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10035"; a="189314758" X-IronPort-AV: E=Sophos;i="5.83,325,1616482800"; d="scan'208";a="189314758" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2021 00:13:49 -0700 X-IronPort-AV: E=Sophos;i="5.83,325,1616482800"; d="scan'208";a="422279299" Received: from paasikivi.fi.intel.com ([10.237.72.42]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2021 00:13:46 -0700 Received: from paasikivi.fi.intel.com (localhost [127.0.0.1]) by paasikivi.fi.intel.com (Postfix) with SMTP id BBB5420188; Mon, 5 Jul 2021 10:13:43 +0300 (EEST) Date: Mon, 5 Jul 2021 10:13:43 +0300 From: Sakari Ailus To: Stefan Riedmueller Cc: Laurent Pinchart , Rob Herring , Mauro Carvalho Chehab , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Enrico Scholz Subject: Re: [PATCH v3 1/6] media: mt9p031: Read back the real clock rate Message-ID: <20210705071343.GR3@paasikivi.fi.intel.com> References: <20210702095922.118614-1-s.riedmueller@phytec.de> <20210702095922.118614-2-s.riedmueller@phytec.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210702095922.118614-2-s.riedmueller@phytec.de> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Enrico, On Fri, Jul 02, 2021 at 11:59:17AM +0200, Stefan Riedmueller wrote: > From: Enrico Scholz > > The real and requested clock can differ and because it is used to > calculate PLL values, the real clock rate should be read. Do you have a system where this happens? That suggests there's a wrong value in DT. The preference nowadays is to rely on assigned-clock-rates, even though it's inherently somewhat unreliable, just as clk_set_rate(). This is an existing driver though. The old ones could be kept for compatibility with older DT binaries. > > Signed-off-by: Enrico Scholz > Signed-off-by: Stefan Riedmueller > Reviewed-by: Laurent Pinchart > --- > drivers/media/i2c/mt9p031.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c > index 77567341ec98..3eaaa8d44523 100644 > --- a/drivers/media/i2c/mt9p031.c > +++ b/drivers/media/i2c/mt9p031.c > @@ -255,6 +255,7 @@ static int mt9p031_clk_setup(struct mt9p031 *mt9p031) > > struct i2c_client *client = v4l2_get_subdevdata(&mt9p031->subdev); > struct mt9p031_platform_data *pdata = mt9p031->pdata; > + unsigned long ext_freq; > int ret; > > mt9p031->clk = devm_clk_get(&client->dev, NULL); > @@ -265,13 +266,15 @@ static int mt9p031_clk_setup(struct mt9p031 *mt9p031) > if (ret < 0) > return ret; > > + ext_freq = clk_get_rate(mt9p031->clk); > + > /* If the external clock frequency is out of bounds for the PLL use the > * pixel clock divider only and disable the PLL. > */ > - if (pdata->ext_freq > limits.ext_clock_max) { > + if (ext_freq > limits.ext_clock_max) { > unsigned int div; > > - div = DIV_ROUND_UP(pdata->ext_freq, pdata->target_freq); > + div = DIV_ROUND_UP(ext_freq, pdata->target_freq); > div = roundup_pow_of_two(div) / 2; > > mt9p031->clk_div = min_t(unsigned int, div, 64); > @@ -280,7 +283,7 @@ static int mt9p031_clk_setup(struct mt9p031 *mt9p031) > return 0; > } > > - mt9p031->pll.ext_clock = pdata->ext_freq; > + mt9p031->pll.ext_clock = ext_freq; > mt9p031->pll.pix_clock = pdata->target_freq; > mt9p031->use_pll = true; > -- Kind regards, Sakari Ailus