Author: yongari
Date: Thu Apr 23 01:39:28 2015
New Revision: 281877
URL: https://svnweb.freebsd.org/changeset/base/281877

Log:
  Add another variant of BCM5708S controller to IBM HS21 workaround
  list.
  
  PR:           118238
  MFC after:    2 weeks

Modified:
  head/sys/dev/mii/brgphy.c

Modified: head/sys/dev/mii/brgphy.c
==============================================================================
--- head/sys/dev/mii/brgphy.c   Thu Apr 23 01:04:14 2015        (r281876)
+++ head/sys/dev/mii/brgphy.c   Thu Apr 23 01:39:28 2015        (r281877)
@@ -160,25 +160,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 = kern_getenv("smbios.system.product");
-               if (sysenv != NULL) {
-                       if (strncmp(sysenv, HS21_PRODUCT_ID,
-                           strlen(HS21_PRODUCT_ID)) == 0)
-                               found = 1;
-                       freeenv(sysenv);
+       sysenv = kern_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);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to