struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata;
        int len;
 
-       len = snprintf(buf, PAGE_SIZE, "%s\n",
+       if (dev->supplement_adapter_info.AdapterTypeText[0]) {
+               char * cp = dev->supplement_adapter_info.AdapterTypeText;
+               while (*cp && *cp != ' ')
+                       ++cp;
+               while (*cp == ' ')
+                       ++cp;
+               len = snprintf(buf, PAGE_SIZE, "%s\n", cp);
+       } else
+               len = snprintf(buf, PAGE_SIZE, "%s\n",
                  aac_drivers[dev->cardtype].model);
        return len;
 }
        struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata;
        int len;
 
-       len = snprintf(buf, PAGE_SIZE, "%s\n",
+       if (dev->supplement_adapter_info.AdapterTypeText[0]) {
+               char * cp = dev->supplement_adapter_info.AdapterTypeText;
+               while (*cp && *cp != ' ')
+                       ++cp;
+               len = snprintf(buf, PAGE_SIZE, "%.*s\n",
+                 (int)(cp - (char *)dev->supplement_adapter_info.AdapterTypeText),
+                 dev->supplement_adapter_info.AdapterTypeText);
+       } else
+               len = snprintf(buf, PAGE_SIZE, "%s\n",
                  aac_drivers[dev->cardtype].vname);
        return len;
 }