mirror of https://gitee.com/openkylin/linux.git
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
This commit is contained in:
commit
8a50ace271
|
@ -1905,6 +1905,7 @@ struct iwl_bt_cmd {
|
||||||
#define IWLAGN_BT_PRIO_BOOST_MAX 0xFF
|
#define IWLAGN_BT_PRIO_BOOST_MAX 0xFF
|
||||||
#define IWLAGN_BT_PRIO_BOOST_MIN 0x00
|
#define IWLAGN_BT_PRIO_BOOST_MIN 0x00
|
||||||
#define IWLAGN_BT_PRIO_BOOST_DEFAULT 0xF0
|
#define IWLAGN_BT_PRIO_BOOST_DEFAULT 0xF0
|
||||||
|
#define IWLAGN_BT_PRIO_BOOST_DEFAULT32 0xF0F0F0F0
|
||||||
|
|
||||||
#define IWLAGN_BT_MAX_KILL_DEFAULT 5
|
#define IWLAGN_BT_MAX_KILL_DEFAULT 5
|
||||||
|
|
||||||
|
|
|
@ -265,6 +265,8 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv)
|
||||||
bt_cmd_v2.tx_prio_boost = 0;
|
bt_cmd_v2.tx_prio_boost = 0;
|
||||||
bt_cmd_v2.rx_prio_boost = 0;
|
bt_cmd_v2.rx_prio_boost = 0;
|
||||||
} else {
|
} else {
|
||||||
|
/* older version only has 8 bits */
|
||||||
|
WARN_ON(priv->cfg->bt_params->bt_prio_boost & ~0xFF);
|
||||||
bt_cmd_v1.prio_boost =
|
bt_cmd_v1.prio_boost =
|
||||||
priv->cfg->bt_params->bt_prio_boost;
|
priv->cfg->bt_params->bt_prio_boost;
|
||||||
bt_cmd_v1.tx_prio_boost = 0;
|
bt_cmd_v1.tx_prio_boost = 0;
|
||||||
|
|
|
@ -1232,7 +1232,6 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
|
||||||
struct iwl_trans_config trans_cfg;
|
struct iwl_trans_config trans_cfg;
|
||||||
static const u8 no_reclaim_cmds[] = {
|
static const u8 no_reclaim_cmds[] = {
|
||||||
REPLY_RX_PHY_CMD,
|
REPLY_RX_PHY_CMD,
|
||||||
REPLY_RX,
|
|
||||||
REPLY_RX_MPDU_CMD,
|
REPLY_RX_MPDU_CMD,
|
||||||
REPLY_COMPRESSED_BA,
|
REPLY_COMPRESSED_BA,
|
||||||
STATISTICS_NOTIFICATION,
|
STATISTICS_NOTIFICATION,
|
||||||
|
|
|
@ -88,7 +88,6 @@ const char *iwl_dvm_cmd_strings[REPLY_MAX] = {
|
||||||
IWL_CMD_ENTRY(REPLY_PHY_CALIBRATION_CMD),
|
IWL_CMD_ENTRY(REPLY_PHY_CALIBRATION_CMD),
|
||||||
IWL_CMD_ENTRY(REPLY_RX_PHY_CMD),
|
IWL_CMD_ENTRY(REPLY_RX_PHY_CMD),
|
||||||
IWL_CMD_ENTRY(REPLY_RX_MPDU_CMD),
|
IWL_CMD_ENTRY(REPLY_RX_MPDU_CMD),
|
||||||
IWL_CMD_ENTRY(REPLY_RX),
|
|
||||||
IWL_CMD_ENTRY(REPLY_COMPRESSED_BA),
|
IWL_CMD_ENTRY(REPLY_COMPRESSED_BA),
|
||||||
IWL_CMD_ENTRY(CALIBRATION_CFG_CMD),
|
IWL_CMD_ENTRY(CALIBRATION_CFG_CMD),
|
||||||
IWL_CMD_ENTRY(CALIBRATION_RES_NOTIFICATION),
|
IWL_CMD_ENTRY(CALIBRATION_RES_NOTIFICATION),
|
||||||
|
@ -895,8 +894,7 @@ static int iwlagn_calc_rssi(struct iwl_priv *priv,
|
||||||
return max_rssi - agc - IWLAGN_RSSI_OFFSET;
|
return max_rssi - agc - IWLAGN_RSSI_OFFSET;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called for REPLY_RX (legacy ABG frames), or
|
/* Called for REPLY_RX_MPDU_CMD */
|
||||||
* REPLY_RX_MPDU_CMD (HT high-throughput N frames). */
|
|
||||||
static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
|
static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
|
||||||
struct iwl_rx_cmd_buffer *rxb,
|
struct iwl_rx_cmd_buffer *rxb,
|
||||||
struct iwl_device_cmd *cmd)
|
struct iwl_device_cmd *cmd)
|
||||||
|
@ -911,37 +909,17 @@ static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
|
||||||
u32 ampdu_status;
|
u32 ampdu_status;
|
||||||
u32 rate_n_flags;
|
u32 rate_n_flags;
|
||||||
|
|
||||||
/**
|
if (!priv->last_phy_res_valid) {
|
||||||
* REPLY_RX and REPLY_RX_MPDU_CMD are handled differently.
|
IWL_ERR(priv, "MPDU frame without cached PHY data\n");
|
||||||
* REPLY_RX: physical layer info is in this buffer
|
return 0;
|
||||||
* REPLY_RX_MPDU_CMD: physical layer info was sent in separate
|
|
||||||
* command and cached in priv->last_phy_res
|
|
||||||
*
|
|
||||||
* Here we set up local variables depending on which command is
|
|
||||||
* received.
|
|
||||||
*/
|
|
||||||
if (pkt->hdr.cmd == REPLY_RX) {
|
|
||||||
phy_res = (struct iwl_rx_phy_res *)pkt->data;
|
|
||||||
header = (struct ieee80211_hdr *)(pkt->data + sizeof(*phy_res)
|
|
||||||
+ phy_res->cfg_phy_cnt);
|
|
||||||
|
|
||||||
len = le16_to_cpu(phy_res->byte_count);
|
|
||||||
rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*phy_res) +
|
|
||||||
phy_res->cfg_phy_cnt + len);
|
|
||||||
ampdu_status = le32_to_cpu(rx_pkt_status);
|
|
||||||
} else {
|
|
||||||
if (!priv->last_phy_res_valid) {
|
|
||||||
IWL_ERR(priv, "MPDU frame without cached PHY data\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
phy_res = &priv->last_phy_res;
|
|
||||||
amsdu = (struct iwl_rx_mpdu_res_start *)pkt->data;
|
|
||||||
header = (struct ieee80211_hdr *)(pkt->data + sizeof(*amsdu));
|
|
||||||
len = le16_to_cpu(amsdu->byte_count);
|
|
||||||
rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*amsdu) + len);
|
|
||||||
ampdu_status = iwlagn_translate_rx_status(priv,
|
|
||||||
le32_to_cpu(rx_pkt_status));
|
|
||||||
}
|
}
|
||||||
|
phy_res = &priv->last_phy_res;
|
||||||
|
amsdu = (struct iwl_rx_mpdu_res_start *)pkt->data;
|
||||||
|
header = (struct ieee80211_hdr *)(pkt->data + sizeof(*amsdu));
|
||||||
|
len = le16_to_cpu(amsdu->byte_count);
|
||||||
|
rx_pkt_status = *(__le32 *)(pkt->data + sizeof(*amsdu) + len);
|
||||||
|
ampdu_status = iwlagn_translate_rx_status(priv,
|
||||||
|
le32_to_cpu(rx_pkt_status));
|
||||||
|
|
||||||
if ((unlikely(phy_res->cfg_phy_cnt > 20))) {
|
if ((unlikely(phy_res->cfg_phy_cnt > 20))) {
|
||||||
IWL_DEBUG_DROP(priv, "dsp size out of range [0,20]: %d\n",
|
IWL_DEBUG_DROP(priv, "dsp size out of range [0,20]: %d\n",
|
||||||
|
|
|
@ -177,7 +177,7 @@ struct iwl_base_params {
|
||||||
struct iwl_bt_params {
|
struct iwl_bt_params {
|
||||||
bool advanced_bt_coexist;
|
bool advanced_bt_coexist;
|
||||||
u8 bt_init_traffic_load;
|
u8 bt_init_traffic_load;
|
||||||
u8 bt_prio_boost;
|
u32 bt_prio_boost;
|
||||||
u16 agg_time_limit;
|
u16 agg_time_limit;
|
||||||
bool bt_sco_disable;
|
bool bt_sco_disable;
|
||||||
bool bt_session_2;
|
bool bt_session_2;
|
||||||
|
|
|
@ -458,6 +458,7 @@ struct iwl_trans {
|
||||||
/* The following fields are internal only */
|
/* The following fields are internal only */
|
||||||
struct kmem_cache *dev_cmd_pool;
|
struct kmem_cache *dev_cmd_pool;
|
||||||
size_t dev_cmd_headroom;
|
size_t dev_cmd_headroom;
|
||||||
|
char dev_cmd_pool_name[50];
|
||||||
|
|
||||||
/* pointer to trans specific struct */
|
/* pointer to trans specific struct */
|
||||||
/*Ensure that this pointer will always be aligned to sizeof pointer */
|
/*Ensure that this pointer will always be aligned to sizeof pointer */
|
||||||
|
|
|
@ -112,7 +112,7 @@ static const struct iwl_bt_params iwl2030_bt_params = {
|
||||||
.advanced_bt_coexist = true,
|
.advanced_bt_coexist = true,
|
||||||
.agg_time_limit = BT_AGG_THRESHOLD_DEF,
|
.agg_time_limit = BT_AGG_THRESHOLD_DEF,
|
||||||
.bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
|
.bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
|
||||||
.bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT,
|
.bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT32,
|
||||||
.bt_sco_disable = true,
|
.bt_sco_disable = true,
|
||||||
.bt_session_2 = true,
|
.bt_session_2 = true,
|
||||||
};
|
};
|
||||||
|
|
|
@ -2080,7 +2080,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
||||||
{
|
{
|
||||||
struct iwl_trans_pcie *trans_pcie;
|
struct iwl_trans_pcie *trans_pcie;
|
||||||
struct iwl_trans *trans;
|
struct iwl_trans *trans;
|
||||||
char cmd_pool_name[100];
|
|
||||||
u16 pci_cmd;
|
u16 pci_cmd;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
@ -2178,12 +2177,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
||||||
init_waitqueue_head(&trans->wait_command_queue);
|
init_waitqueue_head(&trans->wait_command_queue);
|
||||||
spin_lock_init(&trans->reg_lock);
|
spin_lock_init(&trans->reg_lock);
|
||||||
|
|
||||||
snprintf(cmd_pool_name, sizeof(cmd_pool_name), "iwl_cmd_pool:%s",
|
snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
|
||||||
dev_name(trans->dev));
|
"iwl_cmd_pool:%s", dev_name(trans->dev));
|
||||||
|
|
||||||
trans->dev_cmd_headroom = 0;
|
trans->dev_cmd_headroom = 0;
|
||||||
trans->dev_cmd_pool =
|
trans->dev_cmd_pool =
|
||||||
kmem_cache_create(cmd_pool_name,
|
kmem_cache_create(trans->dev_cmd_pool_name,
|
||||||
sizeof(struct iwl_device_cmd)
|
sizeof(struct iwl_device_cmd)
|
||||||
+ trans->dev_cmd_headroom,
|
+ trans->dev_cmd_headroom,
|
||||||
sizeof(void *),
|
sizeof(void *),
|
||||||
|
|
Loading…
Reference in New Issue