Re: [PATCH v5 0/6] Per-user clock constraints

From: Boris BREZILLON
Date: Wed Aug 13 2014 - 05:46:26 EST


Hi Tomeu,

Sorry for the late reply.

On Wed, 6 Aug 2014 15:56:03 +0200
Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> wrote:

> Hi,
>
> in this v5 of the patchset I have just moved the storage of the clock constraints to the struct clk, as suggested by Stephen. 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/6 just adds a bunch of defines with the goal of having all the renames
> in their own commit while preserving git-bisectability, with patch 3/6
> containing the rename itself as generated by the Coccinelle script in [1].
> Patch 2/6 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
> 4/6. I will be happy to organize the refactoring differently if anybody has a
> better idea.
>
> Patch 5/6 warns when there's an unbalanced usage of the enable and disable
> APIs, and patch 6/6 adds the API for setting floor and ceiling frequencies, per
> consumer.

I tested your patch series on an at91 platform (sama5d3), and it works
as expected, but I had to fix some conflicts when applying your patches
on clk-next, and then got a few errors at compile time.

Anyway here is my branch with all those conflicts resolved: [1]. The
last commit [2] fixes the build errors (I'll let you squash/split the
changes as you wish).

Best Regards,

Boris

[1]https://github.com/bbrezillon/linux-at91/tree/per-clk-contraints
[2]https://github.com/bbrezillon/linux-at91/commit/d366c37dcfa5f06de3e27fc3c2807017bece9a2f

--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/