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

Commit 47cb759f authored by John W. Linville's avatar John W. Linville
Browse files

Merge tag 'iwlwifi-next-for-john-2014-10-29' of...

Merge tag 'iwlwifi-next-for-john-2014-10-29' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next



Emmanuel Grumbach <egrumbach@gmail.com> says:

"The big new thing here is netdetect which allows the
firmware to wake up the platform when a specific network
is detected. Along with that I have fixes for d3 operation.
The usual amount of rate scaling stuff - we now support STBC.
The other commit that stands out is Johannes's work on
devcoredump. He basically starts to use the standard
infrastructure he built."

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parents 5ca06ebe 4ff78181
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -59,6 +59,7 @@ config IWLDVM


config IWLMVM
config IWLMVM
	tristate "Intel Wireless WiFi MVM Firmware support"
	tristate "Intel Wireless WiFi MVM Firmware support"
	select BACKPORT_WANT_DEV_COREDUMP
	help
	help
	  This is the driver that supports the MVM firmware which is
	  This is the driver that supports the MVM firmware which is
	  currently only available for 7260 and 3160 devices.
	  currently only available for 7260 and 3160 devices.
+2 −2
Original line number Original line Diff line number Diff line
@@ -418,7 +418,7 @@ void iwlagn_bt_adjust_rssi_monitor(struct iwl_priv *priv, bool rssi_ena)


static bool iwlagn_bt_traffic_is_sco(struct iwl_bt_uart_msg *uart_msg)
static bool iwlagn_bt_traffic_is_sco(struct iwl_bt_uart_msg *uart_msg)
{
{
	return BT_UART_MSG_FRAME3SCOESCO_MSK & uart_msg->frame3 >>
	return (BT_UART_MSG_FRAME3SCOESCO_MSK & uart_msg->frame3) >>
		BT_UART_MSG_FRAME3SCOESCO_POS;
		BT_UART_MSG_FRAME3SCOESCO_POS;
}
}


+13 −11
Original line number Original line Diff line number Diff line
@@ -1095,6 +1095,7 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
			     u32 queues, bool drop)
			     u32 queues, bool drop)
{
{
	struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
	struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
	u32 scd_queues;


	mutex_lock(&priv->mutex);
	mutex_lock(&priv->mutex);
	IWL_DEBUG_MAC80211(priv, "enter\n");
	IWL_DEBUG_MAC80211(priv, "enter\n");
@@ -1108,18 +1109,19 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
		goto done;
		goto done;
	}
	}


	/*
	scd_queues = BIT(priv->cfg->base_params->num_of_queues) - 1;
	 * mac80211 will not push any more frames for transmit
	scd_queues &= ~(BIT(IWL_IPAN_CMD_QUEUE_NUM) |
	 * until the flush is completed
			BIT(IWL_DEFAULT_CMD_QUEUE_NUM));
	 */

	if (drop) {
	if (vif)
		IWL_DEBUG_MAC80211(priv, "send flush command\n");
		scd_queues &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]);
		if (iwlagn_txfifo_flush(priv, 0)) {

	IWL_DEBUG_TX_QUEUES(priv, "Flushing SCD queues: 0x%x\n", scd_queues);
	if (iwlagn_txfifo_flush(priv, scd_queues)) {
		IWL_ERR(priv, "flush request fail\n");
		IWL_ERR(priv, "flush request fail\n");
		goto done;
		goto done;
	}
	}
	}
	IWL_DEBUG_TX_QUEUES(priv, "wait transmit/flush all frames\n");
	IWL_DEBUG_MAC80211(priv, "wait transmit/flush all frames\n");
	iwl_trans_wait_tx_queue_empty(priv->trans, 0xffffffff);
	iwl_trans_wait_tx_queue_empty(priv->trans, 0xffffffff);
done:
done:
	mutex_unlock(&priv->mutex);
	mutex_unlock(&priv->mutex);
+3 −1
Original line number Original line Diff line number Diff line
@@ -82,7 +82,8 @@
#define IWL8000_TX_POWER_VERSION	0xffff /* meaningless */
#define IWL8000_TX_POWER_VERSION	0xffff /* meaningless */


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


#define NVM_HW_SECTION_NUM_FAMILY_8000		10
#define NVM_HW_SECTION_NUM_FAMILY_8000		10
#define DEFAULT_NVM_FILE_FAMILY_8000		"iwl_nvm_8000.bin"
#define DEFAULT_NVM_FILE_FAMILY_8000		"iwl_nvm_8000.bin"
@@ -103,6 +104,7 @@ static const struct iwl_base_params iwl8000_base_params = {
};
};


static const struct iwl_ht_params iwl8000_ht_params = {
static const struct iwl_ht_params iwl8000_ht_params = {
	.stbc = true,
	.ldpc = true,
	.ldpc = true,
	.ht40_bands = BIT(IEEE80211_BAND_2GHZ) | BIT(IEEE80211_BAND_5GHZ),
	.ht40_bands = BIT(IEEE80211_BAND_2GHZ) | BIT(IEEE80211_BAND_5GHZ),
};
};
+12 −0
Original line number Original line Diff line number Diff line
@@ -87,6 +87,16 @@ enum iwl_device_family {
	IWL_DEVICE_FAMILY_8000,
	IWL_DEVICE_FAMILY_8000,
};
};


static inline bool iwl_has_secure_boot(u32 hw_rev,
				       enum iwl_device_family family)
{
	/* return 1 only for family 8000 B0 */
	if ((family == IWL_DEVICE_FAMILY_8000) && (hw_rev & 0xC))
		return 1;

	return 0;
}

/*
/*
 * LED mode
 * LED mode
 *    IWL_LED_DEFAULT:  use device default
 *    IWL_LED_DEFAULT:  use device default
@@ -246,6 +256,7 @@ struct iwl_pwr_tx_backoff {
 * @nvm_hw_section_num: the ID of the HW NVM section
 * @nvm_hw_section_num: the ID of the HW NVM section
 * @pwr_tx_backoffs: translation table between power limits and backoffs
 * @pwr_tx_backoffs: translation table between power limits and backoffs
 * @max_rx_agg_size: max RX aggregation size of the ADDBA request/response
 * @max_rx_agg_size: max RX aggregation size of the ADDBA request/response
 * @max_tx_agg_size: max TX aggregation size of the ADDBA request/response
 *
 *
 * We enable the driver to be backward compatible wrt. hardware features.
 * We enable the driver to be backward compatible wrt. hardware features.
 * API differences in uCode shouldn't be handled here but through TLVs
 * API differences in uCode shouldn't be handled here but through TLVs
@@ -285,6 +296,7 @@ struct iwl_cfg {
	const char *default_nvm_file;
	const char *default_nvm_file;
	unsigned int max_rx_agg_size;
	unsigned int max_rx_agg_size;
	bool disable_dummy_notification;
	bool disable_dummy_notification;
	unsigned int max_tx_agg_size;
};
};


/*
/*
Loading