diff options
author | John Baldwin <jhb@FreeBSD.org> | 2008-03-12 21:44:46 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2008-03-12 21:44:46 +0000 |
commit | 4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a (patch) | |
tree | 109f158ae0fc6124dfaca10965be3bdf58d08a13 | |
parent | f15a9cd2881a6448d7f84c36c689adecea8cb5c2 (diff) | |
download | src-4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a.tar.gz src-4cbd0e89840f0c2b851b2dc2bc3c19a3cfdfbe1a.zip |
MFamd64: Break up the probe logic in the mem_drvinit routines so it's
a bit easier to parse.
Notes
Notes:
svn path=/head/; revision=177124
-rw-r--r-- | sys/i386/i386/i686_mem.c | 17 | ||||
-rw-r--r-- | sys/i386/i386/k6_mem.c | 14 |
2 files changed, 18 insertions, 13 deletions
diff --git a/sys/i386/i386/i686_mem.c b/sys/i386/i386/i686_mem.c index 42a73ac5e3b8..f1240b6dc589 100644 --- a/sys/i386/i386/i686_mem.c +++ b/sys/i386/i386/i686_mem.c @@ -653,12 +653,15 @@ static void i686_mem_drvinit(void *unused) { - /* Try for i686 MTRRs */ - if (!mtrrs_disabled && (cpu_feature & CPUID_MTRR) && - ((cpu_id & 0xf00) == 0x600 || (cpu_id & 0xf00) == 0xf00) && - ((strcmp(cpu_vendor, "GenuineIntel") == 0) || - (strcmp(cpu_vendor, "AuthenticAMD") == 0))) { - mem_range_softc.mr_op = &i686_mrops; - } + if (mtrrs_disabled) + return; + if (!(cpu_feature & CPUID_MTRR)) + return; + if ((cpu_id & 0xf00) != 0x600 && (cpu_id & 0xf00) != 0xf00) + return; + if ((strcmp(cpu_vendor, "GenuineIntel") != 0) && + (strcmp(cpu_vendor, "AuthenticAMD") != 0)) + return; + mem_range_softc.mr_op = &i686_mrops; } SYSINIT(i686memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, i686_mem_drvinit, NULL); diff --git a/sys/i386/i386/k6_mem.c b/sys/i386/i386/k6_mem.c index fcbd044eff18..80ae52a4575f 100644 --- a/sys/i386/i386/k6_mem.c +++ b/sys/i386/i386/k6_mem.c @@ -175,11 +175,13 @@ static void k6_mem_drvinit(void *unused) { - if (!strcmp(cpu_vendor, "AuthenticAMD") && - (cpu_id & 0xf00) == 0x500 && - ((cpu_id & 0xf0) > 0x80 || - ((cpu_id & 0xf0) == 0x80 && - (cpu_id & 0xf) > 0x7))) - mem_range_softc.mr_op = &k6_mrops; + if (strcmp(cpu_vendor, "AuthenticAMD") != 0) + return; + if ((cpu_id & 0xf00) != 0x500) + return; + if ((cpu_id & 0xf0) < 0x80 || + (cpu_id & 0xf0) == 0x80 && (cpu_id & 0xf) <= 0x7) + return; + mem_range_softc.mr_op = &k6_mrops; } SYSINIT(k6memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, k6_mem_drvinit, NULL); |