staging: vt6656: vnt_update_ifs vendor changes to uSIFS/uDIFS
authorMalcolm Priestley <tvboxspy@gmail.com>
Sun, 6 Jul 2014 22:19:48 +0000 (23:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Jul 2014 23:04:22 +0000 (16:04 -0700)
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 <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/card.c

index a5f8df1..ea06b63 100644 (file)
@@ -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;