skb_push the headroom and trimmed back to 0
Signed-off-by: Malcolm Priestley <[email protected]>
---
applies after patch staging: vt6656: Include re_alloc_skb within lock
drivers/staging/vt6656/usbpipe.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c
index c8b0ed5..dd031bb 100644
--- a/drivers/staging/vt6656/usbpipe.c
+++ b/drivers/staging/vt6656/usbpipe.c
@@ -303,6 +303,9 @@ static void s_nsBulkInUsbIoCompleteRead(struct urb *urb)
spin_unlock_irqrestore(&priv->lock, flags);
return;
}
+ } else {
+ skb_push(rcb->skb, skb_headroom(rcb->skb));
+ skb_trim(rcb->skb, 0);
}
urb->transfer_buffer = skb_put(rcb->skb,
--
1.9.1
The latest vendor code makes changes to uSIFS and uDIFS.
The orginal codes have been rearranged into a fall through switch
statement.
These reduce the time that device allows to TX packets and
improves throughput.
Signed-off-by: Malcolm Priestley <[email protected]>
---
drivers/staging/vt6656/card.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c
index a5f8df1..ea06b63 100644
--- a/drivers/staging/vt6656/card.c
+++ b/drivers/staging/vt6656/card.c
@@ -408,6 +408,36 @@ void vnt_update_ifs(struct vnt_private *priv)
priv->uCwMax = C_CWMAX;
priv->uEIFS = C_EIFS;
+ switch (priv->byRFType) {
+ case RF_VT3226D0:
+ if (priv->byBBType != BB_TYPE_11B) {
+ priv->uSIFS -= 1;
+ priv->uDIFS -= 1;
+ break;
+ }
+ case RF_AIROHA7230:
+ case RF_AL2230:
+ case RF_AL2230S:
+ if (priv->byBBType != BB_TYPE_11B)
+ break;
+ case RF_RFMD2959:
+ case RF_VT3226:
+ case RF_VT3342A0:
+ priv->uSIFS -= 3;
+ priv->uDIFS -= 3;
+ break;
+ case RF_MAXIM2829:
+ if (priv->byBBType == BB_TYPE_11A) {
+ priv->uSIFS -= 5;
+ priv->uDIFS -= 5;
+ } else {
+ priv->uSIFS -= 2;
+ priv->uDIFS -= 2;
+ }
+
+ break;
+ }
+
data[0] = (u8)priv->uSIFS;
data[1] = (u8)priv->uDIFS;
data[2] = (u8)priv->uEIFS;
--
1.9.1
The device refuses to associate to older access points even though in
the logs it appears to be associated in tkip or ccmp mode.
Clear bit from key_entry_inuse in pairwise key so the entry is over written
by group address.
This doesn't seem to make any difference to newer access points and
is a temporary fix until a better solution is found.
Signed-off-by: Malcolm Priestley <[email protected]>
---
drivers/staging/vt6656/key.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/staging/vt6656/key.c b/drivers/staging/vt6656/key.c
index a7c7a2d..7275f09 100644
--- a/drivers/staging/vt6656/key.c
+++ b/drivers/staging/vt6656/key.c
@@ -98,6 +98,8 @@ static int vnt_set_keymode(struct ieee80211_hw *hw, u8 *mac_addr,
case VNT_KEY_PAIRWISE:
key_mode |= mode;
key_inx = 4;
+ /* Don't save entry for pairwise key */
+ clear_bit(entry, &priv->key_entry_inuse);
break;
default:
return -EINVAL;
--
1.9.1