All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@kernel.org>
To: "Enrico Weigelt, metux IT consult" <lkml@metux.net>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	Michael Turquette <mturquette@baylibre.com>
Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: CONFIG_COMMON_CLK vs CONFIG_HAVE_CLK
Date: Thu, 12 Dec 2019 13:51:13 -0800	[thread overview]
Message-ID: <20191212215114.1F84B21556@mail.kernel.org> (raw)
In-Reply-To: <741ff2c5-56b3-5ba0-3d52-39f77d468739@metux.net>

Quoting Enrico Weigelt, metux IT consult (2019-12-12 02:57:14)
> On 12.12.19 03:09, Kuninori Morimoto wrote:
> 
> > I noticed that there are some CONFIG_HAVE_CLK vs CONFIG_COMMON_CLK mismatch.
> > Because of it, I got compile error at clk_set_min_rate() on SH.
> > SH will have HAVE_CLK, but doesn't have COMMON_CLK.
> > 
> >       > ARCH=sh make allyesconfig
> >       > make
> >       ...
> >       drivers/devfreq/tegra30-devfreq.o: In function `tegra_devfreq_target':
> >       tegra30-devfreq.c:(.text+0x368): undefined reference to `clk_set_min_rate'
> > 
> > clk_set_min_rate() is under HAVE_CLK at clk.h
> > 
> >       --- clk.h ---
> > =>    #ifdef CONFIG_HAVE_CLK
> >       ...
> >       int clk_set_min_rate(struct clk *clk, unsigned long rate);
> >       ...
> >       #else /* !CONFIG_HAVE_CLK */
> >       static inline int clk_set_min_rate(struct clk *clk, unsigned long rate)
> >       ...
> >       -------------
> > 
> > It is implemented at clk.c.
> > But it will be compiled via COMMON_CLK
> > 
> >       --- Makefile ---
> >       ...
> > =>    obj-$(CONFIG_COMMON_CLK)        += clk.o
> 
> You've got CONFIG_HAVE_CLK enabled, but CONFIG_COMMON_CLK disabled ?
> 
> hmm, the whole CONFIG_HAVE_CLK looks a bit weird to me. I wonder what's
> the actual purpose of having this arch-specific.
> 
> IMHO, we should sort out whether there are some things that some arch
> really *needs*, and what could be optional - then split that into
> separate modules along this line.
> 
> It seems that clk_set_min_rate() belongs to CONFIG_COMMON_CLK, and
> tegra30-devfreq.c needds to depend on CONFIG_COMMON_CLK.
> 

Years ago there wasn't a common clk framework. Just CONFIG_HAVE_CLK and
architectures implementing the API defined in the clk.h header file.
Then the common clk framework was created and we got CONFIG_COMMON_CLK.
When new clk API features are added to the common clk framework, we
typically limit their implementation and scope to CONFIG_COMMON_CLK so
that architectures are encouraged to migrate to the common clk
framework. I'm not really tracking the other implementations of the clk
API, but I thought we were down to a handful of implementations that
haven't migrated. I suppose SH is one of the big ones.


  reply	other threads:[~2019-12-12 21:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-12  2:09 CONFIG_COMMON_CLK vs CONFIG_HAVE_CLK Kuninori Morimoto
2019-12-12 10:57 ` Enrico Weigelt, metux IT consult
2019-12-12 21:51   ` Stephen Boyd [this message]
2019-12-13  4:41     ` Kuninori Morimoto

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=20191212215114.1F84B21556@mail.kernel.org \
    --to=sboyd@kernel.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@metux.net \
    --cc=mturquette@baylibre.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.