[PATCH v7 0/8] Per-user clock constraints

Tomeu Vizoso tomeu.vizoso at collabora.com
Mon Aug 18 08:30:26 PDT 2014


in this v7 of the patchset I have only rebased on top of 3.17rc1, with no other
changes. I have had to do a fair amount of fixing due to the rebase, more
details below. Follows the original cover letter blurb:

I'm retaking Rabin's patches [0] for splitting the clk API in two: one API for
clk consumers and another for providers. The consumer API uses a clk structure
that just keeps track of the consumer and has a reference to the actual
clk_core struct, which is used internally.

I have kept a patch from Rabin that aims to aid in debugging nested
enable/disable calls, though my personal aim is to allow more than one consumer
to influence the final, effective frequency rate. For now this is limited to
setting floor and ceiling constraints, with the short-term aim of allowing
devfreq and thermal drivers to set floor and ceiling frequencies on the memory
clock, respectively.

For those functions in the consumer clk API that were called from providers, I
have added variants to clk-provider.h that are the same only that accept a
clk_core instead. These functions are prefixed with clk_provider_.

Patch 1/8 just adds a bunch of defines with the goal of having all the renames
in their own commit while preserving git-bisectability, with patch 5/8
containing the rename itself as generated by the Coccinelle script in [1].
Patches 2/8 and 3/8 remove an instance of a clock consumer using what is
currently provider-only API. Patch 4/8 is needed because
sound/soc/mxs/mxs-saif.c calls both the consumer and the provider API. The
actual implementation of the API split comes in patch 6/8. I will be happy to
organize the refactoring differently if anybody has a better idea.

Patch 7/8 warns when there's an unbalanced usage of the enable and disable
APIs, and patch 8/8 adds the API for setting floor and ceiling frequencies, per

[0] http://thread.gmane.org/gmane.linux.kernel/1402006
[1] http://cgit.collabora.com/git/user/tomeu/linux.git/commit/?id=da9c7e34d9



Sebastian Hesselbarth (1):
  clk: provide public clk_is_enabled function

Tomeu Vizoso (7):
  clk: Add temporary mapping to the existing API
  cpufreq: kirkwood: Remove use of the clk provider API
  ASoC: mxs-saif: fix mixed use of public and provider clk API
  clk: Move all drivers to use internal API
  clk: use struct clk only for external API
  clk: per-user clock accounting for debug
  clk: Add floor and ceiling constraints to clock rates

[detailed diffstat omitted for brevity sake]

 256 files changed, 2267 insertions(+), 1732 deletions(-)


More information about the linux-arm-kernel mailing list