iwlwifi: Add eeprom version to the version file in sysfs
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / iwlwifi / iwl4965-base.c
index f5911687671b1a28b3cdc0dc350b25aaee514914..6eee28dbdde8d18193037d1d4e03ec20a111ed18 100644 (file)
@@ -3728,16 +3728,28 @@ static ssize_t show_version(struct device *d,
 {
        struct iwl_priv *priv = d->driver_data;
        struct iwl_alive_resp *palive = &priv->card_alive;
+       ssize_t pos = 0;
+       u16 eeprom_ver;
 
        if (palive->is_valid)
-               return sprintf(buf, "fw version: 0x%01X.0x%01X.0x%01X.0x%01X\n"
-                                   "fw type: 0x%01X 0x%01X\n",
+               pos += sprintf(buf + pos,
+                               "fw version: 0x%01X.0x%01X.0x%01X.0x%01X\n"
+                               "fw type: 0x%01X 0x%01X\n",
                                palive->ucode_major, palive->ucode_minor,
                                palive->sw_rev[0], palive->sw_rev[1],
                                palive->ver_type, palive->ver_subtype);
-
        else
-               return sprintf(buf, "fw not loaded\n");
+               pos += sprintf(buf + pos, "fw not loaded\n");
+
+       if (priv->eeprom) {
+               eeprom_ver = iwl_eeprom_query16(priv, EEPROM_VERSION);
+               pos += sprintf(buf + pos, "EEPROM version: 0x%x\n",
+                                eeprom_ver);
+       } else {
+               pos += sprintf(buf + pos, "EEPROM not initialzed\n");
+       }
+
+       return pos;
 }
 
 static DEVICE_ATTR(version, S_IWUSR | S_IRUGO, show_version, NULL);