Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17b3c17e authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'wireless-next-2.6' of...

Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6

Conflicts:
	drivers/net/wireless/iwlwifi/iwl-1000.c
	drivers/net/wireless/iwlwifi/iwl-6000.c
	drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c
	drivers/net/wireless/iwlwifi/iwl-core.h
parents 1fcfe76a 65af8dea
Loading
Loading
Loading
Loading
+32 −39
Original line number Diff line number Diff line
@@ -147,7 +147,11 @@ static int iwl1000_hw_set_hw_params(struct iwl_priv *priv)
	priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR;

	priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant);
	priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant);
	if (priv->cfg->rx_with_siso_diversity)
		priv->hw_params.rx_chains_num = 1;
	else
		priv->hw_params.rx_chains_num =
			num_of_ant(priv->cfg->valid_rx_ant);
	priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant;
	priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant;

@@ -272,60 +276,49 @@ static struct iwl_ht_params iwl1000_ht_params = {
	.use_rts_for_aggregation = true, /* use rts/cts protection */
};

#define IWL_DEVICE_1000						\
	.fw_name_pre = IWL1000_FW_PRE,				\
	.ucode_api_max = IWL1000_UCODE_API_MAX,			\
	.ucode_api_min = IWL1000_UCODE_API_MIN,			\
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,	\
	.ops = &iwl1000_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl1000_base_params,			\
	.led_mode = IWL_LED_BLINK

struct iwl_cfg iwl1000_bgn_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 1000 BGN",
	.fw_name_pre = IWL1000_FW_PRE,
	.ucode_api_max = IWL1000_UCODE_API_MAX,
	.ucode_api_min = IWL1000_UCODE_API_MIN,
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
	.ops = &iwl1000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl1000_base_params,
	IWL_DEVICE_1000,
	.ht_params = &iwl1000_ht_params,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl1000_bg_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 1000 BG",
	.fw_name_pre = IWL1000_FW_PRE,
	.ucode_api_max = IWL1000_UCODE_API_MAX,
	.ucode_api_min = IWL1000_UCODE_API_MIN,
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
	.ops = &iwl1000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl1000_base_params,
	.led_mode = IWL_LED_BLINK,
	IWL_DEVICE_1000,
};

#define IWL_DEVICE_100						\
	.fw_name_pre = IWL100_FW_PRE,				\
	.ucode_api_max = IWL100_UCODE_API_MAX,			\
	.ucode_api_min = IWL100_UCODE_API_MIN,			\
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,	\
	.ops = &iwl1000_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl1000_base_params,			\
	.led_mode = IWL_LED_RF_STATE,				\
	.rx_with_siso_diversity = true

struct iwl_cfg iwl100_bgn_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 100 BGN",
	.fw_name_pre = IWL100_FW_PRE,
	.ucode_api_max = IWL100_UCODE_API_MAX,
	.ucode_api_min = IWL100_UCODE_API_MIN,
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
	.ops = &iwl1000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl1000_base_params,
	IWL_DEVICE_100,
	.ht_params = &iwl1000_ht_params,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl100_bg_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 100 BG",
	.fw_name_pre = IWL100_FW_PRE,
	.ucode_api_max = IWL100_UCODE_API_MAX,
	.ucode_api_min = IWL100_UCODE_API_MIN,
	.eeprom_ver = EEPROM_1000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_1000_TX_POWER_VERSION,
	.ops = &iwl1000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl1000_base_params,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
	IWL_DEVICE_100,
};

MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
+32 −56
Original line number Diff line number Diff line
@@ -520,65 +520,44 @@ static struct iwl_ht_params iwl5000_ht_params = {
	.use_rts_for_aggregation = true, /* use rts/cts protection */
};

#define IWL_DEVICE_5000						\
	.fw_name_pre = IWL5000_FW_PRE,				\
	.ucode_api_max = IWL5000_UCODE_API_MAX,			\
	.ucode_api_min = IWL5000_UCODE_API_MIN,			\
	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,	\
	.ops = &iwl5000_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl5000_base_params,			\
	.led_mode = IWL_LED_BLINK

