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

Commit 64bb1b94 authored by Kalle Valo's avatar Kalle Valo
Browse files

Merge tag 'iwlwifi-next-for-kalle-2014-12-30' of...

Merge tag 'iwlwifi-next-for-kalle-2014-12-30' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next

* more work on d0i3 power state
* enhancements to the firmware debugging infrastructure
* support for 2 concurrent channel contexts
* fixes / cleanups in the rate control
* general cleanups
parents dd955398 834437da
Loading
Loading
Loading
Loading
+4 −20
Original line number Diff line number Diff line
@@ -64,22 +64,8 @@
 *
 ******************************************************************************/

/*
 * module name, copyright, version, etc.
 */
#define DRV_DESCRIPTION	"Intel(R) Wireless WiFi Link AGN driver for Linux"

#ifdef CONFIG_IWLWIFI_DEBUG
#define VD "d"
#else
#define VD
#endif

#define DRV_VERSION     IWLWIFI_VERSION VD


MODULE_DESCRIPTION(DRV_DESCRIPTION);
MODULE_VERSION(DRV_VERSION);
MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
MODULE_LICENSE("GPL");

@@ -1011,13 +997,11 @@ static void iwl_setup_deferred_work(struct iwl_priv *priv)
	if (priv->lib->bt_params)
		iwlagn_bt_setup_deferred_work(priv);

	init_timer(&priv->statistics_periodic);
	priv->statistics_periodic.data = (unsigned long)priv;
	priv->statistics_periodic.function = iwl_bg_statistics_periodic;
	setup_timer(&priv->statistics_periodic, iwl_bg_statistics_periodic,
		    (unsigned long)priv);

	init_timer(&priv->ucode_trace);
	priv->ucode_trace.data = (unsigned long)priv;
	priv->ucode_trace.function = iwl_bg_ucode_trace;
	setup_timer(&priv->ucode_trace, iwl_bg_ucode_trace,
		    (unsigned long)priv);
}

void iwl_cancel_deferred_work(struct iwl_priv *priv)
+4 −9
Original line number Diff line number Diff line
@@ -612,15 +612,10 @@ void iwl_tt_initialize(struct iwl_priv *priv)
	memset(tt, 0, sizeof(struct iwl_tt_mgmt));

	tt->state = IWL_TI_0;
	init_timer(&priv->thermal_throttle.ct_kill_exit_tm);
	priv->thermal_throttle.ct_kill_exit_tm.data = (unsigned long)priv;
	priv->thermal_throttle.ct_kill_exit_tm.function =
		iwl_tt_check_exit_ct_kill;
	init_timer(&priv->thermal_throttle.ct_kill_waiting_tm);
	priv->thermal_throttle.ct_kill_waiting_tm.data =
		(unsigned long)priv;
	priv->thermal_throttle.ct_kill_waiting_tm.function =
		iwl_tt_ready_for_ct_kill;
	setup_timer(&priv->thermal_throttle.ct_kill_exit_tm,
		    iwl_tt_check_exit_ct_kill, (unsigned long)priv);
	setup_timer(&priv->thermal_throttle.ct_kill_waiting_tm,
		    iwl_tt_ready_for_ct_kill, (unsigned long)priv);
	/* setup deferred ct kill work */
	INIT_WORK(&priv->tt_work, iwl_bg_tt_work);
	INIT_WORK(&priv->ct_enter, iwl_bg_ct_enter);
+22 −1
Original line number Diff line number Diff line
@@ -92,6 +92,12 @@
#define IWL7265D_NVM_VERSION		0x0c11
#define IWL7265_TX_POWER_VERSION	0xffff /* meaningless */

/* DCCM offsets and lengths */
#define IWL7000_DCCM_OFFSET		0x800000
#define IWL7260_DCCM_LEN		0x14000
#define IWL3160_DCCM_LEN		0x10000
#define IWL7265_DCCM_LEN		0x17A00

#define IWL7260_FW_PRE "iwlwifi-7260-"
#define IWL7260_MODULE_FIRMWARE(api) IWL7260_FW_PRE __stringify(api) ".ucode"

