forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/gpu/drm/radeon/rv740_dpm.c
....@@ -22,7 +22,6 @@
2222 * Authors: Alex Deucher
2323 */
2424
25
-#include <drm/drmP.h>
2625 #include "radeon.h"
2726 #include "rv740d.h"
2827 #include "r600_dpm.h"
....@@ -251,8 +250,12 @@
251250 ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
252251 u32 reference_clock = rdev->clock.mpll.reference_freq;
253252 u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
254
- u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
255
- u32 clk_v = 0x40000 * ss.percentage *
253
+ u32 clk_s, clk_v;
254
+
255
+ if (!decoded_ref)
256
+ return -EINVAL;
257
+ clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
258
+ clk_v = 0x40000 * ss.percentage *
256259 (dividers.whole_fb_div + (dividers.frac_fb_div / 8)) / (clk_s * 10000);
257260
258261 mpll_ss1 &= ~CLKV_MASK;