summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a9df280)
No need for a dynamic rate adjustment for this special
case of outgoing BAs. The original firmware didn't care
much for them either.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
uint8_t ra[6];
__le16 start_seq_num;
__le16 control;
uint8_t ra[6];
__le16 start_seq_num;
__le16 control;
};
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
};
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
baf->s.queue = AR9170_TXQ_VO;
baf->f.hdr.length = sizeof(struct ieee80211_ba) + FCS_LEN;
baf->s.queue = AR9170_TXQ_VO;
baf->f.hdr.length = sizeof(struct ieee80211_ba) + FCS_LEN;
- /* HW Duration / Backoff */
- baf->f.hdr.mac.backoff = 1;
- baf->f.hdr.mac.hw_duration = 1;
+ baf->f.hdr.mac.no_ack = 1;
- /* take the TX rate from the RX'd BAR */
- baf->f.hdr.phy.set = ctx->phy;
- baf->f.hdr.phy.tx_power = 29; /* 14.5 dBm */
+ baf->f.hdr.phy.modulation = 1; /* OFDM */
+ baf->f.hdr.phy.tx_power = 34; /* 17 dBm */
+ baf->f.hdr.phy.chains = 1;
+ baf->f.hdr.phy.mcs = AR9170_TXRX_PHY_RATE_OFDM_6M;
/* format outgoing BA */
ba->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_NULLFUNC);
/* format outgoing BA */
ba->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_NULLFUNC);
-static void handle_bar(struct dma_desc *desc, struct ieee80211_hdr *hdr,
+static void handle_bar(struct dma_desc *desc __unused, struct ieee80211_hdr *hdr,
unsigned int len, unsigned int mac_err)
{
struct ieee80211_bar *bar;
unsigned int len, unsigned int mac_err)
{
struct ieee80211_bar *bar;
*/
ctx->control = bar->control | cpu_to_le16(1);
ctx->start_seq_num = bar->start_seq_num;
*/
ctx->control = bar->control | cpu_to_le16(1);
ctx->start_seq_num = bar->start_seq_num;
- ctx->phy = ar9170_rx_to_phy(desc);
- if (unlikely(!ctx->phy)) {
- /* provide a backup, in case ar9170_rx_to_phy fails */
- ctx->phy = cpu_to_le32(0x2cc301);
- }
}
static void wlan_check_rx_overrun(void)
}
static void wlan_check_rx_overrun(void)