Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Conflicts: drivers/net/wireless/mac80211_hwsim.c
This commit is contained in:
@@ -460,7 +460,9 @@ il3945_build_tx_cmd_basic(struct il_priv *il, struct il_device_cmd *cmd,
|
||||
* start C_TX command process
|
||||
*/
|
||||
static int
|
||||
il3945_tx_skb(struct il_priv *il, struct sk_buff *skb)
|
||||
il3945_tx_skb(struct il_priv *il,
|
||||
struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
@@ -512,7 +514,7 @@ il3945_tx_skb(struct il_priv *il, struct sk_buff *skb)
|
||||
hdr_len = ieee80211_hdrlen(fc);
|
||||
|
||||
/* Find idx into station table for destination station */
|
||||
sta_id = il_sta_id_or_broadcast(il, info->control.sta);
|
||||
sta_id = il_sta_id_or_broadcast(il, sta);
|
||||
if (sta_id == IL_INVALID_STATION) {
|
||||
D_DROP("Dropping - INVALID STATION: %pM\n", hdr->addr1);
|
||||
goto drop;
|
||||
@@ -2859,7 +2861,9 @@ il3945_mac_stop(struct ieee80211_hw *hw)
|
||||
}
|
||||
|
||||
static void
|
||||
il3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
il3945_mac_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_tx_control *control,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct il_priv *il = hw->priv;
|
||||
|
||||
@@ -2868,7 +2872,7 @@ il3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
D_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len,
|
||||
ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate);
|
||||
|
||||
if (il3945_tx_skb(il, skb))
|
||||
if (il3945_tx_skb(il, control->sta, skb))
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
D_MAC80211("leave\n");
|
||||
|
@@ -1526,8 +1526,11 @@ il4965_tx_cmd_build_basic(struct il_priv *il, struct sk_buff *skb,
|
||||
}
|
||||
|
||||
static void
|
||||
il4965_tx_cmd_build_rate(struct il_priv *il, struct il_tx_cmd *tx_cmd,
|
||||
struct ieee80211_tx_info *info, __le16 fc)
|
||||
il4965_tx_cmd_build_rate(struct il_priv *il,
|
||||
struct il_tx_cmd *tx_cmd,
|
||||
struct ieee80211_tx_info *info,
|
||||
struct ieee80211_sta *sta,
|
||||
__le16 fc)
|
||||
{
|
||||
const u8 rts_retry_limit = 60;
|
||||
u32 rate_flags;
|
||||
@@ -1561,9 +1564,7 @@ il4965_tx_cmd_build_rate(struct il_priv *il, struct il_tx_cmd *tx_cmd,
|
||||
rate_idx = info->control.rates[0].idx;
|
||||
if ((info->control.rates[0].flags & IEEE80211_TX_RC_MCS) || rate_idx < 0
|
||||
|| rate_idx > RATE_COUNT_LEGACY)
|
||||
rate_idx =
|
||||
rate_lowest_index(&il->bands[info->band],
|
||||
info->control.sta);
|
||||
rate_idx = rate_lowest_index(&il->bands[info->band], sta);
|
||||
/* For 5 GHZ band, remap mac80211 rate indices into driver indices */
|
||||
if (info->band == IEEE80211_BAND_5GHZ)
|
||||
rate_idx += IL_FIRST_OFDM_RATE;
|
||||
@@ -1630,11 +1631,12 @@ il4965_tx_cmd_build_hwcrypto(struct il_priv *il, struct ieee80211_tx_info *info,
|
||||
* start C_TX command process
|
||||
*/
|
||||
int
|
||||
il4965_tx_skb(struct il_priv *il, struct sk_buff *skb)
|
||||
il4965_tx_skb(struct il_priv *il,
|
||||
struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
struct ieee80211_sta *sta = info->control.sta;
|
||||
struct il_station_priv *sta_priv = NULL;
|
||||
struct il_tx_queue *txq;
|
||||
struct il_queue *q;
|
||||
@@ -1680,7 +1682,7 @@ il4965_tx_skb(struct il_priv *il, struct sk_buff *skb)
|
||||
sta_id = il->hw_params.bcast_id;
|
||||
else {
|
||||
/* Find idx into station table for destination station */
|
||||
sta_id = il_sta_id_or_broadcast(il, info->control.sta);
|
||||
sta_id = il_sta_id_or_broadcast(il, sta);
|
||||
|
||||
if (sta_id == IL_INVALID_STATION) {
|
||||
D_DROP("Dropping - INVALID STATION: %pM\n", hdr->addr1);
|
||||
@@ -1786,7 +1788,7 @@ il4965_tx_skb(struct il_priv *il, struct sk_buff *skb)
|
||||
/* TODO need this for burst mode later on */
|
||||
il4965_tx_cmd_build_basic(il, skb, tx_cmd, info, hdr, sta_id);
|
||||
|
||||
il4965_tx_cmd_build_rate(il, tx_cmd, info, fc);
|
||||
il4965_tx_cmd_build_rate(il, tx_cmd, info, sta, fc);
|
||||
|
||||
il_update_stats(il, true, fc, len);
|
||||
/*
|
||||
@@ -5828,7 +5830,9 @@ il4965_mac_stop(struct ieee80211_hw *hw)
|
||||
}
|
||||
|
||||
void
|
||||
il4965_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
il4965_mac_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_tx_control *control,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct il_priv *il = hw->priv;
|
||||
|
||||
@@ -5837,7 +5841,7 @@ il4965_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
D_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len,
|
||||
ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate);
|
||||
|
||||
if (il4965_tx_skb(il, skb))
|
||||
if (il4965_tx_skb(il, control->sta, skb))
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
D_MACDUMP("leave\n");
|
||||
|
@@ -78,7 +78,9 @@ int il4965_hw_txq_attach_buf_to_tfd(struct il_priv *il, struct il_tx_queue *txq,
|
||||
int il4965_hw_tx_queue_init(struct il_priv *il, struct il_tx_queue *txq);
|
||||
void il4965_hwrate_to_tx_control(struct il_priv *il, u32 rate_n_flags,
|
||||
struct ieee80211_tx_info *info);
|
||||
int il4965_tx_skb(struct il_priv *il, struct sk_buff *skb);
|
||||
int il4965_tx_skb(struct il_priv *il,
|
||||
struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb);
|
||||
int il4965_tx_agg_start(struct il_priv *il, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, u16 tid, u16 * ssn);
|
||||
int il4965_tx_agg_stop(struct il_priv *il, struct ieee80211_vif *vif,
|
||||
@@ -163,7 +165,9 @@ void il4965_eeprom_release_semaphore(struct il_priv *il);
|
||||
int il4965_eeprom_check_version(struct il_priv *il);
|
||||
|
||||
/* mac80211 handlers (for 4965) */
|
||||
void il4965_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
|
||||
void il4965_mac_tx(struct ieee80211_hw *hw,
|
||||
struct ieee80211_tx_control *control,
|
||||
struct sk_buff *skb);
|
||||
int il4965_mac_start(struct ieee80211_hw *hw);
|
||||
void il4965_mac_stop(struct ieee80211_hw *hw);
|
||||
void il4965_configure_filter(struct ieee80211_hw *hw,
|
||||
|
Reference in New Issue
Block a user