Re: [PATCH v7 2/3] clk: introduce the common clock framework

From: Saravana Kannan
Date: Tue Mar 20 2012 - 13:46:14 EST



On Tue, March 20, 2012 7:02 am, Shawn Guo wrote:
> On Thu, Mar 15, 2012 at 11:11:19PM -0700, Mike Turquette wrote:
> ...
>> +struct clk_ops {
>> + int (*prepare)(struct clk_hw *hw);
>> + void (*unprepare)(struct clk_hw *hw);
>> + int (*enable)(struct clk_hw *hw);
>> + void (*disable)(struct clk_hw *hw);
>> + int (*is_enabled)(struct clk_hw *hw);
>> + unsigned long (*recalc_rate)(struct clk_hw *hw,
>> + unsigned long parent_rate);
>
> I believe I have heard people love the interface with parent_rate
> passed in. I love that too. But I would like to ask the same thing
> on .round_rate and .set_rate as well for the same reason why we have
> it for .recalc_rate.

In my case, for most clocks, set rate involves reparenting. So, what does
passing parent_rate for these even mean? Passing parent_rate seems more
apt for recalc_rate since it's called when the parent rate changes -- so,
the actual parent itself is not expected to change.

I could ignore the parameter, but just wondering how many of the others
see value in this. And if we do add this parameter, it shouldn't be made
mandatory for the platform driver to use it (due to other assumptions the
clock framework might make).

-Saravana


--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


--
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/