Loading drivers/net/wireless/iwlwifi/Makefile +6 −20 Original line number Diff line number Diff line # DVM obj-$(CONFIG_IWLDVM) += iwldvm.o iwldvm-objs := iwl-agn.o iwl-agn-rs.o iwl-mac80211.o iwldvm-objs += iwl-ucode.o iwl-agn-tx.o iwldvm-objs += iwl-agn-lib.o iwl-agn-calib.o iwldvm-objs += iwl-agn-tt.o iwl-agn-sta.o iwl-agn-rx.o iwldvm-objs += iwl-eeprom.o iwl-power.o iwldvm-objs += iwl-scan.o iwl-led.o iwldvm-objs += iwl-agn-rxon.o iwl-agn-devices.o iwldvm-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o iwldvm-$(CONFIG_IWLWIFI_DEVICE_TESTMODE) += iwl-testmode.o obj-$(CONFIG_IWLDVM) += dvm/ CFLAGS_iwl-devtrace.o := -I$(src) # WIFI # common obj-$(CONFIG_IWLWIFI) += iwlwifi.o iwlwifi-objs += iwl-5000.o iwlwifi-objs += iwl-6000.o iwlwifi-objs += iwl-1000.o iwlwifi-objs += iwl-2000.o iwlwifi-objs += iwl-io.o iwlwifi-objs += iwl-pci.o iwlwifi-objs += iwl-drv.o iwlwifi-objs += iwl-debug.o iwlwifi-objs += iwl-notif-wait.o iwlwifi-objs += iwl-trans-pcie.o iwl-trans-pcie-rx.o iwl-trans-pcie-tx.o iwlwifi-objs += iwl-eeprom-read.o iwl-eeprom-parse.o iwlwifi-objs += pcie/drv.o pcie/rx.o pcie/tx.o pcie/trans.o iwlwifi-objs += pcie/1000.o pcie/2000.o pcie/5000.o pcie/6000.o iwlwifi-$(CONFIG_IWLWIFI_DEVICE_TRACING) += iwl-devtrace.o ccflags-y += -D__CHECK_ENDIAN__ ccflags-y += -D__CHECK_ENDIAN__ -I$(src) drivers/net/wireless/iwlwifi/dvm/Makefile 0 → 100644 +13 −0 Original line number Diff line number Diff line # DVM obj-$(CONFIG_IWLDVM) += iwldvm.o iwldvm-objs += main.o rs.o mac80211.o ucode.o tx.o iwldvm-objs += lib.o calib.o tt.o sta.o rx.o iwldvm-objs += power.o iwldvm-objs += scan.o led.o iwldvm-objs += rxon.o devices.o iwldvm-$(CONFIG_IWLWIFI_DEBUGFS) += debugfs.o iwldvm-$(CONFIG_IWLWIFI_DEVICE_TESTMODE) += testmode.o ccflags-y += -D__CHECK_ENDIAN__ -I$(src)/../ drivers/net/wireless/iwlwifi/iwl-agn.h→drivers/net/wireless/iwlwifi/dvm/agn.h +8 −86 Original line number Diff line number Diff line Loading @@ -63,9 +63,10 @@ #ifndef __iwl_agn_h__ #define __iwl_agn_h__ #include "iwl-dev.h" #include "iwl-config.h" #include "dev.h" /* The first 11 queues (0-10) are used otherwise */ #define IWLAGN_FIRST_AMPDU_QUEUE 11 Loading @@ -91,7 +92,6 @@ extern struct iwl_lib_ops iwl6030_lib; #define STATUS_CT_KILL 1 #define STATUS_ALIVE 2 #define STATUS_READY 3 #define STATUS_GEO_CONFIGURED 4 #define STATUS_EXIT_PENDING 5 #define STATUS_STATISTICS 6 #define STATUS_SCANNING 7 Loading @@ -101,6 +101,7 @@ extern struct iwl_lib_ops iwl6030_lib; #define STATUS_CHANNEL_SWITCH_PENDING 11 #define STATUS_SCAN_COMPLETE 12 #define STATUS_POWER_PMI 13 #define STATUS_SCAN_ROC_EXPIRED 14 struct iwl_ucode_capabilities; Loading Loading @@ -255,6 +256,10 @@ int __must_check iwl_scan_initiate(struct iwl_priv *priv, enum iwl_scan_type scan_type, enum ieee80211_band band); void iwl_scan_roc_expired(struct iwl_priv *priv); void iwl_scan_offchannel_skb(struct iwl_priv *priv); void iwl_scan_offchannel_skb_status(struct iwl_priv *priv); /* For faster active scanning, scan will move to the next channel if fewer than * PLCP_QUIET_THRESH packets are heard on this channel within * ACTIVE_QUIET_TIME after sending probe request. This shortens the dwell Loading Loading @@ -437,10 +442,8 @@ static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv, static inline int iwl_is_ready(struct iwl_priv *priv) { /* The adapter is 'ready' if READY and GEO_CONFIGURED bits are * set but EXIT_PENDING is not */ /* The adapter is 'ready' if READY EXIT_PENDING is not set */ return test_bit(STATUS_READY, &priv->status) && test_bit(STATUS_GEO_CONFIGURED, &priv->status) && !test_bit(STATUS_EXIT_PENDING, &priv->status); } Loading Loading @@ -518,85 +521,4 @@ static inline const char *iwl_dvm_get_cmd_string(u8 cmd) return s; return "UNKNOWN"; } /* API method exported for mvm hybrid state */ void iwl_setup_deferred_work(struct iwl_priv *priv); int iwl_send_wimax_coex(struct iwl_priv *priv); int iwl_send_bt_env(struct iwl_priv *priv, u8 action, u8 type); void iwl_option_config(struct iwl_priv *priv); void iwl_set_hw_params(struct iwl_priv *priv); void iwl_init_context(struct iwl_priv *priv, u32 ucode_flags); int iwl_init_drv(struct iwl_priv *priv); void iwl_uninit_drv(struct iwl_priv *priv); void iwl_send_bt_config(struct iwl_priv *priv); void iwl_rf_kill_ct_config(struct iwl_priv *priv); int iwl_setup_interface(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwl_teardown_interface(struct iwl_priv *priv, struct ieee80211_vif *vif, bool mode_change); int iwl_full_rxon_required(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwlagn_update_qos(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwlagn_check_needed_chains(struct iwl_priv *priv, struct iwl_rxon_context *ctx, struct ieee80211_bss_conf *bss_conf); void iwlagn_chain_noise_reset(struct iwl_priv *priv); int iwlagn_update_beacon(struct iwl_priv *priv, struct ieee80211_vif *vif); void iwl_tt_handler(struct iwl_priv *priv); void iwl_op_mode_dvm_stop(struct iwl_op_mode *op_mode); void iwl_stop_sw_queue(struct iwl_op_mode *op_mode, int queue); void iwl_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state); void iwl_free_skb(struct iwl_op_mode *op_mode, struct sk_buff *skb); void iwl_nic_error(struct iwl_op_mode *op_mode); void iwl_cmd_queue_full(struct iwl_op_mode *op_mode); void iwl_nic_config(struct iwl_op_mode *op_mode); int iwlagn_mac_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set); void iwlagn_mac_rssi_callback(struct ieee80211_hw *hw, enum ieee80211_rssi_event rssi_event); int iwlagn_mac_cancel_remain_on_channel(struct ieee80211_hw *hw); int iwlagn_mac_tx_last_beacon(struct ieee80211_hw *hw); void iwlagn_mac_flush(struct ieee80211_hw *hw, bool drop); void iwl_wake_sw_queue(struct iwl_op_mode *op_mode, int queue); void iwlagn_mac_channel_switch(struct ieee80211_hw *hw, struct ieee80211_channel_switch *ch_switch); int iwlagn_mac_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state); int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size); int iwlagn_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_scan_request *req); void iwlagn_mac_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta); void iwlagn_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags, unsigned int *total_flags, u64 multicast); int iwlagn_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params); void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_gtk_rekey_data *data); void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key); int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key); void iwlagn_mac_stop(struct ieee80211_hw *hw); void iwlagn_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb); int iwlagn_mac_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); #endif /* __iwl_agn_h__ */ drivers/net/wireless/iwlwifi/iwl-agn-calib.c→drivers/net/wireless/iwlwifi/dvm/calib.c +13 −11 Original line number Diff line number Diff line Loading @@ -63,10 +63,11 @@ #include <linux/slab.h> #include <net/mac80211.h> #include "iwl-dev.h" #include "iwl-agn-calib.h" #include "iwl-trans.h" #include "iwl-agn.h" #include "dev.h" #include "calib.h" #include "agn.h" /***************************************************************************** * INIT calibrations framework Loading Loading @@ -832,14 +833,14 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, * To be safe, simply mask out any chains that we know * are not on the device. */ active_chains &= priv->hw_params.valid_rx_ant; active_chains &= priv->eeprom_data->valid_rx_ant; num_tx_chains = 0; for (i = 0; i < NUM_RX_CHAINS; i++) { /* loops on all the bits of * priv->hw_setting.valid_tx_ant */ u8 ant_msk = (1 << i); if (!(priv->hw_params.valid_tx_ant & ant_msk)) if (!(priv->eeprom_data->valid_tx_ant & ant_msk)) continue; num_tx_chains++; Loading @@ -853,7 +854,7 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, * connect the first valid tx chain */ first_chain = find_first_chain(priv->hw_params.valid_tx_ant); find_first_chain(priv->eeprom_data->valid_tx_ant); data->disconn_array[first_chain] = 0; active_chains |= BIT(first_chain); IWL_DEBUG_CALIB(priv, Loading @@ -863,13 +864,13 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, } } if (active_chains != priv->hw_params.valid_rx_ant && if (active_chains != priv->eeprom_data->valid_rx_ant && active_chains != priv->chain_noise_data.active_chains) IWL_DEBUG_CALIB(priv, "Detected that not all antennas are connected! " "Connected: %#x, valid: %#x.\n", active_chains, priv->hw_params.valid_rx_ant); priv->eeprom_data->valid_rx_ant); /* Save for use within RXON, TX, SCAN commands, etc. */ data->active_chains = active_chains; Loading Loading @@ -1054,7 +1055,7 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv) priv->cfg->bt_params->advanced_bt_coexist) { /* Disable disconnected antenna algorithm for advanced bt coex, assuming valid antennas are connected */ data->active_chains = priv->hw_params.valid_rx_ant; data->active_chains = priv->eeprom_data->valid_rx_ant; for (i = 0; i < NUM_RX_CHAINS; i++) if (!(data->active_chains & (1<<i))) data->disconn_array[i] = 1; Loading Loading @@ -1083,8 +1084,9 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv) IWL_DEBUG_CALIB(priv, "min_average_noise = %d, antenna %d\n", min_average_noise, min_average_noise_antenna_i); iwlagn_gain_computation(priv, average_noise, find_first_chain(priv->hw_params.valid_rx_ant)); iwlagn_gain_computation( priv, average_noise, find_first_chain(priv->eeprom_data->valid_rx_ant)); /* Some power changes may have been made during the calibration. * Update and commit the RXON Loading drivers/net/wireless/iwlwifi/iwl-agn-calib.h→drivers/net/wireless/iwlwifi/dvm/calib.h +2 −2 Original line number Diff line number Diff line Loading @@ -62,8 +62,8 @@ #ifndef __iwl_calib_h__ #define __iwl_calib_h__ #include "iwl-dev.h" #include "iwl-commands.h" #include "dev.h" #include "commands.h" void iwl_chain_noise_calibration(struct iwl_priv *priv); void iwl_sensitivity_calibration(struct iwl_priv *priv); Loading Loading
drivers/net/wireless/iwlwifi/Makefile +6 −20 Original line number Diff line number Diff line # DVM obj-$(CONFIG_IWLDVM) += iwldvm.o iwldvm-objs := iwl-agn.o iwl-agn-rs.o iwl-mac80211.o iwldvm-objs += iwl-ucode.o iwl-agn-tx.o iwldvm-objs += iwl-agn-lib.o iwl-agn-calib.o iwldvm-objs += iwl-agn-tt.o iwl-agn-sta.o iwl-agn-rx.o iwldvm-objs += iwl-eeprom.o iwl-power.o iwldvm-objs += iwl-scan.o iwl-led.o iwldvm-objs += iwl-agn-rxon.o iwl-agn-devices.o iwldvm-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o iwldvm-$(CONFIG_IWLWIFI_DEVICE_TESTMODE) += iwl-testmode.o obj-$(CONFIG_IWLDVM) += dvm/ CFLAGS_iwl-devtrace.o := -I$(src) # WIFI # common obj-$(CONFIG_IWLWIFI) += iwlwifi.o iwlwifi-objs += iwl-5000.o iwlwifi-objs += iwl-6000.o iwlwifi-objs += iwl-1000.o iwlwifi-objs += iwl-2000.o iwlwifi-objs += iwl-io.o iwlwifi-objs += iwl-pci.o iwlwifi-objs += iwl-drv.o iwlwifi-objs += iwl-debug.o iwlwifi-objs += iwl-notif-wait.o iwlwifi-objs += iwl-trans-pcie.o iwl-trans-pcie-rx.o iwl-trans-pcie-tx.o iwlwifi-objs += iwl-eeprom-read.o iwl-eeprom-parse.o iwlwifi-objs += pcie/drv.o pcie/rx.o pcie/tx.o pcie/trans.o iwlwifi-objs += pcie/1000.o pcie/2000.o pcie/5000.o pcie/6000.o iwlwifi-$(CONFIG_IWLWIFI_DEVICE_TRACING) += iwl-devtrace.o ccflags-y += -D__CHECK_ENDIAN__ ccflags-y += -D__CHECK_ENDIAN__ -I$(src)
drivers/net/wireless/iwlwifi/dvm/Makefile 0 → 100644 +13 −0 Original line number Diff line number Diff line # DVM obj-$(CONFIG_IWLDVM) += iwldvm.o iwldvm-objs += main.o rs.o mac80211.o ucode.o tx.o iwldvm-objs += lib.o calib.o tt.o sta.o rx.o iwldvm-objs += power.o iwldvm-objs += scan.o led.o iwldvm-objs += rxon.o devices.o iwldvm-$(CONFIG_IWLWIFI_DEBUGFS) += debugfs.o iwldvm-$(CONFIG_IWLWIFI_DEVICE_TESTMODE) += testmode.o ccflags-y += -D__CHECK_ENDIAN__ -I$(src)/../
drivers/net/wireless/iwlwifi/iwl-agn.h→drivers/net/wireless/iwlwifi/dvm/agn.h +8 −86 Original line number Diff line number Diff line Loading @@ -63,9 +63,10 @@ #ifndef __iwl_agn_h__ #define __iwl_agn_h__ #include "iwl-dev.h" #include "iwl-config.h" #include "dev.h" /* The first 11 queues (0-10) are used otherwise */ #define IWLAGN_FIRST_AMPDU_QUEUE 11 Loading @@ -91,7 +92,6 @@ extern struct iwl_lib_ops iwl6030_lib; #define STATUS_CT_KILL 1 #define STATUS_ALIVE 2 #define STATUS_READY 3 #define STATUS_GEO_CONFIGURED 4 #define STATUS_EXIT_PENDING 5 #define STATUS_STATISTICS 6 #define STATUS_SCANNING 7 Loading @@ -101,6 +101,7 @@ extern struct iwl_lib_ops iwl6030_lib; #define STATUS_CHANNEL_SWITCH_PENDING 11 #define STATUS_SCAN_COMPLETE 12 #define STATUS_POWER_PMI 13 #define STATUS_SCAN_ROC_EXPIRED 14 struct iwl_ucode_capabilities; Loading Loading @@ -255,6 +256,10 @@ int __must_check iwl_scan_initiate(struct iwl_priv *priv, enum iwl_scan_type scan_type, enum ieee80211_band band); void iwl_scan_roc_expired(struct iwl_priv *priv); void iwl_scan_offchannel_skb(struct iwl_priv *priv); void iwl_scan_offchannel_skb_status(struct iwl_priv *priv); /* For faster active scanning, scan will move to the next channel if fewer than * PLCP_QUIET_THRESH packets are heard on this channel within * ACTIVE_QUIET_TIME after sending probe request. This shortens the dwell Loading Loading @@ -437,10 +442,8 @@ static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv, static inline int iwl_is_ready(struct iwl_priv *priv) { /* The adapter is 'ready' if READY and GEO_CONFIGURED bits are * set but EXIT_PENDING is not */ /* The adapter is 'ready' if READY EXIT_PENDING is not set */ return test_bit(STATUS_READY, &priv->status) && test_bit(STATUS_GEO_CONFIGURED, &priv->status) && !test_bit(STATUS_EXIT_PENDING, &priv->status); } Loading Loading @@ -518,85 +521,4 @@ static inline const char *iwl_dvm_get_cmd_string(u8 cmd) return s; return "UNKNOWN"; } /* API method exported for mvm hybrid state */ void iwl_setup_deferred_work(struct iwl_priv *priv); int iwl_send_wimax_coex(struct iwl_priv *priv); int iwl_send_bt_env(struct iwl_priv *priv, u8 action, u8 type); void iwl_option_config(struct iwl_priv *priv); void iwl_set_hw_params(struct iwl_priv *priv); void iwl_init_context(struct iwl_priv *priv, u32 ucode_flags); int iwl_init_drv(struct iwl_priv *priv); void iwl_uninit_drv(struct iwl_priv *priv); void iwl_send_bt_config(struct iwl_priv *priv); void iwl_rf_kill_ct_config(struct iwl_priv *priv); int iwl_setup_interface(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwl_teardown_interface(struct iwl_priv *priv, struct ieee80211_vif *vif, bool mode_change); int iwl_full_rxon_required(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwlagn_update_qos(struct iwl_priv *priv, struct iwl_rxon_context *ctx); void iwlagn_check_needed_chains(struct iwl_priv *priv, struct iwl_rxon_context *ctx, struct ieee80211_bss_conf *bss_conf); void iwlagn_chain_noise_reset(struct iwl_priv *priv); int iwlagn_update_beacon(struct iwl_priv *priv, struct ieee80211_vif *vif); void iwl_tt_handler(struct iwl_priv *priv); void iwl_op_mode_dvm_stop(struct iwl_op_mode *op_mode); void iwl_stop_sw_queue(struct iwl_op_mode *op_mode, int queue); void iwl_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state); void iwl_free_skb(struct iwl_op_mode *op_mode, struct sk_buff *skb); void iwl_nic_error(struct iwl_op_mode *op_mode); void iwl_cmd_queue_full(struct iwl_op_mode *op_mode); void iwl_nic_config(struct iwl_op_mode *op_mode); int iwlagn_mac_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set); void iwlagn_mac_rssi_callback(struct ieee80211_hw *hw, enum ieee80211_rssi_event rssi_event); int iwlagn_mac_cancel_remain_on_channel(struct ieee80211_hw *hw); int iwlagn_mac_tx_last_beacon(struct ieee80211_hw *hw); void iwlagn_mac_flush(struct ieee80211_hw *hw, bool drop); void iwl_wake_sw_queue(struct iwl_op_mode *op_mode, int queue); void iwlagn_mac_channel_switch(struct ieee80211_hw *hw, struct ieee80211_channel_switch *ch_switch); int iwlagn_mac_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state); int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size); int iwlagn_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_scan_request *req); void iwlagn_mac_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta); void iwlagn_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags, unsigned int *total_flags, u64 multicast); int iwlagn_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params); void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_gtk_rekey_data *data); void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key); int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key); void iwlagn_mac_stop(struct ieee80211_hw *hw); void iwlagn_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb); int iwlagn_mac_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); #endif /* __iwl_agn_h__ */
drivers/net/wireless/iwlwifi/iwl-agn-calib.c→drivers/net/wireless/iwlwifi/dvm/calib.c +13 −11 Original line number Diff line number Diff line Loading @@ -63,10 +63,11 @@ #include <linux/slab.h> #include <net/mac80211.h> #include "iwl-dev.h" #include "iwl-agn-calib.h" #include "iwl-trans.h" #include "iwl-agn.h" #include "dev.h" #include "calib.h" #include "agn.h" /***************************************************************************** * INIT calibrations framework Loading Loading @@ -832,14 +833,14 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, * To be safe, simply mask out any chains that we know * are not on the device. */ active_chains &= priv->hw_params.valid_rx_ant; active_chains &= priv->eeprom_data->valid_rx_ant; num_tx_chains = 0; for (i = 0; i < NUM_RX_CHAINS; i++) { /* loops on all the bits of * priv->hw_setting.valid_tx_ant */ u8 ant_msk = (1 << i); if (!(priv->hw_params.valid_tx_ant & ant_msk)) if (!(priv->eeprom_data->valid_tx_ant & ant_msk)) continue; num_tx_chains++; Loading @@ -853,7 +854,7 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, * connect the first valid tx chain */ first_chain = find_first_chain(priv->hw_params.valid_tx_ant); find_first_chain(priv->eeprom_data->valid_tx_ant); data->disconn_array[first_chain] = 0; active_chains |= BIT(first_chain); IWL_DEBUG_CALIB(priv, Loading @@ -863,13 +864,13 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig, } } if (active_chains != priv->hw_params.valid_rx_ant && if (active_chains != priv->eeprom_data->valid_rx_ant && active_chains != priv->chain_noise_data.active_chains) IWL_DEBUG_CALIB(priv, "Detected that not all antennas are connected! " "Connected: %#x, valid: %#x.\n", active_chains, priv->hw_params.valid_rx_ant); priv->eeprom_data->valid_rx_ant); /* Save for use within RXON, TX, SCAN commands, etc. */ data->active_chains = active_chains; Loading Loading @@ -1054,7 +1055,7 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv) priv->cfg->bt_params->advanced_bt_coexist) { /* Disable disconnected antenna algorithm for advanced bt coex, assuming valid antennas are connected */ data->active_chains = priv->hw_params.valid_rx_ant; data->active_chains = priv->eeprom_data->valid_rx_ant; for (i = 0; i < NUM_RX_CHAINS; i++) if (!(data->active_chains & (1<<i))) data->disconn_array[i] = 1; Loading Loading @@ -1083,8 +1084,9 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv) IWL_DEBUG_CALIB(priv, "min_average_noise = %d, antenna %d\n", min_average_noise, min_average_noise_antenna_i); iwlagn_gain_computation(priv, average_noise, find_first_chain(priv->hw_params.valid_rx_ant)); iwlagn_gain_computation( priv, average_noise, find_first_chain(priv->eeprom_data->valid_rx_ant)); /* Some power changes may have been made during the calibration. * Update and commit the RXON Loading
drivers/net/wireless/iwlwifi/iwl-agn-calib.h→drivers/net/wireless/iwlwifi/dvm/calib.h +2 −2 Original line number Diff line number Diff line Loading @@ -62,8 +62,8 @@ #ifndef __iwl_calib_h__ #define __iwl_calib_h__ #include "iwl-dev.h" #include "iwl-commands.h" #include "dev.h" #include "commands.h" void iwl_chain_noise_calibration(struct iwl_priv *priv); void iwl_sensitivity_calibration(struct iwl_priv *priv); Loading