mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 10:56:40 +00:00
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
This commit is contained in:
commit
65210946f3
@ -1354,6 +1354,20 @@ static int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
|
|||||||
vif_priv->ctx = ctx;
|
vif_priv->ctx = ctx;
|
||||||
ctx->vif = vif;
|
ctx->vif = vif;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In SNIFFER device type, the firmware reports the FCS to
|
||||||
|
* the host, rather than snipping it off. Unfortunately,
|
||||||
|
* mac80211 doesn't (yet) provide a per-packet flag for
|
||||||
|
* this, so that we have to set the hardware flag based
|
||||||
|
* on the interfaces added. As the monitor interface can
|
||||||
|
* only be present by itself, and will be removed before
|
||||||
|
* other interfaces are added, this is safe.
|
||||||
|
*/
|
||||||
|
if (vif->type == NL80211_IFTYPE_MONITOR)
|
||||||
|
priv->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
|
||||||
|
else
|
||||||
|
priv->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
|
||||||
|
|
||||||
err = iwl_setup_interface(priv, ctx);
|
err = iwl_setup_interface(priv, ctx);
|
||||||
if (!err || reset)
|
if (!err || reset)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -480,20 +480,12 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, int fifo,
|
|||||||
void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id)
|
void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id)
|
||||||
{
|
{
|
||||||
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
||||||
u16 rd_ptr, wr_ptr;
|
|
||||||
int n_bd = trans_pcie->txq[txq_id].q.n_bd;
|
|
||||||
|
|
||||||
if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) {
|
if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) {
|
||||||
WARN_ONCE(1, "queue %d not used", txq_id);
|
WARN_ONCE(1, "queue %d not used", txq_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
rd_ptr = iwl_read_prph(trans, SCD_QUEUE_RDPTR(txq_id)) & (n_bd - 1);
|
|
||||||
wr_ptr = iwl_read_prph(trans, SCD_QUEUE_WRPTR(txq_id));
|
|
||||||
|
|
||||||
WARN_ONCE(rd_ptr != wr_ptr, "queue %d isn't empty: [%d,%d]",
|
|
||||||
txq_id, rd_ptr, wr_ptr);
|
|
||||||
|
|
||||||
iwl_txq_set_inactive(trans, txq_id);
|
iwl_txq_set_inactive(trans, txq_id);
|
||||||
IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", txq_id);
|
IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", txq_id);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user