struct iwl_cfg iwl5300_agn_cfg = {
	.name = "Intel(R) Ultimate N WiFi Link 5300 AGN",
	.fw_name_pre = IWL5000_FW_PRE,
	.ucode_api_max = IWL5000_UCODE_API_MAX,
	.ucode_api_min = IWL5000_UCODE_API_MIN,
	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
	.ops = &iwl5000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	IWL_DEVICE_5000,
	.ht_params = &iwl5000_ht_params,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl5100_bgn_cfg = {
	.name = "Intel(R) WiFi Link 5100 BGN",
	.fw_name_pre = IWL5000_FW_PRE,
	.ucode_api_max = IWL5000_UCODE_API_MAX,
	.ucode_api_min = IWL5000_UCODE_API_MIN,
	IWL_DEVICE_5000,
	.valid_tx_ant = ANT_B,		/* .cfg overwrite */
	.valid_rx_ant = ANT_AB,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
	.ops = &iwl5000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	.ht_params = &iwl5000_ht_params,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl5100_abg_cfg = {
	.name = "Intel(R) WiFi Link 5100 ABG",
	.fw_name_pre = IWL5000_FW_PRE,
	.ucode_api_max = IWL5000_UCODE_API_MAX,
	.ucode_api_min = IWL5000_UCODE_API_MIN,
	IWL_DEVICE_5000,
	.valid_tx_ant = ANT_B,		/* .cfg overwrite */
	.valid_rx_ant = ANT_AB,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
	.ops = &iwl5000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl5100_agn_cfg = {
	.name = "Intel(R) WiFi Link 5100 AGN",
	.fw_name_pre = IWL5000_FW_PRE,
	.ucode_api_max = IWL5000_UCODE_API_MAX,
	.ucode_api_min = IWL5000_UCODE_API_MIN,
	IWL_DEVICE_5000,
	.valid_tx_ant = ANT_B,		/* .cfg overwrite */
	.valid_rx_ant = ANT_AB,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
	.ops = &iwl5000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	.ht_params = &iwl5000_ht_params,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl5350_agn_cfg = {
@@ -593,35 +572,32 @@ struct iwl_cfg iwl5350_agn_cfg = {
	.base_params = &iwl5000_base_params,
	.ht_params = &iwl5000_ht_params,
	.led_mode = IWL_LED_BLINK,
	.internal_wimax_coex = true,
};

#define IWL_DEVICE_5150						\
	.fw_name_pre = IWL5150_FW_PRE,				\
	.ucode_api_max = IWL5150_UCODE_API_MAX,			\
	.ucode_api_min = IWL5150_UCODE_API_MIN,			\
	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,	\
	.ops = &iwl5150_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl5000_base_params,			\
	.need_dc_calib = true,					\
	.led_mode = IWL_LED_BLINK,				\
	.internal_wimax_coex = true

struct iwl_cfg iwl5150_agn_cfg = {
	.name = "Intel(R) WiMAX/WiFi Link 5150 AGN",
	.fw_name_pre = IWL5150_FW_PRE,
	.ucode_api_max = IWL5150_UCODE_API_MAX,
	.ucode_api_min = IWL5150_UCODE_API_MIN,
	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
	.ops = &iwl5150_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	IWL_DEVICE_5150,
	.ht_params = &iwl5000_ht_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_BLINK,

};

struct iwl_cfg iwl5150_abg_cfg = {
	.name = "Intel(R) WiMAX/WiFi Link 5150 ABG",
	.fw_name_pre = IWL5150_FW_PRE,
	.ucode_api_max = IWL5150_UCODE_API_MAX,
	.ucode_api_min = IWL5150_UCODE_API_MIN,
	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
	.ops = &iwl5150_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl5000_base_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_BLINK,
	IWL_DEVICE_5150,
};

MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
+101 −237
Original line number Diff line number Diff line
@@ -182,7 +182,11 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv)
	priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR;

	priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant);
	priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant);
	if (priv->cfg->rx_with_siso_diversity)
		priv->hw_params.rx_chains_num = 1;
	else
		priv->hw_params.rx_chains_num =
			num_of_ant(priv->cfg->valid_rx_ant);
	priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant;
	priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant;

@@ -511,7 +515,7 @@ static struct iwl_base_params iwl6050_base_params = {
	.chain_noise_calib_by_driver = true,
	.shadow_reg_enable = true,
};
static struct iwl_base_params iwl6000_coex_base_params = {
static struct iwl_base_params iwl6000_g2_base_params = {
	.eeprom_size = OTP_LOW_IMAGE_SIZE,
	.num_of_queues = IWLAGN_NUM_QUEUES,
	.num_of_ampdu_queues = IWLAGN_NUM_AMPDU_QUEUES,
@@ -520,7 +524,7 @@ static struct iwl_base_params iwl6000_coex_base_params = {
	.use_bsm = false,
	.max_ll_items = OTP_MAX_LL_ITEMS_6x00,
	.shadow_ram_support = true,
	.led_compensation = 51,
	.led_compensation = 57,
	.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
	.supports_idle = true,
	.adv_thermal_throttle = true,
@@ -550,243 +554,156 @@ static struct iwl_bt_params iwl6000_bt_params = {
	.bt_sco_disable = true,
};

#define IWL_DEVICE_6005						\
	.fw_name_pre = IWL6000G2A_FW_PRE,			\
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,		\
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,		\
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,	\
	.ops = &iwl6000_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl6000_g2_base_params,			\
	.need_dc_calib = true,					\
	.need_temp_offset_calib = true,				\
	.led_mode = IWL_LED_RF_STATE

struct iwl_cfg iwl6005_2agn_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6205 AGN",
	.fw_name_pre = IWL6000G2A_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	IWL_DEVICE_6005,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl6005_2abg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6205 ABG",
	.fw_name_pre = IWL6000G2A_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
	IWL_DEVICE_6005,
};

struct iwl_cfg iwl6005_2bg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6205 BG",
	.fw_name_pre = IWL6000G2A_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
};
	IWL_DEVICE_6005,
};

#define IWL_DEVICE_6030						\
	.fw_name_pre = IWL6000G2B_FW_PRE,			\
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,		\
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,		\
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,	\
	.ops = &iwl6000g2b_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl6000_g2_base_params,			\
	.bt_params = &iwl6000_bt_params,			\
	.need_dc_calib = true,					\
	.need_temp_offset_calib = true,				\
	.led_mode = IWL_LED_RF_STATE,				\
	.adv_pm = true,						\
	/*							\
	 *Due to bluetooth, we transmit 2.4 GHz probes		\
	 * only on antenna A					\
	 */							\
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A

struct iwl_cfg iwl6030_2agn_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6230 AGN",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	IWL_DEVICE_6030,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl6030_2abg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6230 ABG",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
	IWL_DEVICE_6030,
};

struct iwl_cfg iwl6030_2bgn_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6230 BGN",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	IWL_DEVICE_6030,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl6030_2bg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6230 BG",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
	IWL_DEVICE_6030,
};

