summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2017-11-25 00:45:23 +0100
committerNico Huber <nico.h@gmx.de>2017-12-20 13:17:07 +0000
commit6b6c94bacc13a374abc8069aec7da074121015b9 (patch)
treeb200eddf5e15db621d06260416e92edc2b7b5a48
parentf67c967af2e778ca5a16a9b62ec56c0fdc9b1597 (diff)
intel/gma: fix RPNFREQ_VAL bitmask
gma.c of Nehalem was copied from Sandy/Ivy Bridge, so fix it there too. Tested on lenovo/x230. Since both the bit that was masked wrongly and the one that wasn't masked, but sould have been, are 0, the behaviour on lenovo/x230 doesn't change. Change-Id: I5f51c4929df83f948fcb7dc06e07ac3cc4ccf4f2 Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/22596 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r--src/northbridge/intel/nehalem/gma.c5
-rw-r--r--src/northbridge/intel/sandybridge/gma.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/src/northbridge/intel/nehalem/gma.c b/src/northbridge/intel/nehalem/gma.c
index 0c681ccc83..4dcbfb30ee 100644
--- a/src/northbridge/intel/nehalem/gma.c
+++ b/src/northbridge/intel/nehalem/gma.c
@@ -488,10 +488,11 @@ static void gma_pm_init_pre_vbios(struct device *dev)
}
/* 12: Normal Frequency Request */
- /* RPNFREQ_VAL comes from MCHBAR 0x5998 23:16 (8 bits!? use 7) */
+ /* RPNFREQ_VAL comes from MCHBAR 0x5998 23:16 */
+ /* only the lower 7 bits are used and shifted left by 25 */
reg32 = MCHBAR32(0x5998);
reg32 >>= 16;
- reg32 &= 0xef;
+ reg32 &= 0x7f;
reg32 <<= 25;
gtt_write(0xa008, reg32);
diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c
index 61b9008467..74aabf9e66 100644
--- a/src/northbridge/intel/sandybridge/gma.c
+++ b/src/northbridge/intel/sandybridge/gma.c
@@ -498,10 +498,11 @@ static void gma_pm_init_pre_vbios(struct device *dev)
}
/* 12: Normal Frequency Request */
- /* RPNFREQ_VAL comes from MCHBAR 0x5998 23:16 (8 bits!? use 7) */
+ /* RPNFREQ_VAL comes from MCHBAR 0x5998 23:16 */
+ /* only the lower 7 bits are used and shifted left by 25 */
reg32 = MCHBAR32(0x5998);
reg32 >>= 16;
- reg32 &= 0xef;
+ reg32 &= 0x7f;
reg32 <<= 25;
gtt_write(0xa008, reg32);