Message ID | 1478596214-761-1-git-send-email-zhangqing@rock-chips.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | Stephen Boyd |
Headers | show |
Hi Elaine, Am Dienstag, 8. November 2016, 17:10:14 schrieb Elaine Zhang: > If validity is not checked prior to clock rate change, clk_set_rate( > cpu_clk, unsupported_rate) will return success, but the real clock rate > change operation is prohibited in post clock change event. Alough post > clock change event will report error due to unsupported clock rate is > set, but this error message is ignored by clock framework. > > Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com> > Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com> looks good and thanks for catching this. Just a bureaucracy-question regarding the Signed-off-by lines, before I can apply the patch as I don't really know how Rocky fits into the picture. I.e. was he the original patch author (the we should change the from) or a reviewer/tester for the fixed issue? Thanks Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Am Dienstag, 8. November 2016, 17:10:14 CET schrieb Elaine Zhang: > If validity is not checked prior to clock rate change, clk_set_rate( > cpu_clk, unsupported_rate) will return success, but the real clock rate > change operation is prohibited in post clock change event. Alough post > clock change event will report error due to unsupported clock rate is > set, but this error message is ignored by clock framework. > > Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com> > Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com> after Elaine clarified that the line mentioning Rocky was actually a tested-by, applied to my clock branch Thanks Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/clk/rockchip/clk-cpu.c b/drivers/clk/rockchip/clk-cpu.c index 05b3d73bfefa..c4b0cc83fa87 100644 --- a/drivers/clk/rockchip/clk-cpu.c +++ b/drivers/clk/rockchip/clk-cpu.c @@ -125,8 +125,17 @@ static int rockchip_cpuclk_pre_rate_change(struct rockchip_cpuclk *cpuclk, { const struct rockchip_cpuclk_reg_data *reg_data = cpuclk->reg_data; unsigned long alt_prate, alt_div; + const struct rockchip_cpuclk_rate_table *rate; unsigned long flags; + /* check validity of the new rate */ + rate = rockchip_get_cpuclk_settings(cpuclk, ndata->new_rate); + if (!rate) { + pr_err("%s: Invalid rate : %lu for cpuclk\n", + __func__, ndata->new_rate); + return -EINVAL; + } + alt_prate = clk_get_rate(cpuclk->alt_parent); spin_lock_irqsave(cpuclk->lock, flags);