struct iwl_cfg iwl1030_bgn_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 1030 BGN",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	IWL_DEVICE_6030,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl1030_bg_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 1030 BG",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	.need_dc_calib = true,
	.need_temp_offset_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
	IWL_DEVICE_6030,
};

struct iwl_cfg iwl130_bgn_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 130 BGN",
	IWL_DEVICE_6030,
	.ht_params = &iwl6000_ht_params,
	.rx_with_siso_diversity = true,
};

struct iwl_cfg iwl130_bg_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 130 BG",
	IWL_DEVICE_6030,
	.rx_with_siso_diversity = true,
};

/*
 * "i": Internal configuration, use internal Power Amplifier
 */
#define IWL_DEVICE_6000i					\
	.fw_name_pre = IWL6000_FW_PRE,				\
	.ucode_api_max = IWL6000_UCODE_API_MAX,			\
	.ucode_api_min = IWL6000_UCODE_API_MIN,			\
	.valid_tx_ant = ANT_BC,		/* .cfg overwrite */	\
	.valid_rx_ant = ANT_BC,		/* .cfg overwrite */	\
	.eeprom_ver = EEPROM_6000_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,	\
	.ops = &iwl6000_ops,					\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl6000_base_params,			\
	.pa_type = IWL_PA_INTERNAL,				\
	.led_mode = IWL_LED_BLINK

struct iwl_cfg iwl6000i_2agn_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6200 AGN",
	.fw_name_pre = IWL6000_FW_PRE,
	.ucode_api_max = IWL6000_UCODE_API_MAX,
	.ucode_api_min = IWL6000_UCODE_API_MIN,
	.valid_tx_ant = ANT_BC,		/* .cfg overwrite */
	.valid_rx_ant = ANT_BC,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	IWL_DEVICE_6000i,
	.ht_params = &iwl6000_ht_params,
	.pa_type = IWL_PA_INTERNAL,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl6000i_2abg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6200 ABG",
	.fw_name_pre = IWL6000_FW_PRE,
	.ucode_api_max = IWL6000_UCODE_API_MAX,
	.ucode_api_min = IWL6000_UCODE_API_MIN,
	.valid_tx_ant = ANT_BC,		/* .cfg overwrite */
	.valid_rx_ant = ANT_BC,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	.pa_type = IWL_PA_INTERNAL,
	.led_mode = IWL_LED_BLINK,
	IWL_DEVICE_6000i,
};

