hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/gpu/drm/radeon/cypress_dpm.c
....@@ -22,13 +22,14 @@
2222 * Authors: Alex Deucher
2323 */
2424
25
-#include <drm/drmP.h>
26
-#include "radeon.h"
27
-#include "radeon_asic.h"
25
+#include <linux/pci.h>
26
+
27
+#include "atom.h"
28
+#include "cypress_dpm.h"
2829 #include "evergreend.h"
2930 #include "r600_dpm.h"
30
-#include "cypress_dpm.h"
31
-#include "atom.h"
31
+#include "radeon.h"
32
+#include "radeon_asic.h"
3233
3334 #define SMC_RAM_END 0x8000
3435
....@@ -558,8 +559,12 @@
558559 ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
559560 u32 reference_clock = rdev->clock.mpll.reference_freq;
560561 u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
561
- u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
562
- 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 *
563568 (0x4000 * dividers.whole_fb_div + 0x800 * dividers.frac_fb_div) / (clk_s * 625);
564569
565570 mpll_ss1 &= ~CLKV_MASK;