⬢ DragonFlyBSD Kernel Audit
DF-3742 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/radeon/radeon_atombios.c
+++ b/sys/dev/drm/radeon/radeon_atombios.c
@@ -1146,8 +1146,15 @@ bool radeon_atom_get_clock_info(struct drm_device *dev)
 		p1pll->reference_freq =
 		    le16_to_cpu(firmware_info->info.usReferenceClock);
 		p1pll->reference_div = 0;
+		if (p1pll->reference_freq == 0)
+			p1pll->reference_freq = 10000;	/* 100 MHz */
 
 		if ((frev < 2) && (crev < 2))
@@ -1193,6 +1200,8 @@ bool radeon_atom_get_clock_info(struct drm_device *dev)
 		spll->reference_freq =
 			le16_to_cpu(firmware_info->info.usReferenceClock);
 		spll->reference_div = 0;
+		if (spll->reference_freq == 0)
+			spll->reference_freq = 10000;
 
 		spll->pll_out_min =
@@ -1220,6 +1229,8 @@ bool radeon_atom_get_clock_info(struct drm_device *dev)
 		mpll->reference_freq =
 			le16_to_cpu(firmware_info->info.usReferenceClock);
 		mpll->reference_div = 0;
+		if (mpll->reference_freq == 0)
+			mpll->reference_freq = 10000;
 
 		mpll->pll_out_min =