@@ -138,7 +144,8 @@ static const struct iwl_ht_params iwl7000_ht_params = {
	.led_mode = IWL_LED_RF_STATE,				\
	.nvm_hw_section_num = NVM_HW_SECTION_NUM_FAMILY_7000,	\
	.non_shared_ant = ANT_A,				\
	.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K
	.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,	\
	.dccm_offset = IWL7000_DCCM_OFFSET

const struct iwl_cfg iwl7260_2ac_cfg = {
	.name = "Intel(R) Dual Band Wireless AC 7260",
@@ -149,6 +156,7 @@ const struct iwl_cfg iwl7260_2ac_cfg = {
	.nvm_calib_ver = IWL7260_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.lp_xtal_workaround = true,
	.dccm_len = IWL7260_DCCM_LEN,
};

const struct iwl_cfg iwl7260_2ac_cfg_high_temp = {
@@ -161,6 +169,7 @@ const struct iwl_cfg iwl7260_2ac_cfg_high_temp = {
	.high_temp = true,
	.host_interrupt_operation_mode = true,
	.lp_xtal_workaround = true,
	.dccm_len = IWL7260_DCCM_LEN,
};

const struct iwl_cfg iwl7260_2n_cfg = {
@@ -172,6 +181,7 @@ const struct iwl_cfg iwl7260_2n_cfg = {
	.nvm_calib_ver = IWL7260_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.lp_xtal_workaround = true,
	.dccm_len = IWL7260_DCCM_LEN,
};

const struct iwl_cfg iwl7260_n_cfg = {
@@ -183,6 +193,7 @@ const struct iwl_cfg iwl7260_n_cfg = {
	.nvm_calib_ver = IWL7260_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.lp_xtal_workaround = true,
	.dccm_len = IWL7260_DCCM_LEN,
};

const struct iwl_cfg iwl3160_2ac_cfg = {
@@ -193,6 +204,7 @@ const struct iwl_cfg iwl3160_2ac_cfg = {
	.nvm_ver = IWL3160_NVM_VERSION,
	.nvm_calib_ver = IWL3160_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.dccm_len = IWL3160_DCCM_LEN,
};

const struct iwl_cfg iwl3160_2n_cfg = {
@@ -203,6 +215,7 @@ const struct iwl_cfg iwl3160_2n_cfg = {
	.nvm_ver = IWL3160_NVM_VERSION,
	.nvm_calib_ver = IWL3160_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.dccm_len = IWL3160_DCCM_LEN,
};

const struct iwl_cfg iwl3160_n_cfg = {
@@ -213,6 +226,7 @@ const struct iwl_cfg iwl3160_n_cfg = {
	.nvm_ver = IWL3160_NVM_VERSION,
	.nvm_calib_ver = IWL3160_TX_POWER_VERSION,
	.host_interrupt_operation_mode = true,
	.dccm_len = IWL3160_DCCM_LEN,
};

static const struct iwl_pwr_tx_backoff iwl7265_pwr_tx_backoffs[] = {
@@ -240,6 +254,7 @@ const struct iwl_cfg iwl3165_2ac_cfg = {
	.nvm_ver = IWL3165_NVM_VERSION,
	.nvm_calib_ver = IWL3165_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265_2ac_cfg = {
@@ -250,6 +265,7 @@ const struct iwl_cfg iwl7265_2ac_cfg = {
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265_2n_cfg = {
@@ -260,6 +276,7 @@ const struct iwl_cfg iwl7265_2n_cfg = {
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265_n_cfg = {
@@ -270,6 +287,7 @@ const struct iwl_cfg iwl7265_n_cfg = {
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265d_2ac_cfg = {
@@ -280,6 +298,7 @@ const struct iwl_cfg iwl7265d_2ac_cfg = {
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265d_2n_cfg = {
@@ -290,6 +309,7 @@ const struct iwl_cfg iwl7265d_2n_cfg = {
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

const struct iwl_cfg iwl7265d_n_cfg = {
@@ -300,6 +320,7 @@ const struct iwl_cfg iwl7265d_n_cfg = {
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
	.dccm_len = IWL7265_DCCM_LEN,
};

MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_OK));
+15 −2
Original line number Diff line number Diff line
@@ -81,12 +81,19 @@
#define IWL8000_NVM_VERSION		0x0a1d
#define IWL8000_TX_POWER_VERSION	0xffff /* meaningless */

/* Memory offsets and lengths */
#define IWL8260_DCCM_OFFSET		0x800000
#define IWL8260_DCCM_LEN		0x18000
#define IWL8260_SMEM_OFFSET		0x400000
#define IWL8260_SMEM_LEN		0x68000

#define IWL8000_FW_PRE "iwlwifi-8000"
#define IWL8000_MODULE_FIRMWARE(api) \
	IWL8000_FW_PRE "-" __stringify(api) ".ucode"

#define NVM_HW_SECTION_NUM_FAMILY_8000		10
#define DEFAULT_NVM_FILE_FAMILY_8000		"iwl_nvm_8000.bin"
#define DEFAULT_NVM_FILE_FAMILY_8000A		"iwl_nvm_8000.bin"
#define DEFAULT_NVM_FILE_FAMILY_8000		"iwl_nvm_8000B.bin"

/* Max SDIO RX aggregation size of the ADDBA request/response */
#define MAX_RX_AGG_SIZE_8260_SDIO	28
@@ -124,7 +131,11 @@ static const struct iwl_ht_params iwl8000_ht_params = {
	.led_mode = IWL_LED_RF_STATE,				\
	.nvm_hw_section_num = NVM_HW_SECTION_NUM_FAMILY_8000,	\
	.d0i3 = true,						\
	.non_shared_ant = ANT_A
	.non_shared_ant = ANT_A,				\
	.dccm_offset = IWL8260_DCCM_OFFSET,			\
	.dccm_len = IWL8260_DCCM_LEN,				\
	.smem_offset = IWL8260_SMEM_OFFSET,			\
	.smem_len = IWL8260_SMEM_LEN

const struct iwl_cfg iwl8260_2n_cfg = {
	.name = "Intel(R) Dual Band Wireless N 8260",
@@ -153,6 +164,7 @@ const struct iwl_cfg iwl8260_2ac_sdio_cfg = {
	.nvm_ver = IWL8000_NVM_VERSION,
	.nvm_calib_ver = IWL8000_TX_POWER_VERSION,
	.default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000,
	.default_nvm_file_8000A = DEFAULT_NVM_FILE_FAMILY_8000A,
	.max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO,
	.disable_dummy_notification = true,
	.max_ht_ampdu_exponent  = MAX_HT_AMPDU_EXPONENT_8260_SDIO,
@@ -167,6 +179,7 @@ const struct iwl_cfg iwl4165_2ac_sdio_cfg = {
	.nvm_ver = IWL8000_NVM_VERSION,
	.nvm_calib_ver = IWL8000_TX_POWER_VERSION,
	.default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000,
	.default_nvm_file_8000A = DEFAULT_NVM_FILE_FAMILY_8000A,
	.max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO,
	.bt_shared_single_ant = true,
	.disable_dummy_notification = true,
+9 −1
Original line number Diff line number Diff line
@@ -261,6 +261,10 @@ struct iwl_pwr_tx_backoff {
 *	station can receive in HT
 * @max_vht_ampdu_exponent: the exponent of the max length of A-MPDU that the
 *	station can receive in VHT
 * @dccm_offset: offset from which DCCM begins
 * @dccm_len: length of DCCM (including runtime stack CCM)
 * @smem_offset: offset from which the SMEM begins
 * @smem_len: the length of SMEM
 *
 * We enable the driver to be backward compatible wrt. hardware features.
 * API differences in uCode shouldn't be handled here but through TLVs
@@ -298,11 +302,16 @@ struct iwl_cfg {
	const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;
	bool no_power_up_nic_in_init;
	const char *default_nvm_file;
	const char *default_nvm_file_8000A;
	unsigned int max_rx_agg_size;
	bool disable_dummy_notification;
	unsigned int max_tx_agg_size;
	unsigned int max_ht_ampdu_exponent;
	unsigned int max_vht_ampdu_exponent;
	const u32 dccm_offset;
	const u32 dccm_len;
	const u32 smem_offset;
	const u32 smem_len;
};

/*
@@ -370,7 +379,6 @@ extern const struct iwl_cfg iwl7265d_n_cfg;
extern const struct iwl_cfg iwl8260_2n_cfg;
extern const struct iwl_cfg iwl8260_2ac_cfg;
extern const struct iwl_cfg iwl8260_2ac_sdio_cfg;
extern const struct iwl_cfg iwl4265_2ac_sdio_cfg;
extern const struct iwl_cfg iwl4165_2ac_sdio_cfg;
#endif /* CONFIG_IWLMVM */

Loading