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

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

Merge tag 'iwlwifi-next-for-john-2014-12-02' of...

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



"Grumbach, Emmanuel" <emmanuel.grumbach@intel.com> says:

"I deprecate here -8.ucode since -9 has been published long ago.
Along with that I have a new activity, we have now better
infrastructure for firmware debugging. This will allow to
have configurable probes insides the firmware.
Luca continues his work on NetDetect, this feature is now
complete. All the rest is minor fixes here and there."

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parents fbf61095 61df750c
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -966,21 +966,21 @@ struct iwl_rem_sta_cmd {


/* WiFi queues mask */
#define IWL_SCD_BK_MSK			cpu_to_le32(BIT(0))
#define IWL_SCD_BE_MSK			cpu_to_le32(BIT(1))
#define IWL_SCD_VI_MSK			cpu_to_le32(BIT(2))
#define IWL_SCD_VO_MSK			cpu_to_le32(BIT(3))
#define IWL_SCD_MGMT_MSK		cpu_to_le32(BIT(3))
#define IWL_SCD_BK_MSK			BIT(0)
#define IWL_SCD_BE_MSK			BIT(1)
#define IWL_SCD_VI_MSK			BIT(2)
#define IWL_SCD_VO_MSK			BIT(3)
#define IWL_SCD_MGMT_MSK		BIT(3)

/* PAN queues mask */
#define IWL_PAN_SCD_BK_MSK		cpu_to_le32(BIT(4))
#define IWL_PAN_SCD_BE_MSK		cpu_to_le32(BIT(5))
#define IWL_PAN_SCD_VI_MSK		cpu_to_le32(BIT(6))
#define IWL_PAN_SCD_VO_MSK		cpu_to_le32(BIT(7))
#define IWL_PAN_SCD_MGMT_MSK		cpu_to_le32(BIT(7))
#define IWL_PAN_SCD_MULTICAST_MSK	cpu_to_le32(BIT(8))
#define IWL_PAN_SCD_BK_MSK		BIT(4)
#define IWL_PAN_SCD_BE_MSK		BIT(5)
#define IWL_PAN_SCD_VI_MSK		BIT(6)
#define IWL_PAN_SCD_VO_MSK		BIT(7)
#define IWL_PAN_SCD_MGMT_MSK		BIT(7)
#define IWL_PAN_SCD_MULTICAST_MSK	BIT(8)

#define IWL_AGG_TX_QUEUE_MSK		cpu_to_le32(0xffc00)
#define IWL_AGG_TX_QUEUE_MSK		0xffc00

#define IWL_DROP_ALL			BIT(1)

@@ -1005,12 +1005,17 @@ struct iwl_rem_sta_cmd {
 *	1: Dump multiple MSDU according to PS, INVALID STA, TTL, TID disable.
 *	2: Dump all FIFO
 */
struct iwl_txfifo_flush_cmd {
struct iwl_txfifo_flush_cmd_v3 {
	__le32 queue_control;
	__le16 flush_control;
	__le16 reserved;
} __packed;

struct iwl_txfifo_flush_cmd_v2 {
	__le16 queue_control;
	__le16 flush_control;
} __packed;

/*
 * REPLY_WEP_KEY = 0x20
 */
+24 −23
Original line number Diff line number Diff line
@@ -137,37 +137,38 @@ int iwlagn_manage_ibss_station(struct iwl_priv *priv,
 */
int iwlagn_txfifo_flush(struct iwl_priv *priv, u32 scd_q_msk)
{
	struct iwl_txfifo_flush_cmd flush_cmd;
	struct iwl_host_cmd cmd = {
		.id = REPLY_TXFIFO_FLUSH,
		.len = { sizeof(struct iwl_txfifo_flush_cmd), },
		.data = { &flush_cmd, },
	struct iwl_txfifo_flush_cmd_v3 flush_cmd_v3 = {
		.flush_control = cpu_to_le16(IWL_DROP_ALL),
	};
	struct iwl_txfifo_flush_cmd_v2 flush_cmd_v2 = {
		.flush_control = cpu_to_le16(IWL_DROP_ALL),
	};

	memset(&flush_cmd, 0, sizeof(flush_cmd));
	u32 queue_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK |
			    IWL_SCD_BE_MSK | IWL_SCD_BK_MSK | IWL_SCD_MGMT_MSK;

	flush_cmd.queue_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK |
				  IWL_SCD_BE_MSK | IWL_SCD_BK_MSK |
				  IWL_SCD_MGMT_MSK;
	if ((priv->valid_contexts != BIT(IWL_RXON_CTX_BSS)))
		flush_cmd.queue_control |= IWL_PAN_SCD_VO_MSK |
					   IWL_PAN_SCD_VI_MSK |
					   IWL_PAN_SCD_BE_MSK |
					   IWL_PAN_SCD_BK_MSK |
		queue_control |= IWL_PAN_SCD_VO_MSK | IWL_PAN_SCD_VI_MSK |
				 IWL_PAN_SCD_BE_MSK | IWL_PAN_SCD_BK_MSK |
				 IWL_PAN_SCD_MGMT_MSK |
				 IWL_PAN_SCD_MULTICAST_MSK;

	if (priv->nvm_data->sku_cap_11n_enable)
		flush_cmd.queue_control |= IWL_AGG_TX_QUEUE_MSK;
		queue_control |= IWL_AGG_TX_QUEUE_MSK;

	if (scd_q_msk)
		flush_cmd.queue_control = cpu_to_le32(scd_q_msk);

	IWL_DEBUG_INFO(priv, "queue control: 0x%x\n",
		       flush_cmd.queue_control);
	flush_cmd.flush_control = cpu_to_le16(IWL_DROP_ALL);

	return iwl_dvm_send_cmd(priv, &cmd);
		queue_control = scd_q_msk;

	IWL_DEBUG_INFO(priv, "queue control: 0x%x\n", queue_control);
	flush_cmd_v3.queue_control = cpu_to_le32(queue_control);
	flush_cmd_v2.queue_control = cpu_to_le16((u16)queue_control);

	if (IWL_UCODE_API(priv->fw->ucode_ver) > 2)
		return iwl_dvm_send_cmd_pdu(priv, REPLY_TXFIFO_FLUSH, 0,
					    sizeof(flush_cmd_v3),
					    &flush_cmd_v3);
	return iwl_dvm_send_cmd_pdu(priv, REPLY_TXFIFO_FLUSH, 0,
				    sizeof(flush_cmd_v2), &flush_cmd_v2);
}

void iwlagn_dev_txfifo_flush(struct iwl_priv *priv)
+9 −7
Original line number Diff line number Diff line
@@ -73,12 +73,12 @@
#define IWL3160_UCODE_API_MAX	10

/* Oldest version we won't warn about */
#define IWL7260_UCODE_API_OK	9
#define IWL3160_UCODE_API_OK	9
#define IWL7260_UCODE_API_OK	10
#define IWL3160_UCODE_API_OK	10

/* Lowest firmware API version supported */
#define IWL7260_UCODE_API_MIN	8
#define IWL3160_UCODE_API_MIN	8
#define IWL7260_UCODE_API_MIN	9
#define IWL3160_UCODE_API_MIN	9

/* NVM versions */
#define IWL7260_NVM_VERSION		0x0a1d
@@ -89,6 +89,8 @@
#define IWL3165_TX_POWER_VERSION	0xffff /* meaningless */
#define IWL7265_NVM_VERSION		0x0a1d
#define IWL7265_TX_POWER_VERSION	0xffff /* meaningless */
#define IWL7265D_NVM_VERSION		0x0c11
#define IWL7265_TX_POWER_VERSION	0xffff /* meaningless */

#define IWL7260_FW_PRE "iwlwifi-7260-"
#define IWL7260_MODULE_FIRMWARE(api) IWL7260_FW_PRE __stringify(api) ".ucode"
@@ -275,7 +277,7 @@ const struct iwl_cfg iwl7265d_2ac_cfg = {
	.fw_name_pre = IWL7265D_FW_PRE,
	IWL_DEVICE_7000,
	.ht_params = &iwl7265_ht_params,
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
};
@@ -285,7 +287,7 @@ const struct iwl_cfg iwl7265d_2n_cfg = {
	.fw_name_pre = IWL7265D_FW_PRE,
	IWL_DEVICE_7000,
	.ht_params = &iwl7265_ht_params,
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
};
@@ -295,7 +297,7 @@ const struct iwl_cfg iwl7265d_n_cfg = {
	.fw_name_pre = IWL7265D_FW_PRE,
	IWL_DEVICE_7000,
	.ht_params = &iwl7265_ht_params,
	.nvm_ver = IWL7265_NVM_VERSION,
	.nvm_ver = IWL7265D_NVM_VERSION,
	.nvm_calib_ver = IWL7265_TX_POWER_VERSION,
	.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
};
+4 −4
Original line number Diff line number Diff line
@@ -72,10 +72,10 @@
#define IWL8000_UCODE_API_MAX	10

/* Oldest version we won't warn about */
#define IWL8000_UCODE_API_OK	8
#define IWL8000_UCODE_API_OK	10

/* Lowest firmware API version supported */
#define IWL8000_UCODE_API_MIN	8
#define IWL8000_UCODE_API_MIN	9

/* NVM versions */
#define IWL8000_NVM_VERSION		0x0a1d
@@ -159,8 +159,8 @@ const struct iwl_cfg iwl8260_2ac_sdio_cfg = {
	.max_vht_ampdu_exponent = MAX_VHT_AMPDU_EXPONENT_8260_SDIO,
};

const struct iwl_cfg iwl4265_2ac_sdio_cfg = {
	.name = "Intel(R) Dual Band Wireless-AC 4265",
const struct iwl_cfg iwl4165_2ac_sdio_cfg = {
	.name = "Intel(R) Dual Band Wireless-AC 4165",
	.fw_name_pre = IWL8000_FW_PRE,
	IWL_DEVICE_8000,
	.ht_params = &iwl8000_ht_params,
+1 −0
Original line number Diff line number Diff line
@@ -371,6 +371,7 @@ 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 */

#endif /* __IWL_CONFIG_H__ */
Loading