struct iwl_cfg iwl6000i_2bg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N 6200 BG",
	.fw_name_pre = IWL6000_FW_PRE,
	.ucode_api_max = IWL6000_UCODE_API_MAX,
	.ucode_api_min = IWL6000_UCODE_API_MIN,
	.valid_tx_ant = ANT_BC,		/* .cfg overwrite */
	.valid_rx_ant = ANT_BC,		/* .cfg overwrite */
	.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
	.ops = &iwl6000_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_base_params,
	.pa_type = IWL_PA_INTERNAL,
	.led_mode = IWL_LED_BLINK,
};
	IWL_DEVICE_6000i,
};

#define IWL_DEVICE_6050						\
	.fw_name_pre = IWL6050_FW_PRE,				\
	.ucode_api_max = IWL6050_UCODE_API_MAX,			\
	.ucode_api_min = IWL6050_UCODE_API_MIN,			\
	.ops = &iwl6050_ops,					\
	.eeprom_ver = EEPROM_6050_EEPROM_VERSION,		\
	.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,	\
	.mod_params = &iwlagn_mod_params,			\
	.base_params = &iwl6050_base_params,			\
	.need_dc_calib = true,					\
	.led_mode = IWL_LED_BLINK,				\
	.internal_wimax_coex = true

struct iwl_cfg iwl6050_2agn_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN",
	.fw_name_pre = IWL6050_FW_PRE,
	.ucode_api_max = IWL6050_UCODE_API_MAX,
	.ucode_api_min = IWL6050_UCODE_API_MIN,
	.ops = &iwl6050_ops,
	.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6050_base_params,
	IWL_DEVICE_6050,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl6050_2abg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG",
	IWL_DEVICE_6050,
};

struct iwl_cfg iwl6150_bgn_cfg = {
@@ -802,21 +719,7 @@ struct iwl_cfg iwl6150_bgn_cfg = {
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl6050_2abg_cfg = {
	.name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG",
	.fw_name_pre = IWL6050_FW_PRE,
	.ucode_api_max = IWL6050_UCODE_API_MAX,
	.ucode_api_min = IWL6050_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
	.ops = &iwl6050_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6050_base_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_BLINK,
	.internal_wimax_coex = true,
};

struct iwl_cfg iwl6000_3agn_cfg = {
@@ -834,45 +737,6 @@ struct iwl_cfg iwl6000_3agn_cfg = {
	.led_mode = IWL_LED_BLINK,
};

struct iwl_cfg iwl130_bgn_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 130 BGN",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	.ht_params = &iwl6000_ht_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
};

struct iwl_cfg iwl130_bg_cfg = {
	.name = "Intel(R) Centrino(R) Wireless-N 130 BG",
	.fw_name_pre = IWL6000G2B_FW_PRE,
	.ucode_api_max = IWL6000G2_UCODE_API_MAX,
	.ucode_api_min = IWL6000G2_UCODE_API_MIN,
	.eeprom_ver = EEPROM_6000G2_EEPROM_VERSION,
	.eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION,
	.ops = &iwl6000g2b_ops,
	.mod_params = &iwlagn_mod_params,
	.base_params = &iwl6000_coex_base_params,
	.bt_params = &iwl6000_bt_params,
	.need_dc_calib = true,
	.led_mode = IWL_LED_RF_STATE,
	.adv_pm = true,
	/* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
	.scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
	.use_new_eeprom_reading = true,
};

MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX));
MODULE_FIRMWARE(IWL6000G2A_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));
+3 −0
Original line number Diff line number Diff line
@@ -856,6 +856,9 @@ ssize_t iwl_ucode_bt_stats_read(struct file *file,
	if (!iwl_is_alive(priv))
		return -EAGAIN;

	if (!priv->bt_enable_flag)
		return -EINVAL;

	/* make request to uCode to retrieve statistics information */
	mutex_lock(&priv->mutex);
	ret = iwl_send_statistics_request(priv, CMD_SYNC, false);
+31 −273

File changed.

Preview size limit exceeded, changes collapsed.

Loading