Преглед изворни кода

mwifiex: use firmware API revision from GET_HW_SPEC response

Newer firmware returns API revision in GET_HW_SPEC command
response. We will make use of it instead of parsing this
information from FW release number.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Amitkumar Karwar пре 11 година
родитељ
комит
89be7ceb80
2 измењених фајлова са 8 додато и 1 уклоњено
  1. 7 1
      drivers/net/wireless/mwifiex/cmdevt.c
  2. 1 0
      drivers/net/wireless/mwifiex/fw.h

+ 7 - 1
drivers/net/wireless/mwifiex/cmdevt.c

@@ -1508,7 +1508,6 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
 	}
 
 	adapter->fw_release_number = le32_to_cpu(hw_spec->fw_release_number);
-	adapter->fw_api_ver = (adapter->fw_release_number >> 16) & 0xff;
 	adapter->number_of_antenna = le16_to_cpu(hw_spec->number_of_antenna);
 
 	if (le32_to_cpu(hw_spec->dot_11ac_dev_cap)) {
@@ -1552,6 +1551,13 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
 						adapter->key_api_major_ver,
 						adapter->key_api_minor_ver);
 					break;
+				case FW_API_VER_ID:
+					adapter->fw_api_ver =
+							api_rev->major_ver;
+					dev_dbg(adapter->dev,
+						"Firmware api version %d\n",
+						adapter->fw_api_ver);
+					break;
 				default:
 					dev_warn(adapter->dev,
 						 "Unknown api_id: %d\n",

+ 1 - 0
drivers/net/wireless/mwifiex/fw.h

@@ -846,6 +846,7 @@ struct host_cmd_ds_802_11_ps_mode_enh {
 
 enum API_VER_ID {
 	KEY_API_VER_ID = 1,
+	FW_API_VER_ID = 2,
 };
 
 struct hw_spec_api_rev {