iwlwifi: use antenna information in EEPROM
The valid tx/rx antenna information is part of EEPROM, so use it to configure the device. For few cases, the EEPROM did not reflect the correct antenna, but it is too late to modify the EEPROM, so overwrite with .cfg parameters Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
parent
4b7384f936
commit
dbbf1755b0
5 changed files with 32 additions and 60 deletions
|
@ -278,8 +278,6 @@ struct iwl_cfg iwl1000_bgn_cfg = {
|
||||||
.fw_name_pre = IWL1000_FW_PRE,
|
.fw_name_pre = IWL1000_FW_PRE,
|
||||||
.ucode_api_max = IWL1000_UCODE_API_MAX,
|
.ucode_api_max = IWL1000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL1000_UCODE_API_MIN,
|
.ucode_api_min = IWL1000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
||||||
.ops = &iwl1000_ops,
|
.ops = &iwl1000_ops,
|
||||||
|
@ -294,8 +292,6 @@ struct iwl_cfg iwl1000_bg_cfg = {
|
||||||
.fw_name_pre = IWL1000_FW_PRE,
|
.fw_name_pre = IWL1000_FW_PRE,
|
||||||
.ucode_api_max = IWL1000_UCODE_API_MAX,
|
.ucode_api_max = IWL1000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL1000_UCODE_API_MIN,
|
.ucode_api_min = IWL1000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
||||||
.ops = &iwl1000_ops,
|
.ops = &iwl1000_ops,
|
||||||
|
@ -309,8 +305,6 @@ struct iwl_cfg iwl100_bgn_cfg = {
|
||||||
.fw_name_pre = IWL100_FW_PRE,
|
.fw_name_pre = IWL100_FW_PRE,
|
||||||
.ucode_api_max = IWL100_UCODE_API_MAX,
|
.ucode_api_max = IWL100_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL100_UCODE_API_MIN,
|
.ucode_api_min = IWL100_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_A,
|
|
||||||
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
||||||
.ops = &iwl1000_ops,
|
.ops = &iwl1000_ops,
|
||||||
|
@ -325,8 +319,6 @@ struct iwl_cfg iwl100_bg_cfg = {
|
||||||
.fw_name_pre = IWL100_FW_PRE,
|
.fw_name_pre = IWL100_FW_PRE,
|
||||||
.ucode_api_max = IWL100_UCODE_API_MAX,
|
.ucode_api_max = IWL100_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL100_UCODE_API_MIN,
|
.ucode_api_min = IWL100_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_A,
|
|
||||||
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
|
||||||
.ops = &iwl1000_ops,
|
.ops = &iwl1000_ops,
|
||||||
|
|
|
@ -2624,8 +2624,6 @@ struct iwl_cfg iwl4965_agn_cfg = {
|
||||||
.fw_name_pre = IWL4965_FW_PRE,
|
.fw_name_pre = IWL4965_FW_PRE,
|
||||||
.ucode_api_max = IWL4965_UCODE_API_MAX,
|
.ucode_api_max = IWL4965_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL4965_UCODE_API_MIN,
|
.ucode_api_min = IWL4965_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_ABC,
|
|
||||||
.eeprom_ver = EEPROM_4965_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_4965_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_4965_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_4965_TX_POWER_VERSION,
|
||||||
.ops = &iwl4965_ops,
|
.ops = &iwl4965_ops,
|
||||||
|
|
|
@ -527,8 +527,6 @@ struct iwl_cfg iwl5300_agn_cfg = {
|
||||||
.fw_name_pre = IWL5000_FW_PRE,
|
.fw_name_pre = IWL5000_FW_PRE,
|
||||||
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_ABC,
|
|
||||||
.valid_rx_ant = ANT_ABC,
|
|
||||||
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
||||||
.ops = &iwl5000_ops,
|
.ops = &iwl5000_ops,
|
||||||
|
@ -543,8 +541,8 @@ struct iwl_cfg iwl5100_bgn_cfg = {
|
||||||
.fw_name_pre = IWL5000_FW_PRE,
|
.fw_name_pre = IWL5000_FW_PRE,
|
||||||
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_B,
|
.valid_tx_ant = ANT_B, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_AB,
|
.valid_rx_ant = ANT_AB, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
||||||
.ops = &iwl5000_ops,
|
.ops = &iwl5000_ops,
|
||||||
|
@ -559,8 +557,8 @@ struct iwl_cfg iwl5100_abg_cfg = {
|
||||||
.fw_name_pre = IWL5000_FW_PRE,
|
.fw_name_pre = IWL5000_FW_PRE,
|
||||||
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_B,
|
.valid_tx_ant = ANT_B, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_AB,
|
.valid_rx_ant = ANT_AB, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
||||||
.ops = &iwl5000_ops,
|
.ops = &iwl5000_ops,
|
||||||
|
@ -574,8 +572,8 @@ struct iwl_cfg iwl5100_agn_cfg = {
|
||||||
.fw_name_pre = IWL5000_FW_PRE,
|
.fw_name_pre = IWL5000_FW_PRE,
|
||||||
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_B,
|
.valid_tx_ant = ANT_B, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_AB,
|
.valid_rx_ant = ANT_AB, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
|
||||||
.ops = &iwl5000_ops,
|
.ops = &iwl5000_ops,
|
||||||
|
@ -590,8 +588,6 @@ struct iwl_cfg iwl5350_agn_cfg = {
|
||||||
.fw_name_pre = IWL5000_FW_PRE,
|
.fw_name_pre = IWL5000_FW_PRE,
|
||||||
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
.ucode_api_max = IWL5000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
.ucode_api_min = IWL5000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_ABC,
|
|
||||||
.valid_rx_ant = ANT_ABC,
|
|
||||||
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
||||||
.ops = &iwl5000_ops,
|
.ops = &iwl5000_ops,
|
||||||
|
@ -606,8 +602,6 @@ struct iwl_cfg iwl5150_agn_cfg = {
|
||||||
.fw_name_pre = IWL5150_FW_PRE,
|
.fw_name_pre = IWL5150_FW_PRE,
|
||||||
.ucode_api_max = IWL5150_UCODE_API_MAX,
|
.ucode_api_max = IWL5150_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5150_UCODE_API_MIN,
|
.ucode_api_min = IWL5150_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
||||||
.ops = &iwl5150_ops,
|
.ops = &iwl5150_ops,
|
||||||
|
@ -623,8 +617,6 @@ struct iwl_cfg iwl5150_abg_cfg = {
|
||||||
.fw_name_pre = IWL5150_FW_PRE,
|
.fw_name_pre = IWL5150_FW_PRE,
|
||||||
.ucode_api_max = IWL5150_UCODE_API_MAX,
|
.ucode_api_max = IWL5150_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL5150_UCODE_API_MIN,
|
.ucode_api_min = IWL5150_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
|
||||||
.ops = &iwl5150_ops,
|
.ops = &iwl5150_ops,
|
||||||
|
|
|
@ -557,8 +557,6 @@ struct iwl_cfg iwl6000g2a_2agn_cfg = {
|
||||||
.fw_name_pre = IWL6000G2A_FW_PRE,
|
.fw_name_pre = IWL6000G2A_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -575,8 +573,6 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2A_FW_PRE,
|
.fw_name_pre = IWL6000G2A_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -592,8 +588,6 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2A_FW_PRE,
|
.fw_name_pre = IWL6000G2A_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -609,8 +603,6 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -631,8 +623,6 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -652,8 +642,6 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -674,8 +662,6 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -695,8 +681,6 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -717,8 +701,6 @@ struct iwl_cfg iwl6000g2b_bg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -741,8 +723,8 @@ struct iwl_cfg iwl6000i_2agn_cfg = {
|
||||||
.fw_name_pre = IWL6000_FW_PRE,
|
.fw_name_pre = IWL6000_FW_PRE,
|
||||||
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_BC,
|
.valid_tx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_BC,
|
.valid_rx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -758,8 +740,8 @@ struct iwl_cfg iwl6000i_2abg_cfg = {
|
||||||
.fw_name_pre = IWL6000_FW_PRE,
|
.fw_name_pre = IWL6000_FW_PRE,
|
||||||
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_BC,
|
.valid_tx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_BC,
|
.valid_rx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -774,8 +756,8 @@ struct iwl_cfg iwl6000i_2bg_cfg = {
|
||||||
.fw_name_pre = IWL6000_FW_PRE,
|
.fw_name_pre = IWL6000_FW_PRE,
|
||||||
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_BC,
|
.valid_tx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.valid_rx_ant = ANT_BC,
|
.valid_rx_ant = ANT_BC, /* .cfg overwrite */
|
||||||
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -790,8 +772,6 @@ struct iwl_cfg iwl6050_2agn_cfg = {
|
||||||
.fw_name_pre = IWL6050_FW_PRE,
|
.fw_name_pre = IWL6050_FW_PRE,
|
||||||
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.ops = &iwl6050_ops,
|
.ops = &iwl6050_ops,
|
||||||
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
|
||||||
|
@ -807,8 +787,6 @@ struct iwl_cfg iwl6050g2_bgn_cfg = {
|
||||||
.fw_name_pre = IWL6050_FW_PRE,
|
.fw_name_pre = IWL6050_FW_PRE,
|
||||||
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6050G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6050G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6050G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6050G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6050g2_ops,
|
.ops = &iwl6050g2_ops,
|
||||||
|
@ -824,8 +802,6 @@ struct iwl_cfg iwl6050_2abg_cfg = {
|
||||||
.fw_name_pre = IWL6050_FW_PRE,
|
.fw_name_pre = IWL6050_FW_PRE,
|
||||||
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
.ucode_api_max = IWL6050_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
.ucode_api_min = IWL6050_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_AB,
|
|
||||||
.valid_rx_ant = ANT_AB,
|
|
||||||
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
|
||||||
.ops = &iwl6050_ops,
|
.ops = &iwl6050_ops,
|
||||||
|
@ -840,8 +816,6 @@ struct iwl_cfg iwl6000_3agn_cfg = {
|
||||||
.fw_name_pre = IWL6000_FW_PRE,
|
.fw_name_pre = IWL6000_FW_PRE,
|
||||||
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
.ucode_api_max = IWL6000_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
.ucode_api_min = IWL6000_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_ABC,
|
|
||||||
.valid_rx_ant = ANT_ABC,
|
|
||||||
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000_ops,
|
.ops = &iwl6000_ops,
|
||||||
|
@ -857,8 +831,6 @@ struct iwl_cfg iwl130_bgn_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_A,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
@ -878,8 +850,6 @@ struct iwl_cfg iwl130_bg_cfg = {
|
||||||
.fw_name_pre = IWL6000G2B_FW_PRE,
|
.fw_name_pre = IWL6000G2B_FW_PRE,
|
||||||
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
.ucode_api_max = IWL6000G2_UCODE_API_MAX,
|
||||||
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
.ucode_api_min = IWL6000G2_UCODE_API_MIN,
|
||||||
.valid_tx_ant = ANT_A,
|
|
||||||
.valid_rx_ant = ANT_A,
|
|
||||||
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
|
||||||
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
|
||||||
.ops = &iwl6000g2b_ops,
|
.ops = &iwl6000g2b_ops,
|
||||||
|
|
|
@ -251,6 +251,7 @@ int iwl_eeprom_check_version(struct iwl_priv *priv)
|
||||||
int iwl_eeprom_check_sku(struct iwl_priv *priv)
|
int iwl_eeprom_check_sku(struct iwl_priv *priv)
|
||||||
{
|
{
|
||||||
u16 eeprom_sku;
|
u16 eeprom_sku;
|
||||||
|
u16 radio_cfg;
|
||||||
|
|
||||||
eeprom_sku = iwl_eeprom_query16(priv, EEPROM_SKU_CAP);
|
eeprom_sku = iwl_eeprom_query16(priv, EEPROM_SKU_CAP);
|
||||||
|
|
||||||
|
@ -266,6 +267,25 @@ int iwl_eeprom_check_sku(struct iwl_priv *priv)
|
||||||
|
|
||||||
IWL_INFO(priv, "Device SKU: 0X%x\n", priv->cfg->sku);
|
IWL_INFO(priv, "Device SKU: 0X%x\n", priv->cfg->sku);
|
||||||
|
|
||||||
|
if (!priv->cfg->valid_tx_ant && !priv->cfg->valid_rx_ant) {
|
||||||
|
/* not using .cfg overwrite */
|
||||||
|
radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG);
|
||||||
|
priv->cfg->valid_tx_ant = EEPROM_RF_CFG_TX_ANT_MSK(radio_cfg);
|
||||||
|
priv->cfg->valid_rx_ant = EEPROM_RF_CFG_TX_ANT_MSK(radio_cfg);
|
||||||
|
if (!priv->cfg->valid_tx_ant || !priv->cfg->valid_rx_ant) {
|
||||||
|
IWL_ERR(priv, "Invalid chain (0X%x, 0X%x)\n",
|
||||||
|
priv->cfg->valid_tx_ant,
|
||||||
|
priv->cfg->valid_rx_ant);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
IWL_INFO(priv, "Valid Tx ant: 0X%x, Valid Rx ant: 0X%x\n",
|
||||||
|
priv->cfg->valid_tx_ant, priv->cfg->valid_rx_ant);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* for some special cases,
|
||||||
|
* EEPROM did not reflect the correct antenna setting
|
||||||
|
* so overwrite the valid tx/rx antenna from .cfg
|
||||||
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue