1
0
Fork 0

MLK-20203-4 soc: imx: fix coverity issue

This patch fixes coverity issue of "divide by 0".

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
pull/10/head
Anson Huang 2018-11-03 12:17:31 +08:00
parent 4e70e0b026
commit fb672a95ff
1 changed files with 38 additions and 7 deletions

View File

@ -104,6 +104,8 @@ static void update_bus_freq(int target_freq)
static void reduce_bus_freq(void) static void reduce_bus_freq(void)
{ {
u32 rate;
high_bus_freq_mode = 0; high_bus_freq_mode = 0;
/* /*
@ -142,7 +144,12 @@ static void reduce_bus_freq(void)
clk_disable_unprepare(dram_alt_root); clk_disable_unprepare(dram_alt_root);
} }
/* reduce the NOC & bus clock */ /* reduce the NOC & bus clock */
clk_set_rate(noc_div, clk_get_rate(noc_div) / 8); rate = clk_get_rate(noc_div);
if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(noc_div, rate / 8);
} else { } else {
/* prepare the necessary clk before frequency change */ /* prepare the necessary clk before frequency change */
clk_prepare_enable(sys1_pll_40m); clk_prepare_enable(sys1_pll_40m);
@ -161,10 +168,19 @@ static void reduce_bus_freq(void)
clk_disable_unprepare(dram_alt_root); clk_disable_unprepare(dram_alt_root);
/* change the NOC rate */ /* change the NOC rate */
clk_set_rate(noc_div, clk_get_rate(noc_div) / 5); rate = clk_get_rate(noc_div);
if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(noc_div, rate / 5);
} }
rate = clk_get_rate(ahb_div);
clk_set_rate(ahb_div, clk_get_rate(ahb_div) / 6); if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(ahb_div, rate / 6);
clk_set_parent(main_axi_src, osc_25m); clk_set_parent(main_axi_src, osc_25m);
} }
@ -201,7 +217,12 @@ static void reduce_bus_freq(void)
clk_disable_unprepare(dram_alt_root); clk_disable_unprepare(dram_alt_root);
} }
/* reduce the NOC & bus clock */ /* reduce the NOC & bus clock */
clk_set_rate(noc_div, clk_get_rate(noc_div) / 8); rate = clk_get_rate(noc_div);
if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(noc_div, rate / 8);
} else { } else {
/* prepare the necessary clk before frequency change */ /* prepare the necessary clk before frequency change */
clk_prepare_enable(sys1_pll_40m); clk_prepare_enable(sys1_pll_40m);
@ -220,10 +241,20 @@ static void reduce_bus_freq(void)
clk_disable_unprepare(dram_alt_root); clk_disable_unprepare(dram_alt_root);
/* change the NOC clock rate */ /* change the NOC clock rate */
clk_set_rate(noc_div, clk_get_rate(noc_div) / 5); rate = clk_get_rate(noc_div);
if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(noc_div, rate / 5);
} }
clk_set_rate(ahb_div, clk_get_rate(ahb_div) / 6); rate = clk_get_rate(ahb_div);
if (rate == 0) {
WARN_ON(1);
return;
}
clk_set_rate(ahb_div, rate / 6);
clk_set_parent(main_axi_src, osc_25m); clk_set_parent(main_axi_src, osc_25m);
} }