All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Maxime Ripard <maxime@cerno.tech>,
	Mike Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-clk@vger.kernel.org
Cc: kbuild-all@lists.01.org,
	Naresh Kamboju <naresh.kamboju@linaro.org>,
	Alexander Stein <alexander.stein@ew.tq-group.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Yassine Oudjana <y.oudjana@protonmail.com>,
	Tony Lindgren <tony@atomide.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Maxime Ripard <maxime@cerno.tech>
Subject: Re: [PATCH v4 22/28] clk: Stop forwarding clk_rate_requests to the parent
Date: Sat, 14 May 2022 10:12:59 +0800	[thread overview]
Message-ID: <202205141043.hBe4IIkE-lkp@intel.com> (raw)
In-Reply-To: <20220512160412.1317123-23-maxime@cerno.tech>

Hi Maxime,

I love your patch! Yet something to improve:

[auto build test ERROR on clk/clk-next]
[also build test ERROR on linus/master v5.18-rc6]
[cannot apply to anholt/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Maxime-Ripard/clk-More-clock-rate-fixes-and-tests/20220513-001815
base:   https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
config: arm-sama5_defconfig (https://download.01.org/0day-ci/archive/20220514/202205141043.hBe4IIkE-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/2034099e179a2af8cd5752935973b61236748c0c
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Maxime-Ripard/clk-More-clock-rate-fixes-and-tests/20220513-001815
        git checkout 2034099e179a2af8cd5752935973b61236748c0c
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/clk/at91/clk-generated.c: In function 'clk_generated_determine_rate':
>> drivers/clk/at91/clk-generated.c:192:49: error: passing argument 2 of 'clk_hw_forward_rate_request' from incompatible pointer type [-Werror=incompatible-pointer-types]
     192 |                 clk_hw_forward_rate_request(hw, parent, req, &req_parent);
         |                                                 ^~~~~~
         |                                                 |
         |                                                 struct clk_hw *
   In file included from drivers/clk/at91/clk-generated.c:10:
   include/linux/clk-provider.h:69:65: note: expected 'const struct clk_rate_request *' but argument is of type 'struct clk_hw *'
      69 |                                  const struct clk_rate_request *old_req,
         |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
   drivers/clk/at91/clk-generated.c:192:57: error: passing argument 3 of 'clk_hw_forward_rate_request' from incompatible pointer type [-Werror=incompatible-pointer-types]
     192 |                 clk_hw_forward_rate_request(hw, parent, req, &req_parent);
         |                                                         ^~~
         |                                                         |
         |                                                         struct clk_rate_request *
   In file included from drivers/clk/at91/clk-generated.c:10:
   include/linux/clk-provider.h:70:55: note: expected 'const struct clk_hw *' but argument is of type 'struct clk_rate_request *'
      70 |                                  const struct clk_hw *parent,
         |                                  ~~~~~~~~~~~~~~~~~~~~~^~~~~~
>> drivers/clk/at91/clk-generated.c:192:17: error: too few arguments to function 'clk_hw_forward_rate_request'
     192 |                 clk_hw_forward_rate_request(hw, parent, req, &req_parent);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/clk/at91/clk-generated.c:10:
   include/linux/clk-provider.h:68:6: note: declared here
      68 | void clk_hw_forward_rate_request(const struct clk_hw *core,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/clk_hw_forward_rate_request +192 drivers/clk/at91/clk-generated.c

   129	
   130	static int clk_generated_determine_rate(struct clk_hw *hw,
   131						struct clk_rate_request *req)
   132	{
   133		struct clk_generated *gck = to_clk_generated(hw);
   134		struct clk_hw *parent = NULL;
   135		long best_rate = -EINVAL;
   136		unsigned long min_rate, parent_rate;
   137		int best_diff = -1;
   138		int i;
   139		u32 div;
   140	
   141		/* do not look for a rate that is outside of our range */
   142		if (gck->range.max && req->rate > gck->range.max)
   143			req->rate = gck->range.max;
   144		if (gck->range.min && req->rate < gck->range.min)
   145			req->rate = gck->range.min;
   146	
   147		for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
   148			if (gck->chg_pid == i)
   149				continue;
   150	
   151			parent = clk_hw_get_parent_by_index(hw, i);
   152			if (!parent)
   153				continue;
   154	
   155			parent_rate = clk_hw_get_rate(parent);
   156			min_rate = DIV_ROUND_CLOSEST(parent_rate, GENERATED_MAX_DIV + 1);
   157			if (!parent_rate ||
   158			    (gck->range.max && min_rate > gck->range.max))
   159				continue;
   160	
   161			div = DIV_ROUND_CLOSEST(parent_rate, req->rate);
   162			if (div > GENERATED_MAX_DIV + 1)
   163				div = GENERATED_MAX_DIV + 1;
   164	
   165			clk_generated_best_diff(req, parent, parent_rate, div,
   166						&best_diff, &best_rate);
   167	
   168			if (!best_diff)
   169				break;
   170		}
   171	
   172		/*
   173		 * The audio_pll rate can be modified, unlike the five others clocks
   174		 * that should never be altered.
   175		 * The audio_pll can technically be used by multiple consumers. However,
   176		 * with the rate locking, the first consumer to enable to clock will be
   177		 * the one definitely setting the rate of the clock.
   178		 * Since audio IPs are most likely to request the same rate, we enforce
   179		 * that the only clks able to modify gck rate are those of audio IPs.
   180		 */
   181	
   182		if (gck->chg_pid < 0)
   183			goto end;
   184	
   185		parent = clk_hw_get_parent_by_index(hw, gck->chg_pid);
   186		if (!parent)
   187			goto end;
   188	
   189		for (div = 1; div < GENERATED_MAX_DIV + 2; div++) {
   190			struct clk_rate_request req_parent;
   191	
 > 192			clk_hw_forward_rate_request(hw, parent, req, &req_parent);
   193			req_parent.rate = req->rate * div;
   194			if (__clk_determine_rate(parent, &req_parent))
   195				continue;
   196			clk_generated_best_diff(req, parent, req_parent.rate, div,
   197						&best_diff, &best_rate);
   198	
   199			if (!best_diff)
   200				break;
   201		}
   202	
   203	end:
   204		pr_debug("GCLK: %s, best_rate = %ld, parent clk: %s @ %ld\n",
   205			 __func__, best_rate,
   206			 __clk_get_name((req->best_parent_hw)->clk),
   207			 req->best_parent_rate);
   208	
   209		if (best_rate < 0 || (gck->range.max && best_rate > gck->range.max))
   210			return -EINVAL;
   211	
   212		req->rate = best_rate;
   213		return 0;
   214	}
   215	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  reply	other threads:[~2022-05-14  2:56 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-12 16:03 [PATCH v4 00/28] clk: More clock rate fixes and tests Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 01/28] clk: Drop the rate range on clk_put() Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 02/28] clk: Skip clamping when rounding if there's no boundaries Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 03/28] clk: Introduce clk_get_rate_range() Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 04/28] drm/vc4: hdmi: Rework hdmi_enable_4kp60 detection Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 05/28] clk: Mention that .recalc_rate can return 0 on error Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 06/28] clk: Clarify clk_get_rate() expectations Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 07/28] clk: tests: Add test suites description Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 08/28] clk: tests: Add reference to the orphan mux bug report Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 09/28] clk: tests: Add tests for uncached clock Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 10/28] clk: tests: Add tests for single parent mux Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 11/28] clk: tests: Add tests for mux with multiple parents Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 12/28] clk: tests: Add some tests for orphan " Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 13/28] clk: Take into account uncached clocks in clk_set_rate_range() Maxime Ripard
2022-05-24 18:32   ` Jim Quinlan
2022-05-25  8:30     ` Maxime Ripard
2022-05-25 17:59       ` Jim Quinlan
2022-05-26 16:39         ` Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 14/28] clk: Fix clk_get_parent() documentation Maxime Ripard
2022-05-12 16:03 ` [PATCH v4 15/28] clk: Set req_rate on reparenting Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 16/28] clk: Change clk_core_init_rate_req prototype Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 17/28] clk: Move clk_core_init_rate_req() from clk_core_round_rate_nolock() to its caller Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 18/28] clk: Introduce clk_hw_init_rate_request() Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 19/28] clk: Add our request boundaries in clk_core_init_rate_req Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 20/28] clk: Switch from __clk_determine_rate to clk_core_round_rate_nolock Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 21/28] clk: Introduce clk_core_has_parent() Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 22/28] clk: Stop forwarding clk_rate_requests to the parent Maxime Ripard
2022-05-14  2:12   ` kernel test robot [this message]
2022-05-12 16:04 ` [PATCH v4 23/28] clk: Zero the clk_rate_request structure Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 24/28] clk: Test the clock pointer in clk_hw_get_name() Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 25/28] clk: Introduce the clk_hw_get_rate_range function Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 26/28] clk: qcom: clk-rcg2: Take clock boundaries into consideration for gfx3d Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 27/28] clk: tests: Add some tests for clk_get_rate_range() Maxime Ripard
2022-05-12 16:04 ` [PATCH v4 28/28] clk: tests: Add missing test case for ranges Maxime Ripard
  -- strict thread matches above, loose matches on Subject: below --
2022-05-13 12:04 [PATCH v4 22/28] clk: Stop forwarding clk_rate_requests to the parent kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202205141043.hBe4IIkE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alexander.stein@ew.tq-group.com \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=jbrunet@baylibre.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=maxime@cerno.tech \
    --cc=mturquette@baylibre.com \
    --cc=naresh.kamboju@linaro.org \
    --cc=narmstrong@baylibre.com \
    --cc=sboyd@kernel.org \
    --cc=tony@atomide.com \
    --cc=y.oudjana@protonmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.