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

Merge tag 'iwlwifi-for-john-2014-10-23' of...

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



Emmanuel Grumbach <egrumbach@gmail.com> says:

"I revert here a patch that caused interoperability issues.
dvm gets a fix for a bug that was reported by many users.
Two minor fixes for BT Coex and platform power fix that helps
reducing latency when the PCIe link goes to low power states."

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parents 08054200 7f2ac8fb
Loading
Loading
Loading
Loading
+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);
+2 −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"
+2 −0
Original line number Original line Diff line number Diff line
@@ -563,6 +563,7 @@ enum iwl_trans_state {
 *	Set during transport allocation.
 *	Set during transport allocation.
 * @hw_id_str: a string with info about HW ID. Set during transport allocation.
 * @hw_id_str: a string with info about HW ID. Set during transport allocation.
 * @pm_support: set to true in start_hw if link pm is supported
 * @pm_support: set to true in start_hw if link pm is supported
 * @ltr_enabled: set to true if the LTR is enabled
 * @dev_cmd_pool: pool for Tx cmd allocation - for internal use only.
 * @dev_cmd_pool: pool for Tx cmd allocation - for internal use only.
 *	The user should use iwl_trans_{alloc,free}_tx_cmd.
 *	The user should use iwl_trans_{alloc,free}_tx_cmd.
 * @dev_cmd_headroom: room needed for the transport's private use before the
 * @dev_cmd_headroom: room needed for the transport's private use before the
@@ -589,6 +590,7 @@ struct iwl_trans {
	u8 rx_mpdu_cmd, rx_mpdu_cmd_hdr_size;
	u8 rx_mpdu_cmd, rx_mpdu_cmd_hdr_size;


	bool pm_support;
	bool pm_support;
	bool ltr_enabled;


	/* The following fields are internal only */
	/* The following fields are internal only */
	struct kmem_cache *dev_cmd_pool;
	struct kmem_cache *dev_cmd_pool;
+2 −2
Original line number Original line Diff line number Diff line
@@ -303,8 +303,8 @@ static const __le64 iwl_ci_mask[][3] = {
};
};


static const __le32 iwl_bt_mprio_lut[BT_COEX_MULTI_PRIO_LUT_SIZE] = {
static const __le32 iwl_bt_mprio_lut[BT_COEX_MULTI_PRIO_LUT_SIZE] = {
	cpu_to_le32(0x28412201),
	cpu_to_le32(0x2e402280),
	cpu_to_le32(0x11118451),
	cpu_to_le32(0x7711a751),
};
};


struct corunning_block_luts {
struct corunning_block_luts {
+2 −2
Original line number Original line Diff line number Diff line
@@ -291,8 +291,8 @@ static const __le64 iwl_ci_mask[][3] = {
};
};


static const __le32 iwl_bt_mprio_lut[BT_COEX_MULTI_PRIO_LUT_SIZE] = {
static const __le32 iwl_bt_mprio_lut[BT_COEX_MULTI_PRIO_LUT_SIZE] = {
	cpu_to_le32(0x28412201),
	cpu_to_le32(0x2e402280),
	cpu_to_le32(0x11118451),
	cpu_to_le32(0x7711a751),
};
};


struct corunning_block_luts {
struct corunning_block_luts {
Loading