aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2012-07-12 15:21:48 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-07-12 15:21:48 -0400
commit8a50ace27134c8ef2b9ca4c47dd91cb733f52a53 (patch)
treecb43f5d627f53645dc19b3a70ef0d0cf0263a684 /drivers/net/wireless/iwlwifi
parentd07d152892aadd8dc3209ecef6788dfc83475676 (diff)
parent3ec4588231914344834805a6828551cd5c65afd8 (diff)
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/commands.h1
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/lib.c2
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/main.c1
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rx.c44
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-config.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h1
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/2000.c2
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/trans.c7
8 files changed, 20 insertions, 40 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/commands.h b/drivers/net/wireless/iwlwifi/dvm/commands.h
index 97bea16f3592..4a361c55c543 100644
--- a/drivers/net/wireless/iwlwifi/dvm/commands.h
+++ b/drivers/net/wireless/iwlwifi/dvm/commands.h
@@ -1905,6 +1905,7 @@ struct iwl_bt_cmd {
1905#define IWLAGN_BT_PRIO_BOOST_MAX 0xFF 1905#define IWLAGN_BT_PRIO_BOOST_MAX 0xFF
1906#define IWLAGN_BT_PRIO_BOOST_MIN 0x00 1906#define IWLAGN_BT_PRIO_BOOST_MIN 0x00
1907#define IWLAGN_BT_PRIO_BOOST_DEFAULT 0xF0 1907#define IWLAGN_BT_PRIO_BOOST_DEFAULT 0xF0
1908#define IWLAGN_BT_PRIO_BOOST_DEFAULT32 0xF0F0F0F0
1908 1909
1909#define IWLAGN_BT_MAX_KILL_DEFAULT 5 1910#define IWLAGN_BT_MAX_KILL_DEFAULT 5
1910 1911
diff --git a/drivers/net/wireless/iwlwifi/dvm/lib.c b/drivers/net/wireless/iwlwifi/dvm/lib.c
index 207ae91a83aa..bef88c1a2c9b 100644
--- a/drivers/net/wireless/iwlwifi/dvm/lib.c
+++ b/drivers/net/wireless/iwlwifi/dvm/lib.c
@@ -265,6 +265,8 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv)
265 bt_cmd_v2.tx_prio_boost = 0; 265 bt_cmd_v2.tx_prio_boost = 0;
266 bt_cmd_v2.rx_prio_boost = 0; 266 bt_cmd_v2.rx_prio_boost = 0;
267 } else { 267 } else {
268 /* older version only has 8 bits */
269 WARN_ON(priv->cfg->bt_params->bt_prio_boost & ~0xFF);
268 bt_cmd_v1.prio_boost = 270 bt_cmd_v1.prio_boost =
269 priv->cfg->bt_params->bt_prio_boost; 271 priv->cfg->bt_params->bt_prio_boost;
270 bt_cmd_v1.tx_prio_boost = 0; 272 bt_cmd_v1.tx_prio_boost = 0;
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
index 612f05d757db..84d3db5aa506 100644
--- a/drivers/net/wireless/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/iwlwifi/dvm/main.c
@@ -1232,7 +1232,6 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
1232 struct iwl_trans_config trans_cfg; 1232 struct iwl_trans_config trans_cfg;
1233 static const u8 no_reclaim_cmds[] = { 1233 static const u8 no_reclaim_cmds[] = {
1234 REPLY_RX_PHY_CMD, 1234 REPLY_RX_PHY_CMD,
1235 REPLY_RX,
1236 REPLY_RX_MPDU_CMD, 1235 REPLY_RX_MPDU_CMD,
1237 REPLY_COMPRESSED_BA, 1236 REPLY_COMPRESSED_BA,
1238 STATISTICS_NOTIFICATION, 1237 STATISTICS_NOTIFICATION,
diff --git a/drivers/net/wireless/iwlwifi/dvm/rx.c b/drivers/net/wireless/iwlwifi/dvm/rx.c
index c1f7a18e08dd..fee5cffa1669 100644
--- a/drivers/net/wireless/iwlwifi/dvm/rx.c
+++ b/drivers/net/wireless/iwlwifi/dvm/rx.c
@@ -88,7 +88,6 @@ const char *iwl_dvm_cmd_strings[REPLY_MAX] = {
88 IWL_CMD_ENTRY(REPLY_PHY_CALIBRATION_CMD), 88 IWL_CMD_ENTRY(REPLY_PHY_CALIBRATION_CMD),
89 IWL_CMD_ENTRY(REPLY_RX_PHY_CMD), 89 IWL_CMD_ENTRY(REPLY_RX_PHY_CMD),
90 IWL_CMD_ENTRY(REPLY_RX_MPDU_CMD), 90 IWL_CMD_ENTRY(REPLY_RX_MPDU_CMD),
91 IWL_CMD_ENTRY(REPLY_RX),
92 IWL_CMD_ENTRY(REPLY_COMPRESSED_BA), 91 IWL_CMD_ENTRY(REPLY_COMPRESSED_BA),
93 IWL_CMD_ENTRY(CALIBRATION_CFG_CMD), 92 IWL_CMD_ENTRY(CALIBRATION_CFG_CMD),
94 IWL_CMD_ENTRY(CALIBRATION_RES_NOTIFICATION), 93 IWL_CMD_ENTRY(CALIBRATION_RES_NOTIFICATION),
@@ -895,8 +894,7 @@ static int iwlagn_calc_rssi(struct iwl_priv *priv,
895 return max_rssi - agc - IWLAGN_RSSI_OFFSET; 894 return max_rssi - agc - IWLAGN_RSSI_OFFSET;
896} 895}
897 896
898/* Called for REPLY_RX (legacy ABG frames), or 897/* Called for REPLY_RX_MPDU_CMD */
899 * REPLY_RX_MPDU_CMD (HT high-throughput N frames). */
900static int iwlagn_rx_reply_rx(struct iwl_priv *priv, 898static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
901 struct iwl_rx_cmd_buffer *rxb, 899 struct iwl_rx_cmd_buffer *rxb,
902 struct iwl_device_cmd *cmd) 900 struct iwl_device_cmd *cmd)
@@ -911,37 +909,17 @@ static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
911 u32 ampdu_status; 909 u32 ampdu_status;
912 u32 rate_n_flags; 910 u32 rate_n_flags;
913 911
914 /** 912 if (!priv->last_phy_res_valid) {
915 * REPLY_RX and REPLY_RX_MPDU_CMD are handled differently. 913 IWL_ERR(priv, "MPDU frame without cached PHY data\n");
916 * REPLY_RX: physical layer info is in this buffer 914 return 0;
917 * REPLY_RX_MPDU_CMD: physical layer info was sent in separate
918 * command and cached in priv->last_phy_res
919 *
920 * Here we set up local variables depending on which command is
921 * received.
922 */
923 if (pkt->hdr.cmd == REPLY_RX) {
924 phy_res = (struct iwl_rx_phy_res *)pkt->data;
925 header = (struct ieee80211_hdr *)(pkt->data + sizeof(*phy_res)
926 + phy_res->cfg_phy_cnt);
927
928 len = le16_to_cpu(phy_res->byte_count);
929 rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*phy_res) +
930 phy_res->cfg_phy_cnt + len);
931 ampdu_status = le32_to_cpu(rx_pkt_status);
932 } else {
933 if (!priv->last_phy_res_valid) {
934 IWL_ERR(priv, "MPDU frame without cached PHY data\n");
935 return 0;
936 }
937 phy_res = &priv->last_phy_res;
938 amsdu = (struct iwl_rx_mpdu_res_start *)pkt->data;
939 header = (struct ieee80211_hdr *)(pkt->data + sizeof(*amsdu));
940 len = le16_to_cpu(amsdu->byte_count);
941 rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*amsdu) + len);
942 ampdu_status = iwlagn_translate_rx_status(priv,
943 le32_to_cpu(rx_pkt_status));
944 } 915 }
916 phy_res = &priv->last_phy_res;
917 amsdu = (struct iwl_rx_mpdu_res_start *)pkt->data;
918 header = (struct ieee80211_hdr *)(pkt->data + sizeof(*amsdu));
919 len = le16_to_cpu(amsdu->byte_count);
920 rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*amsdu) + len);
921 ampdu_status = iwlagn_translate_rx_status(priv,
922 le32_to_cpu(rx_pkt_status));
945 923
946 if ((unlikely(phy_res->cfg_phy_cnt > 20))) { 924 if ((unlikely(phy_res->cfg_phy_cnt > 20))) {
947 IWL_DEBUG_DROP(priv, "dsp size out of range [0,20]: %d\n", 925 IWL_DEBUG_DROP(priv, "dsp size out of range [0,20]: %d\n",
diff --git a/drivers/net/wireless/iwlwifi/iwl-config.h b/drivers/net/wireless/iwlwifi/iwl-config.h
index 10e47938b635..87f465a49df1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-config.h
+++ b/drivers/net/wireless/iwlwifi/iwl-config.h
@@ -177,7 +177,7 @@ struct iwl_base_params {
177struct iwl_bt_params { 177struct iwl_bt_params {
178 bool advanced_bt_coexist; 178 bool advanced_bt_coexist;
179 u8 bt_init_traffic_load; 179 u8 bt_init_traffic_load;
180 u8 bt_prio_boost; 180 u32 bt_prio_boost;
181 u16 agg_time_limit; 181 u16 agg_time_limit;
182 bool bt_sco_disable; 182 bool bt_sco_disable;
183 bool bt_session_2; 183 bool bt_session_2;
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index 867d8e194da4..92576a3e84ef 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -458,6 +458,7 @@ struct iwl_trans {
458 /* The following fields are internal only */ 458 /* The following fields are internal only */
459 struct kmem_cache *dev_cmd_pool; 459 struct kmem_cache *dev_cmd_pool;
460 size_t dev_cmd_headroom; 460 size_t dev_cmd_headroom;
461 char dev_cmd_pool_name[50];
461 462
462 /* pointer to trans specific struct */ 463 /* pointer to trans specific struct */
463 /*Ensure that this pointer will always be aligned to sizeof pointer */ 464 /*Ensure that this pointer will always be aligned to sizeof pointer */
diff --git a/drivers/net/wireless/iwlwifi/pcie/2000.c b/drivers/net/wireless/iwlwifi/pcie/2000.c
index fd4e78f56fa6..9fbde32f7559 100644
--- a/drivers/net/wireless/iwlwifi/pcie/2000.c
+++ b/drivers/net/wireless/iwlwifi/pcie/2000.c
@@ -112,7 +112,7 @@ static const struct iwl_bt_params iwl2030_bt_params = {
112 .advanced_bt_coexist = true, 112 .advanced_bt_coexist = true,
113 .agg_time_limit = BT_AGG_THRESHOLD_DEF, 113 .agg_time_limit = BT_AGG_THRESHOLD_DEF,
114 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, 114 .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
115 .bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT, 115 .bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT32,
116 .bt_sco_disable = true, 116 .bt_sco_disable = true,
117 .bt_session_2 = true, 117 .bt_session_2 = true,
118}; 118};
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index 203d575e4493..69bf6156fdf6 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -2080,7 +2080,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
2080{ 2080{
2081 struct iwl_trans_pcie *trans_pcie; 2081 struct iwl_trans_pcie *trans_pcie;
2082 struct iwl_trans *trans; 2082 struct iwl_trans *trans;
2083 char cmd_pool_name[100];
2084 u16 pci_cmd; 2083 u16 pci_cmd;
2085 int err; 2084 int err;
2086 2085
@@ -2178,12 +2177,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
2178 init_waitqueue_head(&trans->wait_command_queue); 2177 init_waitqueue_head(&trans->wait_command_queue);
2179 spin_lock_init(&trans->reg_lock); 2178 spin_lock_init(&trans->reg_lock);
2180 2179
2181 snprintf(cmd_pool_name, sizeof(cmd_pool_name), "iwl_cmd_pool:%s", 2180 snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
2182 dev_name(trans->dev)); 2181 "iwl_cmd_pool:%s", dev_name(trans->dev));
2183 2182
2184 trans->dev_cmd_headroom = 0; 2183 trans->dev_cmd_headroom = 0;
2185 trans->dev_cmd_pool = 2184 trans->dev_cmd_pool =
2186 kmem_cache_create(cmd_pool_name, 2185 kmem_cache_create(trans->dev_cmd_pool_name,
2187 sizeof(struct iwl_device_cmd) 2186 sizeof(struct iwl_device_cmd)
2188 + trans->dev_cmd_headroom, 2187 + trans->dev_cmd_headroom,
2189 sizeof(void *), 2188 sizeof(void *),