Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
This commit is contained in:
commit
d91a48cbae
51 changed files with 443 additions and 368 deletions
|
|
@ -42,7 +42,7 @@ config IWLWIFI
|
|||
config IWLWIFI_LEDS
|
||||
bool
|
||||
depends on IWLWIFI
|
||||
depends on LEDS_CLASS
|
||||
depends on LEDS_CLASS=y || LEDS_CLASS=IWLWIFI
|
||||
select LEDS_TRIGGERS
|
||||
select MAC80211_LEDS
|
||||
default y
|
||||
|
|
@ -128,7 +128,6 @@ config IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
|
|||
Enable use of experimental ucode for testing and debugging.
|
||||
|
||||
config IWLWIFI_DEVICE_TRACING
|
||||
|
||||
bool "iwlwifi device access tracing"
|
||||
depends on IWLWIFI
|
||||
depends on EVENT_TRACING
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ int iwl_send_calib_results(struct iwl_priv *priv)
|
|||
{
|
||||
struct iwl_host_cmd hcmd = {
|
||||
.id = REPLY_PHY_CALIBRATION_CMD,
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
struct iwl_calib_result *res;
|
||||
|
||||
|
|
|
|||
|
|
@ -1481,7 +1481,7 @@ static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct file *file,
|
|||
|
||||
/* make request to uCode to retrieve statistics information */
|
||||
mutex_lock(&priv->mutex);
|
||||
ret = iwl_send_statistics_request(priv, CMD_SYNC, false);
|
||||
ret = iwl_send_statistics_request(priv, 0, false);
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
||||
if (ret)
|
||||
|
|
@ -1868,7 +1868,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
|
|||
|
||||
/* make request to uCode to retrieve statistics information */
|
||||
mutex_lock(&priv->mutex);
|
||||
iwl_send_statistics_request(priv, CMD_SYNC, true);
|
||||
iwl_send_statistics_request(priv, 0, true);
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
||||
return count;
|
||||
|
|
@ -2188,7 +2188,6 @@ static int iwl_cmd_echo_test(struct iwl_priv *priv)
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_ECHO,
|
||||
.len = { 0 },
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
|
||||
ret = iwl_dvm_send_cmd(priv, &cmd);
|
||||
|
|
@ -2320,7 +2319,7 @@ static ssize_t iwl_dbgfs_fw_restart_write(struct file *file,
|
|||
mutex_lock(&priv->mutex);
|
||||
|
||||
/* take the return value to make compiler happy - it will fail anyway */
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_ERROR, CMD_SYNC, 0, NULL);
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_ERROR, 0, 0, NULL);
|
||||
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
||||
|
|
|
|||
|
|
@ -417,7 +417,6 @@ static int iwl5000_hw_channel_switch(struct iwl_priv *priv,
|
|||
struct iwl_host_cmd hcmd = {
|
||||
.id = REPLY_CHANNEL_SWITCH,
|
||||
.len = { sizeof(cmd), },
|
||||
.flags = CMD_SYNC,
|
||||
.data = { &cmd, },
|
||||
};
|
||||
|
||||
|
|
@ -579,7 +578,6 @@ static int iwl6000_hw_channel_switch(struct iwl_priv *priv,
|
|||
struct iwl_host_cmd hcmd = {
|
||||
.id = REPLY_CHANNEL_SWITCH,
|
||||
.len = { sizeof(*cmd), },
|
||||
.flags = CMD_SYNC,
|
||||
.dataflags[0] = IWL_HCMD_DFL_NOCOPY,
|
||||
};
|
||||
int err;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ int iwlagn_send_tx_power(struct iwl_priv *priv)
|
|||
else
|
||||
tx_ant_cfg_cmd = REPLY_TX_POWER_DBM_CMD;
|
||||
|
||||
return iwl_dvm_send_cmd_pdu(priv, tx_ant_cfg_cmd, CMD_SYNC,
|
||||
return iwl_dvm_send_cmd_pdu(priv, tx_ant_cfg_cmd, 0,
|
||||
sizeof(tx_power_cmd), &tx_power_cmd);
|
||||
}
|
||||
|
||||
|
|
@ -141,7 +141,6 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u32 scd_q_msk)
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_TXFIFO_FLUSH,
|
||||
.len = { sizeof(struct iwl_txfifo_flush_cmd), },
|
||||
.flags = CMD_SYNC,
|
||||
.data = { &flush_cmd, },
|
||||
};
|
||||
|
||||
|
|
@ -333,12 +332,12 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv)
|
|||
memcpy(&bt_cmd_v2.basic, &basic,
|
||||
sizeof(basic));
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_BT_CONFIG,
|
||||
CMD_SYNC, sizeof(bt_cmd_v2), &bt_cmd_v2);
|
||||
0, sizeof(bt_cmd_v2), &bt_cmd_v2);
|
||||
} else {
|
||||
memcpy(&bt_cmd_v1.basic, &basic,
|
||||
sizeof(basic));
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_BT_CONFIG,
|
||||
CMD_SYNC, sizeof(bt_cmd_v1), &bt_cmd_v1);
|
||||
0, sizeof(bt_cmd_v1), &bt_cmd_v1);
|
||||
}
|
||||
if (ret)
|
||||
IWL_ERR(priv, "failed to send BT Coex Config\n");
|
||||
|
|
@ -1044,7 +1043,6 @@ int iwlagn_send_patterns(struct iwl_priv *priv,
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_WOWLAN_PATTERNS,
|
||||
.dataflags[0] = IWL_HCMD_DFL_NOCOPY,
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
int i, err;
|
||||
|
||||
|
|
@ -1201,7 +1199,6 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
|
|||
if (key_data.use_rsc_tsc) {
|
||||
struct iwl_host_cmd rsc_tsc_cmd = {
|
||||
.id = REPLY_WOWLAN_TSC_RSC_PARAMS,
|
||||
.flags = CMD_SYNC,
|
||||
.data[0] = key_data.rsc_tsc,
|
||||
.dataflags[0] = IWL_HCMD_DFL_NOCOPY,
|
||||
.len[0] = sizeof(*key_data.rsc_tsc),
|
||||
|
|
@ -1215,7 +1212,7 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
|
|||
if (key_data.use_tkip) {
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_WOWLAN_TKIP_PARAMS,
|
||||
CMD_SYNC, sizeof(tkip_cmd),
|
||||
0, sizeof(tkip_cmd),
|
||||
&tkip_cmd);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
|
@ -1231,20 +1228,20 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
|
|||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_WOWLAN_KEK_KCK_MATERIAL,
|
||||
CMD_SYNC, sizeof(kek_kck_cmd),
|
||||
0, sizeof(kek_kck_cmd),
|
||||
&kek_kck_cmd);
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_D3_CONFIG, CMD_SYNC,
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_D3_CONFIG, 0,
|
||||
sizeof(d3_cfg_cmd), &d3_cfg_cmd);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_WOWLAN_WAKEUP_FILTER,
|
||||
CMD_SYNC, sizeof(wakeup_filter_cmd),
|
||||
0, sizeof(wakeup_filter_cmd),
|
||||
&wakeup_filter_cmd);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@ int iwlagn_send_beacon_cmd(struct iwl_priv *priv)
|
|||
struct iwl_tx_beacon_cmd *tx_beacon_cmd;
|
||||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_TX_BEACON,
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
struct ieee80211_tx_info *info;
|
||||
u32 frame_size;
|
||||
|
|
@ -311,8 +310,7 @@ int iwl_send_statistics_request(struct iwl_priv *priv, u8 flags, bool clear)
|
|||
sizeof(struct iwl_statistics_cmd),
|
||||
&statistics_cmd);
|
||||
else
|
||||
return iwl_dvm_send_cmd_pdu(priv, REPLY_STATISTICS_CMD,
|
||||
CMD_SYNC,
|
||||
return iwl_dvm_send_cmd_pdu(priv, REPLY_STATISTICS_CMD, 0,
|
||||
sizeof(struct iwl_statistics_cmd),
|
||||
&statistics_cmd);
|
||||
}
|
||||
|
|
@ -622,7 +620,7 @@ static void iwl_rf_kill_ct_config(struct iwl_priv *priv)
|
|||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_CT_KILL_CONFIG_CMD,
|
||||
CMD_SYNC, sizeof(adv_cmd), &adv_cmd);
|
||||
0, sizeof(adv_cmd), &adv_cmd);
|
||||
if (ret)
|
||||
IWL_ERR(priv, "REPLY_CT_KILL_CONFIG_CMD failed\n");
|
||||
else
|
||||
|
|
@ -637,7 +635,7 @@ static void iwl_rf_kill_ct_config(struct iwl_priv *priv)
|
|||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_CT_KILL_CONFIG_CMD,
|
||||
CMD_SYNC, sizeof(cmd), &cmd);
|
||||
0, sizeof(cmd), &cmd);
|
||||
if (ret)
|
||||
IWL_ERR(priv, "REPLY_CT_KILL_CONFIG_CMD failed\n");
|
||||
else
|
||||
|
|
@ -673,9 +671,7 @@ static int iwlagn_send_tx_ant_config(struct iwl_priv *priv, u8 valid_tx_ant)
|
|||
|
||||
if (IWL_UCODE_API(priv->fw->ucode_ver) > 1) {
|
||||
IWL_DEBUG_HC(priv, "select valid tx ant: %u\n", valid_tx_ant);
|
||||
return iwl_dvm_send_cmd_pdu(priv,
|
||||
TX_ANT_CONFIGURATION_CMD,
|
||||
CMD_SYNC,
|
||||
return iwl_dvm_send_cmd_pdu(priv, TX_ANT_CONFIGURATION_CMD, 0,
|
||||
sizeof(struct iwl_tx_ant_config_cmd),
|
||||
&tx_ant_cmd);
|
||||
} else {
|
||||
|
|
@ -703,7 +699,7 @@ static void iwl_send_bt_config(struct iwl_priv *priv)
|
|||
(bt_cmd.flags == BT_COEX_DISABLE) ? "disable" : "active");
|
||||
|
||||
if (iwl_dvm_send_cmd_pdu(priv, REPLY_BT_CONFIG,
|
||||
CMD_SYNC, sizeof(struct iwl_bt_cmd), &bt_cmd))
|
||||
0, sizeof(struct iwl_bt_cmd), &bt_cmd))
|
||||
IWL_ERR(priv, "failed to send BT Coex Config\n");
|
||||
}
|
||||
|
||||
|
|
@ -987,7 +983,7 @@ static void iwl_bg_restart(struct work_struct *data)
|
|||
ieee80211_restart_hw(priv->hw);
|
||||
else
|
||||
IWL_ERR(priv,
|
||||
"Cannot request restart before registrating with mac80211");
|
||||
"Cannot request restart before registrating with mac80211\n");
|
||||
} else {
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
|
@ -1127,7 +1123,6 @@ static void iwl_option_config(struct iwl_priv *priv)
|
|||
static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
|
||||
{
|
||||
struct iwl_nvm_data *data = priv->nvm_data;
|
||||
char *debug_msg;
|
||||
|
||||
if (data->sku_cap_11n_enable &&
|
||||
!priv->cfg->ht_params) {
|
||||
|
|
@ -1141,8 +1136,8 @@ static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
debug_msg = "Device SKU: 24GHz %s %s, 52GHz %s %s, 11.n %s %s\n";
|
||||
IWL_DEBUG_INFO(priv, debug_msg,
|
||||
IWL_DEBUG_INFO(priv,
|
||||
"Device SKU: 24GHz %s %s, 52GHz %s %s, 11.n %s %s\n",
|
||||
data->sku_cap_band_24GHz_enable ? "" : "NOT", "enabled",
|
||||
data->sku_cap_band_52GHz_enable ? "" : "NOT", "enabled",
|
||||
data->sku_cap_11n_enable ? "" : "NOT", "enabled");
|
||||
|
|
@ -1350,7 +1345,7 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
|
|||
iwl_set_hw_params(priv);
|
||||
|
||||
if (!(priv->nvm_data->sku_cap_ipan_enable)) {
|
||||
IWL_DEBUG_INFO(priv, "Your EEPROM disabled PAN");
|
||||
IWL_DEBUG_INFO(priv, "Your EEPROM disabled PAN\n");
|
||||
ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN;
|
||||
/*
|
||||
* if not PAN, then don't support P2P -- might be a uCode
|
||||
|
|
@ -2019,10 +2014,10 @@ void iwlagn_lift_passive_no_rx(struct iwl_priv *priv)
|
|||
|
||||
for (mq = 0; mq < IWLAGN_FIRST_AMPDU_QUEUE; mq++) {
|
||||
if (!test_bit(mq, &priv->transport_queue_stop)) {
|
||||
IWL_DEBUG_TX_QUEUES(priv, "Wake queue %d", mq);
|
||||
IWL_DEBUG_TX_QUEUES(priv, "Wake queue %d\n", mq);
|
||||
ieee80211_wake_queue(priv->hw, mq);
|
||||
} else {
|
||||
IWL_DEBUG_TX_QUEUES(priv, "Don't wake queue %d", mq);
|
||||
IWL_DEBUG_TX_QUEUES(priv, "Don't wake queue %d\n", mq);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ static int iwl_set_power(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd)
|
|||
le32_to_cpu(cmd->sleep_interval[3]),
|
||||
le32_to_cpu(cmd->sleep_interval[4]));
|
||||
|
||||
return iwl_dvm_send_cmd_pdu(priv, POWER_TABLE_CMD, CMD_SYNC,
|
||||
return iwl_dvm_send_cmd_pdu(priv, POWER_TABLE_CMD, 0,
|
||||
sizeof(struct iwl_powertable_cmd), cmd);
|
||||
}
|
||||
|
||||
|
|
@ -361,7 +361,7 @@ int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd,
|
|||
|
||||
memcpy(&priv->power_data.sleep_cmd, cmd, sizeof(*cmd));
|
||||
} else
|
||||
IWL_ERR(priv, "set power fail, ret = %d", ret);
|
||||
IWL_ERR(priv, "set power fail, ret = %d\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1453,7 +1453,7 @@ static int rs_move_legacy_other(struct iwl_priv *priv,
|
|||
tbl->action = IWL_LEGACY_SWITCH_SISO;
|
||||
break;
|
||||
default:
|
||||
IWL_ERR(priv, "Invalid BT load %d", priv->bt_traffic_load);
|
||||
IWL_ERR(priv, "Invalid BT load %d\n", priv->bt_traffic_load);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1628,7 +1628,7 @@ static int rs_move_siso_to_other(struct iwl_priv *priv,
|
|||
tbl->action = IWL_SISO_SWITCH_ANTENNA1;
|
||||
break;
|
||||
default:
|
||||
IWL_ERR(priv, "Invalid BT load %d", priv->bt_traffic_load);
|
||||
IWL_ERR(priv, "Invalid BT load %d\n", priv->bt_traffic_load);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1799,7 +1799,7 @@ static int rs_move_mimo2_to_other(struct iwl_priv *priv,
|
|||
tbl->action = IWL_MIMO2_SWITCH_SISO_A;
|
||||
break;
|
||||
default:
|
||||
IWL_ERR(priv, "Invalid BT load %d", priv->bt_traffic_load);
|
||||
IWL_ERR(priv, "Invalid BT load %d\n", priv->bt_traffic_load);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1969,7 +1969,7 @@ static int rs_move_mimo3_to_other(struct iwl_priv *priv,
|
|||
tbl->action = IWL_MIMO3_SWITCH_SISO_A;
|
||||
break;
|
||||
default:
|
||||
IWL_ERR(priv, "Invalid BT load %d", priv->bt_traffic_load);
|
||||
IWL_ERR(priv, "Invalid BT load %d\n", priv->bt_traffic_load);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -2709,7 +2709,7 @@ static void rs_initialize_lq(struct iwl_priv *priv,
|
|||
rs_set_expected_tpt_table(lq_sta, tbl);
|
||||
rs_fill_link_cmd(NULL, lq_sta, rate);
|
||||
priv->stations[lq_sta->lq.sta_id].lq = &lq_sta->lq;
|
||||
iwl_send_lq_cmd(priv, ctx, &lq_sta->lq, CMD_SYNC, true);
|
||||
iwl_send_lq_cmd(priv, ctx, &lq_sta->lq, 0, true);
|
||||
}
|
||||
|
||||
static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, void *priv_sta,
|
||||
|
|
|
|||
|
|
@ -786,7 +786,7 @@ static void iwlagn_pass_packet_to_mac80211(struct iwl_priv *priv,
|
|||
|
||||
memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats));
|
||||
|
||||
ieee80211_rx_ni(priv->hw, skb);
|
||||
ieee80211_rx(priv->hw, skb);
|
||||
}
|
||||
|
||||
static u32 iwlagn_translate_rx_status(struct iwl_priv *priv, u32 decrypt_in)
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ static int iwlagn_disable_bss(struct iwl_priv *priv,
|
|||
|
||||
send->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd,
|
||||
CMD_SYNC, sizeof(*send), send);
|
||||
0, sizeof(*send), send);
|
||||
|
||||
send->filter_flags = old_filter;
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ static int iwlagn_disable_pan(struct iwl_priv *priv,
|
|||
send->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
|
||||
send->dev_type = RXON_DEV_TYPE_P2P;
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd,
|
||||
CMD_SYNC, sizeof(*send), send);
|
||||
0, sizeof(*send), send);
|
||||
|
||||
send->filter_flags = old_filter;
|
||||
send->dev_type = old_dev_type;
|
||||
|
|
@ -160,7 +160,7 @@ static int iwlagn_disconn_pan(struct iwl_priv *priv,
|
|||
int ret;
|
||||
|
||||
send->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd, CMD_SYNC,
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd, 0,
|
||||
sizeof(*send), send);
|
||||
|
||||
send->filter_flags = old_filter;
|
||||
|
|
@ -189,7 +189,7 @@ static void iwlagn_update_qos(struct iwl_priv *priv,
|
|||
ctx->qos_data.qos_active,
|
||||
ctx->qos_data.def_qos_parm.qos_flags);
|
||||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->qos_cmd, CMD_SYNC,
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->qos_cmd, 0,
|
||||
sizeof(struct iwl_qosparam_cmd),
|
||||
&ctx->qos_data.def_qos_parm);
|
||||
if (ret)
|
||||
|
|
@ -353,7 +353,7 @@ static int iwl_send_rxon_timing(struct iwl_priv *priv,
|
|||
le16_to_cpu(ctx->timing.atim_window));
|
||||
|
||||
return iwl_dvm_send_cmd_pdu(priv, ctx->rxon_timing_cmd,
|
||||
CMD_SYNC, sizeof(ctx->timing), &ctx->timing);
|
||||
0, sizeof(ctx->timing), &ctx->timing);
|
||||
}
|
||||
|
||||
static int iwlagn_rxon_disconn(struct iwl_priv *priv,
|
||||
|
|
@ -495,7 +495,7 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv,
|
|||
* Associated RXON doesn't clear the station table in uCode,
|
||||
* so we don't need to restore stations etc. after this.
|
||||
*/
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd, CMD_SYNC,
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, ctx->rxon_cmd, 0,
|
||||
sizeof(struct iwl_rxon_cmd), &ctx->staging);
|
||||
if (ret) {
|
||||
IWL_ERR(priv, "Error setting new RXON (%d)\n", ret);
|
||||
|
|
@ -610,7 +610,7 @@ int iwlagn_set_pan_params(struct iwl_priv *priv)
|
|||
cmd.slots[0].width = cpu_to_le16(slot0);
|
||||
cmd.slots[1].width = cpu_to_le16(slot1);
|
||||
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_WIPAN_PARAMS, CMD_SYNC,
|
||||
ret = iwl_dvm_send_cmd_pdu(priv, REPLY_WIPAN_PARAMS, 0,
|
||||
sizeof(cmd), &cmd);
|
||||
if (ret)
|
||||
IWL_ERR(priv, "Error setting PAN parameters (%d)\n", ret);
|
||||
|
|
@ -823,7 +823,7 @@ static int iwl_check_rxon_cmd(struct iwl_priv *priv,
|
|||
|
||||
if ((rxon->flags & (RXON_FLG_CCK_MSK | RXON_FLG_AUTO_DETECT_MSK))
|
||||
== (RXON_FLG_CCK_MSK | RXON_FLG_AUTO_DETECT_MSK)) {
|
||||
IWL_WARN(priv, "CCK and auto detect");
|
||||
IWL_WARN(priv, "CCK and auto detect\n");
|
||||
errors |= BIT(8);
|
||||
}
|
||||
|
||||
|
|
@ -1395,7 +1395,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv)
|
|||
priv->phy_calib_chain_noise_reset_cmd);
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_PHY_CALIBRATION_CMD,
|
||||
CMD_SYNC, sizeof(cmd), &cmd);
|
||||
0, sizeof(cmd), &cmd);
|
||||
if (ret)
|
||||
IWL_ERR(priv,
|
||||
"Could not send REPLY_PHY_CALIBRATION_CMD\n");
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ static int iwl_send_scan_abort(struct iwl_priv *priv)
|
|||
int ret;
|
||||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_SCAN_ABORT_CMD,
|
||||
.flags = CMD_SYNC | CMD_WANT_SKB,
|
||||
.flags = CMD_WANT_SKB,
|
||||
};
|
||||
__le32 *status;
|
||||
|
||||
|
|
@ -639,7 +639,6 @@ static int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_SCAN_CMD,
|
||||
.len = { sizeof(struct iwl_scan_cmd), },
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
struct iwl_scan_cmd *scan;
|
||||
struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ static int iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_id)
|
|||
lockdep_assert_held(&priv->sta_lock);
|
||||
|
||||
if (sta_id >= IWLAGN_STATION_COUNT) {
|
||||
IWL_ERR(priv, "invalid sta_id %u", sta_id);
|
||||
IWL_ERR(priv, "invalid sta_id %u\n", sta_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!(priv->stations[sta_id].used & IWL_STA_DRIVER_ACTIVE))
|
||||
|
|
@ -165,7 +165,7 @@ int iwl_send_add_sta(struct iwl_priv *priv,
|
|||
iwl_free_resp(&cmd);
|
||||
|
||||
if (cmd.handler_status)
|
||||
IWL_ERR(priv, "%s - error in the CMD response %d", __func__,
|
||||
IWL_ERR(priv, "%s - error in the CMD response %d\n", __func__,
|
||||
cmd.handler_status);
|
||||
|
||||
return cmd.handler_status;
|
||||
|
|
@ -261,7 +261,7 @@ int iwl_sta_update_ht(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
|
|||
cmd.station_flags = flags;
|
||||
cmd.sta.sta_id = sta_id;
|
||||
|
||||
return iwl_send_add_sta(priv, &cmd, CMD_SYNC);
|
||||
return iwl_send_add_sta(priv, &cmd, 0);
|
||||
}
|
||||
|
||||
static void iwl_set_ht_add_station(struct iwl_priv *priv, u8 index,
|
||||
|
|
@ -413,7 +413,7 @@ int iwl_add_station_common(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
|
|||
spin_unlock_bh(&priv->sta_lock);
|
||||
|
||||
/* Add station to device's station table */
|
||||
ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
ret = iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
if (ret) {
|
||||
spin_lock_bh(&priv->sta_lock);
|
||||
IWL_ERR(priv, "Adding station %pM failed.\n",
|
||||
|
|
@ -456,7 +456,6 @@ static int iwl_send_remove_station(struct iwl_priv *priv,
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = REPLY_REMOVE_STA,
|
||||
.len = { sizeof(struct iwl_rem_sta_cmd), },
|
||||
.flags = CMD_SYNC,
|
||||
.data = { &rm_sta_cmd, },
|
||||
};
|
||||
|
||||
|
|
@ -740,7 +739,7 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
|
|||
send_lq = true;
|
||||
}
|
||||
spin_unlock_bh(&priv->sta_lock);
|
||||
ret = iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
ret = iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
if (ret) {
|
||||
spin_lock_bh(&priv->sta_lock);
|
||||
IWL_ERR(priv, "Adding station %pM failed.\n",
|
||||
|
|
@ -756,8 +755,7 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
|
|||
* current LQ command
|
||||
*/
|
||||
if (send_lq)
|
||||
iwl_send_lq_cmd(priv, ctx, &lq,
|
||||
CMD_SYNC, true);
|
||||
iwl_send_lq_cmd(priv, ctx, &lq, 0, true);
|
||||
spin_lock_bh(&priv->sta_lock);
|
||||
priv->stations[i].used &= ~IWL_STA_UCODE_INPROGRESS;
|
||||
}
|
||||
|
|
@ -968,7 +966,7 @@ int iwlagn_add_bssid_station(struct iwl_priv *priv,
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = iwl_send_lq_cmd(priv, ctx, link_cmd, CMD_SYNC, true);
|
||||
ret = iwl_send_lq_cmd(priv, ctx, link_cmd, 0, true);
|
||||
if (ret)
|
||||
IWL_ERR(priv, "Link quality command failed (%d)\n", ret);
|
||||
|
||||
|
|
@ -999,7 +997,6 @@ static int iwl_send_static_wepkey_cmd(struct iwl_priv *priv,
|
|||
struct iwl_host_cmd cmd = {
|
||||
.id = ctx->wep_key_cmd,
|
||||
.data = { wep_cmd, },
|
||||
.flags = CMD_SYNC,
|
||||
};
|
||||
|
||||
might_sleep();
|
||||
|
|
@ -1248,7 +1245,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
|||
sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
|
||||
sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
|
||||
|
||||
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
return iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
}
|
||||
|
||||
int iwl_set_dynamic_key(struct iwl_priv *priv,
|
||||
|
|
@ -1284,13 +1281,13 @@ int iwl_set_dynamic_key(struct iwl_priv *priv,
|
|||
ieee80211_get_key_rx_seq(keyconf, 0, &seq);
|
||||
ieee80211_get_tkip_rx_p1k(keyconf, addr, seq.tkip.iv32, p1k);
|
||||
ret = iwlagn_send_sta_key(priv, keyconf, sta_id,
|
||||
seq.tkip.iv32, p1k, CMD_SYNC);
|
||||
seq.tkip.iv32, p1k, 0);
|
||||
break;
|
||||
case WLAN_CIPHER_SUITE_CCMP:
|
||||
case WLAN_CIPHER_SUITE_WEP40:
|
||||
case WLAN_CIPHER_SUITE_WEP104:
|
||||
ret = iwlagn_send_sta_key(priv, keyconf, sta_id,
|
||||
0, NULL, CMD_SYNC);
|
||||
0, NULL, 0);
|
||||
break;
|
||||
default:
|
||||
IWL_ERR(priv, "Unknown cipher %x\n", keyconf->cipher);
|
||||
|
|
@ -1409,7 +1406,7 @@ int iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid)
|
|||
memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd));
|
||||
spin_unlock_bh(&priv->sta_lock);
|
||||
|
||||
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
return iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
}
|
||||
|
||||
int iwl_sta_rx_agg_start(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
||||
|
|
@ -1433,7 +1430,7 @@ int iwl_sta_rx_agg_start(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
|||
memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd));
|
||||
spin_unlock_bh(&priv->sta_lock);
|
||||
|
||||
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
return iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
}
|
||||
|
||||
int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
||||
|
|
@ -1458,7 +1455,7 @@ int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta,
|
|||
memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd));
|
||||
spin_unlock_bh(&priv->sta_lock);
|
||||
|
||||
return iwl_send_add_sta(priv, &sta_cmd, CMD_SYNC);
|
||||
return iwl_send_add_sta(priv, &sta_cmd, 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ static void iwl_prepare_ct_kill_task(struct iwl_priv *priv)
|
|||
{
|
||||
IWL_DEBUG_TEMP(priv, "Prepare to enter IWL_TI_CT_KILL\n");
|
||||
/* make request to retrieve statistics information */
|
||||
iwl_send_statistics_request(priv, CMD_SYNC, false);
|
||||
iwl_send_statistics_request(priv, 0, false);
|
||||
/* Reschedule the ct_kill wait timer */
|
||||
mod_timer(&priv->thermal_throttle.ct_kill_waiting_tm,
|
||||
jiffies + msecs_to_jiffies(CT_KILL_WAITING_DURATION));
|
||||
|
|
|
|||
|
|
@ -402,10 +402,10 @@ int iwlagn_tx_skb(struct iwl_priv *priv,
|
|||
/* aggregation is on for this <sta,tid> */
|
||||
if (info->flags & IEEE80211_TX_CTL_AMPDU &&
|
||||
tid_data->agg.state != IWL_AGG_ON) {
|
||||
IWL_ERR(priv, "TX_CTL_AMPDU while not in AGG:"
|
||||
" Tx flags = 0x%08x, agg.state = %d",
|
||||
IWL_ERR(priv,
|
||||
"TX_CTL_AMPDU while not in AGG: Tx flags = 0x%08x, agg.state = %d\n",
|
||||
info->flags, tid_data->agg.state);
|
||||
IWL_ERR(priv, "sta_id = %d, tid = %d seq_num = %d",
|
||||
IWL_ERR(priv, "sta_id = %d, tid = %d seq_num = %d\n",
|
||||
sta_id, tid,
|
||||
IEEE80211_SEQ_TO_SN(tid_data->seq_number));
|
||||
goto drop_unlock_sta;
|
||||
|
|
@ -416,7 +416,7 @@ int iwlagn_tx_skb(struct iwl_priv *priv,
|
|||
*/
|
||||
if (WARN_ONCE(tid_data->agg.state != IWL_AGG_ON &&
|
||||
tid_data->agg.state != IWL_AGG_OFF,
|
||||
"Tx while agg.state = %d", tid_data->agg.state))
|
||||
"Tx while agg.state = %d\n", tid_data->agg.state))
|
||||
goto drop_unlock_sta;
|
||||
|
||||
seq_number = tid_data->seq_number;
|
||||
|
|
@ -778,8 +778,8 @@ static void iwlagn_check_ratid_empty(struct iwl_priv *priv, int sta_id, u8 tid)
|
|||
/* There are no packets for this RA / TID in the HW any more */
|
||||
if (tid_data->agg.ssn == tid_data->next_reclaimed) {
|
||||
IWL_DEBUG_TX_QUEUES(priv,
|
||||
"Can continue DELBA flow ssn = next_recl ="
|
||||
" %d", tid_data->next_reclaimed);
|
||||
"Can continue DELBA flow ssn = next_recl = %d\n",
|
||||
tid_data->next_reclaimed);
|
||||
iwl_trans_txq_disable(priv->trans,
|
||||
tid_data->agg.txq_id);
|
||||
iwlagn_dealloc_agg_txq(priv, tid_data->agg.txq_id);
|
||||
|
|
@ -791,8 +791,8 @@ static void iwlagn_check_ratid_empty(struct iwl_priv *priv, int sta_id, u8 tid)
|
|||
/* There are no packets for this RA / TID in the HW any more */
|
||||
if (tid_data->agg.ssn == tid_data->next_reclaimed) {
|
||||
IWL_DEBUG_TX_QUEUES(priv,
|
||||
"Can continue ADDBA flow ssn = next_recl ="
|
||||
" %d", tid_data->next_reclaimed);
|
||||
"Can continue ADDBA flow ssn = next_recl = %d\n",
|
||||
tid_data->next_reclaimed);
|
||||
tid_data->agg.state = IWL_AGG_STARTING;
|
||||
ieee80211_start_tx_ba_cb_irqsafe(vif, addr, tid);
|
||||
}
|
||||
|
|
@ -1216,8 +1216,8 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
|||
ctx->vif->type == NL80211_IFTYPE_STATION) {
|
||||
/* block and stop all queues */
|
||||
priv->passive_no_rx = true;
|
||||
IWL_DEBUG_TX_QUEUES(priv, "stop all queues: "
|
||||
"passive channel");
|
||||
IWL_DEBUG_TX_QUEUES(priv,
|
||||
"stop all queues: passive channel\n");
|
||||
ieee80211_stop_queues(priv->hw);
|
||||
|
||||
IWL_DEBUG_TX_REPLY(priv,
|
||||
|
|
@ -1271,7 +1271,7 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
|||
|
||||
while (!skb_queue_empty(&skbs)) {
|
||||
skb = __skb_dequeue(&skbs);
|
||||
ieee80211_tx_status_ni(priv->hw, skb);
|
||||
ieee80211_tx_status(priv->hw, skb);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -1411,7 +1411,7 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv,
|
|||
|
||||
while (!skb_queue_empty(&reclaimed_skbs)) {
|
||||
skb = __skb_dequeue(&reclaimed_skbs);
|
||||
ieee80211_tx_status_ni(priv->hw, skb);
|
||||
ieee80211_tx_status(priv->hw, skb);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ static int iwl_send_wimax_coex(struct iwl_priv *priv)
|
|||
memset(&coex_cmd, 0, sizeof(coex_cmd));
|
||||
|
||||
return iwl_dvm_send_cmd_pdu(priv,
|
||||
COEX_PRIORITY_TABLE_CMD, CMD_SYNC,
|
||||
COEX_PRIORITY_TABLE_CMD, 0,
|
||||
sizeof(coex_cmd), &coex_cmd);
|
||||
}
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ void iwl_send_prio_tbl(struct iwl_priv *priv)
|
|||
memcpy(prio_tbl_cmd.prio_tbl, iwl_bt_prio_tbl,
|
||||
sizeof(iwl_bt_prio_tbl));
|
||||
if (iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_BT_COEX_PRIO_TABLE, CMD_SYNC,
|
||||
REPLY_BT_COEX_PRIO_TABLE, 0,
|
||||
sizeof(prio_tbl_cmd), &prio_tbl_cmd))
|
||||
IWL_ERR(priv, "failed to send BT prio tbl command\n");
|
||||
}
|
||||
|
|
@ -218,7 +218,7 @@ int iwl_send_bt_env(struct iwl_priv *priv, u8 action, u8 type)
|
|||
env_cmd.action = action;
|
||||
env_cmd.type = type;
|
||||
ret = iwl_dvm_send_cmd_pdu(priv,
|
||||
REPLY_BT_COEX_PROT_ENV, CMD_SYNC,
|
||||
REPLY_BT_COEX_PROT_ENV, 0,
|
||||
sizeof(env_cmd), &env_cmd);
|
||||
if (ret)
|
||||
IWL_ERR(priv, "failed to send BT env command\n");
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@
|
|||
#define IWL8000_MODULE_FIRMWARE(api) IWL8000_FW_PRE __stringify(api) ".ucode"
|
||||
|
||||
#define NVM_HW_SECTION_NUM_FAMILY_8000 10
|
||||
#define DEFAULT_NVM_FILE_FAMILY_8000 "iwl_nvm_8000.bin"
|
||||
|
||||
static const struct iwl_base_params iwl8000_base_params = {
|
||||
.eeprom_size = OTP_LOW_IMAGE_SIZE_FAMILY_8000,
|
||||
|
|
@ -118,6 +119,7 @@ const struct iwl_cfg iwl8260_2ac_cfg = {
|
|||
.ht_params = &iwl8000_ht_params,
|
||||
.nvm_ver = IWL8000_NVM_VERSION,
|
||||
.nvm_calib_ver = IWL8000_TX_POWER_VERSION,
|
||||
.default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000,
|
||||
};
|
||||
|
||||
const struct iwl_cfg iwl8260_n_cfg = {
|
||||
|
|
@ -127,6 +129,7 @@ const struct iwl_cfg iwl8260_n_cfg = {
|
|||
.ht_params = &iwl8000_ht_params,
|
||||
.nvm_ver = IWL8000_NVM_VERSION,
|
||||
.nvm_calib_ver = IWL8000_TX_POWER_VERSION,
|
||||
.default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000,
|
||||
};
|
||||
|
||||
MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_OK));
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ struct iwl_ht_params {
|
|||
|
||||
/* lower blocks contain EEPROM image and calibration data */
|
||||
#define OTP_LOW_IMAGE_SIZE (2 * 512 * sizeof(u16)) /* 2 KB */
|
||||
#define OTP_LOW_IMAGE_SIZE_FAMILY_7000 (4 * 512 * sizeof(u16)) /* 4 KB */
|
||||
#define OTP_LOW_IMAGE_SIZE_FAMILY_7000 (16 * 512 * sizeof(u16)) /* 16 KB */
|
||||
#define OTP_LOW_IMAGE_SIZE_FAMILY_8000 (32 * 512 * sizeof(u16)) /* 32 KB */
|
||||
|
||||
struct iwl_eeprom_params {
|
||||
|
|
@ -275,6 +275,7 @@ struct iwl_cfg {
|
|||
bool lp_xtal_workaround;
|
||||
const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;
|
||||
bool no_power_up_nic_in_init;
|
||||
const char *default_nvm_file;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -61,8 +61,6 @@
|
|||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#define DEBUG
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/export.h>
|
||||
|
|
@ -128,8 +126,8 @@ void __iwl_dbg(struct device *dev,
|
|||
#ifdef CONFIG_IWLWIFI_DEBUG
|
||||
if (iwl_have_debug_level(level) &&
|
||||
(!limit || net_ratelimit()))
|
||||
dev_dbg(dev, "%c %s %pV", in_interrupt() ? 'I' : 'U',
|
||||
function, &vaf);
|
||||
dev_printk(KERN_DEBUG, dev, "%c %s %pV",
|
||||
in_interrupt() ? 'I' : 'U', function, &vaf);
|
||||
#endif
|
||||
trace_iwlwifi_dbg(level, in_interrupt(), function, &vaf);
|
||||
va_end(args);
|
||||
|
|
|
|||
|
|
@ -47,12 +47,32 @@ void __iwl_warn(struct device *dev, const char *fmt, ...) __printf(2, 3);
|
|||
void __iwl_info(struct device *dev, const char *fmt, ...) __printf(2, 3);
|
||||
void __iwl_crit(struct device *dev, const char *fmt, ...) __printf(2, 3);
|
||||
|
||||
/* not all compilers can evaluate strlen() at compile time, so use sizeof() */
|
||||
#define CHECK_FOR_NEWLINE(f) BUILD_BUG_ON(f[sizeof(f) - 2] != '\n')
|
||||
|
||||
/* No matter what is m (priv, bus, trans), this will work */
|
||||
#define IWL_ERR(m, f, a...) __iwl_err((m)->dev, false, false, f, ## a)
|
||||
#define IWL_ERR_DEV(d, f, a...) __iwl_err((d), false, false, f, ## a)
|
||||
#define IWL_WARN(m, f, a...) __iwl_warn((m)->dev, f, ## a)
|
||||
#define IWL_INFO(m, f, a...) __iwl_info((m)->dev, f, ## a)
|
||||
#define IWL_CRIT(m, f, a...) __iwl_crit((m)->dev, f, ## a)
|
||||
#define IWL_ERR_DEV(d, f, a...) \
|
||||
do { \
|
||||
CHECK_FOR_NEWLINE(f); \
|
||||
__iwl_err((d), false, false, f, ## a); \
|
||||
} while (0)
|
||||
#define IWL_ERR(m, f, a...) \
|
||||
IWL_ERR_DEV((m)->dev, f, ## a)
|
||||
#define IWL_WARN(m, f, a...) \
|
||||
do { \
|
||||
CHECK_FOR_NEWLINE(f); \
|
||||
__iwl_warn((m)->dev, f, ## a); \
|
||||
} while (0)
|
||||
#define IWL_INFO(m, f, a...) \
|
||||
do { \
|
||||
CHECK_FOR_NEWLINE(f); \
|
||||
__iwl_info((m)->dev, f, ## a); \
|
||||
} while (0)
|
||||
#define IWL_CRIT(m, f, a...) \
|
||||
do { \
|
||||
CHECK_FOR_NEWLINE(f); \
|
||||
__iwl_crit((m)->dev, f, ## a); \
|
||||
} while (0)
|
||||
|
||||
#if defined(CONFIG_IWLWIFI_DEBUG) || defined(CONFIG_IWLWIFI_DEVICE_TRACING)
|
||||
void __iwl_dbg(struct device *dev,
|
||||
|
|
@ -72,12 +92,17 @@ do { \
|
|||
DUMP_PREFIX_OFFSET, 16, 1, p, len, 1); \
|
||||
} while (0)
|
||||
|
||||
#define __IWL_DEBUG_DEV(dev, level, limit, fmt, args...) \
|
||||
do { \
|
||||
CHECK_FOR_NEWLINE(fmt); \
|
||||
__iwl_dbg(dev, level, limit, __func__, fmt, ##args); \
|
||||
} while (0)
|
||||
#define IWL_DEBUG(m, level, fmt, args...) \
|
||||
__iwl_dbg((m)->dev, level, false, __func__, fmt, ##args)
|
||||
__IWL_DEBUG_DEV((m)->dev, level, false, fmt, ##args)
|
||||
#define IWL_DEBUG_DEV(dev, level, fmt, args...) \
|
||||
__iwl_dbg((dev), level, false, __func__, fmt, ##args)
|
||||
__IWL_DEBUG_DEV(dev, level, false, fmt, ##args)
|
||||
#define IWL_DEBUG_LIMIT(m, level, fmt, args...) \
|
||||
__iwl_dbg((m)->dev, level, true, __func__, fmt, ##args)
|
||||
__IWL_DEBUG_DEV((m)->dev, level, true, fmt, ##args)
|
||||
|
||||
#ifdef CONFIG_IWLWIFI_DEBUG
|
||||
#define iwl_print_hex_dump(m, level, p, len) \
|
||||
|
|
|
|||
|
|
@ -1243,6 +1243,7 @@ struct iwl_mod_params iwlwifi_mod_params = {
|
|||
.bt_coex_active = true,
|
||||
.power_level = IWL_POWER_INDEX_1,
|
||||
.wd_disable = true,
|
||||
.uapsd_disable = false,
|
||||
/* the rest are 0 by default */
|
||||
};
|
||||
IWL_EXPORT_SYMBOL(iwlwifi_mod_params);
|
||||
|
|
@ -1356,6 +1357,10 @@ MODULE_PARM_DESC(wd_disable,
|
|||
module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, S_IRUGO);
|
||||
MODULE_PARM_DESC(nvm_file, "NVM file name");
|
||||
|
||||
module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable,
|
||||
bool, S_IRUGO);
|
||||
MODULE_PARM_DESC(uapsd_disable, "disable U-APSD functionality (default: N)");
|
||||
|
||||
/*
|
||||
* set bt_coex_active to true, uCode will do kill/defer
|
||||
* every time the priority line is asserted (BT is sending signals on the
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue