hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/gpu/drm/radeon/cypress_dpm.c
....@@ -559,8 +559,12 @@
559559 ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
560560 u32 reference_clock = rdev->clock.mpll.reference_freq;
561561 u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
562
- u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
563
- u32 clk_v = ss.percentage *
562
+ u32 clk_s, clk_v;
563
+
564
+ if (!decoded_ref)
565
+ return -EINVAL;
566
+ clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
567
+ clk_v = ss.percentage *
564568 (0x4000 * dividers.whole_fb_div + 0x800 * dividers.frac_fb_div) / (clk_s * 625);
565569
566570 mpll_ss1 &= ~CLKV_MASK;