Hi Stephen, On 09/02/2015 11:31 PM, Stephen Boyd wrote: > On 08/03, Georgi Djakov wrote: >> diff --git a/drivers/clk/qcom/clk-smd-rpm.c b/drivers/clk/qcom/clk-smd-rpm.c >> new file mode 100644 >> index 000000000000..e564673ec3a5 >> --- /dev/null >> +++ b/drivers/clk/qcom/clk-smd-rpm.c [..] >> +static int clk_smd_rpm_set_rate(struct clk_hw *hw, unsigned long rate, >> + unsigned long parent_rate) >> +{ >> + struct clk_smd_rpm *r = to_clk_smd_rpm(hw); >> + int ret = 0; >> + >> + if (r->enabled) { >> + u32 value; >> + struct clk_smd_rpm *peer = r->peer; >> + >> + /* Take peer clock's rate into account only if it's enabled. */ >> + if (peer->enabled) > > This peer stuff almost doesn't even matter because we're only > sending active set requests. Why can't this code be updated to > send both active and sleep set requests? The sleep set stuff > won't be cached, etc., but I don't see a problem in doing both. > Otherwise we should drop all the peer stuff until we introduce > active only clocks. Initially I tried sending both active and sleep sets, but as they are not cached like in downstream (yet) i got hangs during boot. Disabling caching in downstream kernel also caused the same hangs, so i left this out for now. Will try debugging it further. Will fix the rest according to your comments. Thank you! BR, Georgi -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html