diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-lib.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index 299fd9d5960..29ed6049c0f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -422,7 +422,8 @@ static void iwlagn_rx_reply_tx(struct iwl_priv *priv, | |||
422 | * notification again. | 422 | * notification again. |
423 | */ | 423 | */ |
424 | if (tx_resp->bt_kill_count && tx_resp->frame_count == 1 && | 424 | if (tx_resp->bt_kill_count && tx_resp->frame_count == 1 && |
425 | priv->cfg->advanced_bt_coexist) { | 425 | priv->cfg->bt_params && |
426 | priv->cfg->bt_params->advanced_bt_coexist) { | ||
426 | IWL_WARN(priv, "receive reply tx with bt_kill\n"); | 427 | IWL_WARN(priv, "receive reply tx with bt_kill\n"); |
427 | } | 428 | } |
428 | iwlagn_tx_status_reply_tx(priv, agg, tx_resp, txq_id, index); | 429 | iwlagn_tx_status_reply_tx(priv, agg, tx_resp, txq_id, index); |
@@ -589,7 +590,7 @@ const u8 *iwlagn_eeprom_query_addr(const struct iwl_priv *priv, | |||
589 | size_t offset) | 590 | size_t offset) |
590 | { | 591 | { |
591 | u32 address = eeprom_indirect_address(priv, offset); | 592 | u32 address = eeprom_indirect_address(priv, offset); |
592 | BUG_ON(address >= priv->cfg->eeprom_size); | 593 | BUG_ON(address >= priv->cfg->base_params->eeprom_size); |
593 | return &priv->eeprom[address]; | 594 | return &priv->eeprom[address]; |
594 | } | 595 | } |
595 | 596 | ||
@@ -637,7 +638,7 @@ int iwlagn_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq) | |||
637 | const u32 rfdnlog = RX_QUEUE_SIZE_LOG; /* 256 RBDs */ | 638 | const u32 rfdnlog = RX_QUEUE_SIZE_LOG; /* 256 RBDs */ |
638 | u32 rb_timeout = 0; /* FIXME: RX_RB_TIMEOUT for all devices? */ | 639 | u32 rb_timeout = 0; /* FIXME: RX_RB_TIMEOUT for all devices? */ |
639 | 640 | ||
640 | if (!priv->cfg->use_isr_legacy) | 641 | if (!priv->cfg->base_params->use_isr_legacy) |
641 | rb_timeout = RX_RB_TIMEOUT; | 642 | rb_timeout = RX_RB_TIMEOUT; |
642 | 643 | ||
643 | if (priv->cfg->mod_params->amsdu_size_8K) | 644 | if (priv->cfg->mod_params->amsdu_size_8K) |
@@ -1424,7 +1425,8 @@ int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
1424 | * Internal scans are passive, so we can indiscriminately set | 1425 | * Internal scans are passive, so we can indiscriminately set |
1425 | * the BT ignore flag on 2.4 GHz since it applies to TX only. | 1426 | * the BT ignore flag on 2.4 GHz since it applies to TX only. |
1426 | */ | 1427 | */ |
1427 | if (priv->cfg->advanced_bt_coexist) | 1428 | if (priv->cfg->bt_params && |
1429 | priv->cfg->bt_params->advanced_bt_coexist) | ||
1428 | scan->tx_cmd.tx_flags |= TX_CMD_FLG_IGNORE_BT; | 1430 | scan->tx_cmd.tx_flags |= TX_CMD_FLG_IGNORE_BT; |
1429 | scan->good_CRC_th = IWL_GOOD_CRC_TH_DISABLED; | 1431 | scan->good_CRC_th = IWL_GOOD_CRC_TH_DISABLED; |
1430 | break; | 1432 | break; |
@@ -1463,10 +1465,12 @@ int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
1463 | if (priv->cfg->scan_tx_antennas[band]) | 1465 | if (priv->cfg->scan_tx_antennas[band]) |
1464 | scan_tx_antennas = priv->cfg->scan_tx_antennas[band]; | 1466 | scan_tx_antennas = priv->cfg->scan_tx_antennas[band]; |
1465 | 1467 | ||
1466 | if (priv->cfg->advanced_bt_coexist && priv->bt_full_concurrent) { | 1468 | if (priv->cfg->bt_params && |
1469 | priv->cfg->bt_params->advanced_bt_coexist && | ||
1470 | priv->bt_full_concurrent) { | ||
1467 | /* operated as 1x1 in full concurrency mode */ | 1471 | /* operated as 1x1 in full concurrency mode */ |
1468 | scan_tx_antennas = | 1472 | scan_tx_antennas = first_antenna( |
1469 | first_antenna(priv->cfg->scan_tx_antennas[band]); | 1473 | priv->cfg->scan_tx_antennas[band]); |
1470 | } | 1474 | } |
1471 | 1475 | ||
1472 | priv->scan_tx_ant[band] = iwl_toggle_tx_ant(priv, priv->scan_tx_ant[band], | 1476 | priv->scan_tx_ant[band] = iwl_toggle_tx_ant(priv, priv->scan_tx_ant[band], |
@@ -1487,7 +1491,9 @@ int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
1487 | 1491 | ||
1488 | rx_ant = first_antenna(active_chains); | 1492 | rx_ant = first_antenna(active_chains); |
1489 | } | 1493 | } |
1490 | if (priv->cfg->advanced_bt_coexist && priv->bt_full_concurrent) { | 1494 | if (priv->cfg->bt_params && |
1495 | priv->cfg->bt_params->advanced_bt_coexist && | ||
1496 | priv->bt_full_concurrent) { | ||
1491 | /* operated as 1x1 in full concurrency mode */ | 1497 | /* operated as 1x1 in full concurrency mode */ |
1492 | rx_ant = first_antenna(rx_ant); | 1498 | rx_ant = first_antenna(rx_ant); |
1493 | } | 1499 | } |
@@ -1777,7 +1783,10 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv) | |||
1777 | BUILD_BUG_ON(sizeof(iwlagn_def_3w_lookup) != | 1783 | BUILD_BUG_ON(sizeof(iwlagn_def_3w_lookup) != |
1778 | sizeof(bt_cmd.bt3_lookup_table)); | 1784 | sizeof(bt_cmd.bt3_lookup_table)); |
1779 | 1785 | ||
1780 | bt_cmd.prio_boost = priv->cfg->bt_prio_boost; | 1786 | if (priv->cfg->bt_params) |
1787 | bt_cmd.prio_boost = priv->cfg->bt_params->bt_prio_boost; | ||
1788 | else | ||
1789 | bt_cmd.prio_boost = 0; | ||
1781 | bt_cmd.kill_ack_mask = priv->kill_ack_mask; | 1790 | bt_cmd.kill_ack_mask = priv->kill_ack_mask; |
1782 | bt_cmd.kill_cts_mask = priv->kill_cts_mask; | 1791 | bt_cmd.kill_cts_mask = priv->kill_cts_mask; |
1783 | bt_cmd.valid = priv->bt_valid; | 1792 | bt_cmd.valid = priv->bt_valid; |