summaryrefslogtreecommitdiffstats
path: root/drivers/staging/vt6656/rxtx.c
diff options
context:
space:
mode:
authorMalcolm Priestley2014-07-05 20:24:27 +0200
committerGreg Kroah-Hartman2014-07-09 01:03:57 +0200
commit71d764aefeb6010b496f2c47ea06d9389fa9b780 (patch)
tree786c836fed7a09f981bd938d0170e18ef40c7b92 /drivers/staging/vt6656/rxtx.c
parentstaging: vt6656: Include re_alloc_skb within lock. (diff)
downloadkernel-qcow2-linux-71d764aefeb6010b496f2c47ea06d9389fa9b780.tar.gz
kernel-qcow2-linux-71d764aefeb6010b496f2c47ea06d9389fa9b780.tar.xz
kernel-qcow2-linux-71d764aefeb6010b496f2c47ea06d9389fa9b780.zip
stagingL vt6656: implement fall back rates reporting.
The driver reports the rate tried in struct vnt_interrupt_data tsr* variables which is available in INTnsProcessData via interrupt urb context. Instead of closing apTD tx context in s_nsBulkOutIoCompleteWrite by setting in_use to false. Keep the context open and allow vnt_int_report_rate to close it. If the tx_retry value is correct it will report back the sucessful RATE tried. struct vnt_usb_send_context add pkt_no which is index of apTD Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vt6656/rxtx.c')
-rw-r--r--drivers/staging/vt6656/rxtx.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c
index 95b6cf307af6..264e3c9b6412 100644
--- a/drivers/staging/vt6656/rxtx.c
+++ b/drivers/staging/vt6656/rxtx.c
@@ -1021,6 +1021,8 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
}
}
+ tx_context->fb_option = fb_option;
+
duration_id = s_vGenerateTxParameter(tx_context, pkt_type, current_rate,
tx_buffer, &mic_hdr, need_mic, frame_size,
need_ack, NULL, need_rts);
@@ -1050,8 +1052,7 @@ int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb)
IEEE80211_SCTL_SEQ) >> 4;
tx_buffer->tx_byte_count = cpu_to_le16(tx_bytes);
- tx_buffer->byPKTNO = (u8)(((current_rate << 4) & 0xf0) |
- (priv->wSeqCounter & 0xf));
+ tx_buffer->byPKTNO = tx_context->pkt_no;
tx_buffer->byType = 0x00;
tx_bytes += 4;
@@ -1147,8 +1148,7 @@ static int vnt_beacon_xmit(struct vnt_private *priv,
count = sizeof(struct vnt_tx_short_buf_head) + skb->len;
beacon_buffer->tx_byte_count = cpu_to_le16(count);
- beacon_buffer->byPKTNO = (u8)(((current_rate << 4) & 0xf0) |
- ((priv->wSeqCounter - 1) & 0x000f));
+ beacon_buffer->byPKTNO = context->pkt_no;
beacon_buffer->byType = 0x01;
context->type = CONTEXT_BEACON_PACKET;