svn commit: r282879 - stable/9/sys/dev/mii
Pyun YongHyeon
yongari at FreeBSD.org
Thu May 14 05:19:30 UTC 2015
Author: yongari
Date: Thu May 14 05:19:29 2015
New Revision: 282879
URL: https://svnweb.freebsd.org/changeset/base/282879
Log:
MFC r281877:
Add another variant of BCM5708S controller to IBM HS21 workaround
list.
PR: 118238
Modified:
stable/9/sys/dev/mii/brgphy.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/dev/mii/brgphy.c
==============================================================================
--- stable/9/sys/dev/mii/brgphy.c Thu May 14 05:10:42 2015 (r282878)
+++ stable/9/sys/dev/mii/brgphy.c Thu May 14 05:19:29 2015 (r282879)
@@ -158,25 +158,33 @@ static const struct mii_phy_funcs brgphy
brgphy_reset
};
-#define HS21_PRODUCT_ID "IBM eServer BladeCenter HS21"
-#define HS21_BCM_CHIPID 0x57081021
+static const struct hs21_type {
+ const uint32_t id;
+ const char *prod;
+} hs21_type_lists[] = {
+ { 0x57081021, "IBM eServer BladeCenter HS21" },
+ { 0x57081011, "IBM eServer BladeCenter HS21 -[8853PAU]-" },
+};
static int
detect_hs21(struct bce_softc *bce_sc)
{
char *sysenv;
- int found;
+ int found, i;
found = 0;
- if (bce_sc->bce_chipid == HS21_BCM_CHIPID) {
- sysenv = getenv("smbios.system.product");
- if (sysenv != NULL) {
- if (strncmp(sysenv, HS21_PRODUCT_ID,
- strlen(HS21_PRODUCT_ID)) == 0)
- found = 1;
- freeenv(sysenv);
+ sysenv = getenv("smbios.system.product");
+ if (sysenv == NULL)
+ return (found);
+ for (i = 0; i < nitems(hs21_type_lists); i++) {
+ if (bce_sc->bce_chipid == hs21_type_lists[i].id &&
+ strncmp(sysenv, hs21_type_lists[i].prod,
+ strlen(hs21_type_lists[i].prod)) == 0) {
+ found++;
+ break;
}
}
+ freeenv(sysenv);
return (found);
}
More information about the svn-src-stable-9
mailing list