intel_extreme: check another register when finding out hw_cdclk on Haswell/Broadwell

doesn't help with #18084

Change-Id: I6f3cc8b50fc5742fab3021f01b90dfebe484b336
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5830
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Jérôme Duval
2022-11-26 12:56:08 +00:00
parent 756f03a03d
commit 3a42882e0f
2 changed files with 7 additions and 0 deletions
@@ -927,6 +927,9 @@ struct intel_brightness_legacy {
#define LCPLL_CLK_FREQ_337_5_BDW (2 << 26) #define LCPLL_CLK_FREQ_337_5_BDW (2 << 26)
#define LCPLL_CD_SOURCE_FCLK (1 << 21) #define LCPLL_CD_SOURCE_FCLK (1 << 21)
#define FUSE_STRAP 0x42014
#define HSW_CDCLK_LIMIT (1 << 24)
// display // display
#define INTEL_DISPLAY_OFFSET 0x1000 #define INTEL_DISPLAY_OFFSET 0x1000
@@ -883,6 +883,8 @@ intel_extreme_init(intel_info &info)
uint32 lcpll = read32(info, LCPLL_CTL); uint32 lcpll = read32(info, LCPLL_CTL);
if ((lcpll & LCPLL_CD_SOURCE_FCLK) != 0) if ((lcpll & LCPLL_CD_SOURCE_FCLK) != 0)
info.shared_info->hw_cdclk = 800000; info.shared_info->hw_cdclk = 800000;
else if ((read32(info, FUSE_STRAP) & HSW_CDCLK_LIMIT) != 0)
info.shared_info->hw_cdclk = 450000;
else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_450) else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_450)
info.shared_info->hw_cdclk = 450000; info.shared_info->hw_cdclk = 450000;
else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_54O_BDW) else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_54O_BDW)
@@ -895,6 +897,8 @@ intel_extreme_init(intel_info &info)
uint32 lcpll = read32(info, LCPLL_CTL); uint32 lcpll = read32(info, LCPLL_CTL);
if ((lcpll & LCPLL_CD_SOURCE_FCLK) != 0) if ((lcpll & LCPLL_CD_SOURCE_FCLK) != 0)
info.shared_info->hw_cdclk = 800000; info.shared_info->hw_cdclk = 800000;
else if ((read32(info, FUSE_STRAP) & HSW_CDCLK_LIMIT) != 0)
info.shared_info->hw_cdclk = 450000;
else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_450) else if ((lcpll & LCPLL_CLK_FREQ_MASK) == LCPLL_CLK_FREQ_450)
info.shared_info->hw_cdclk = 450000; info.shared_info->hw_cdclk = 450000;
/* ULT type is missing /* ULT type is missing