staging: vt6656: Split RTS and CTS Duration functions
authorMalcolm Priestley <tvboxspy@gmail.com>
Tue, 5 May 2020 21:17:26 +0000 (22:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 May 2020 11:53:57 +0000 (13:53 +0200)
split vnt_get_rtscts_duration_le into vnt_get_rts_duration and
vnt_get_cts_duration.

The duration's are all the same in vnt_rxtx_rts_g_head.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Link: https://lore.kernel.org/r/d2983161-7935-48ce-c0ca-a26ebafa3997@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/rxtx.c

index 27069ac..47da9da 100644 (file)
@@ -13,7 +13,6 @@
  *
  * Functions:
  *      vnt_generate_tx_parameter - Generate tx dma required parameter.
- *      vnt_get_rtscts_duration_le- get rtx/cts required duration
  *      vnt_get_rtscts_rsvtime_le- get rts/cts reserved time
  *      vnt_get_rsvtime- get frame reserved time
  *      vnt_fill_cts_head- fulfill CTS ctl header
@@ -38,10 +37,6 @@ static const u16 vnt_time_stampoff[2][MAX_RATE] = {
        {384, 192, 130, 113, 54, 43, 37, 31, 28, 25, 24, 23},
 };
 
-#define RTSDUR_BB       0
-#define RTSDUR_BA       1
-#define RTSDUR_AA       2
-#define CTSDUR_BA       3
 #define DATADUR_B       10
 #define DATADUR_A       11
 
@@ -260,27 +255,22 @@ static __le16 vnt_get_rtscts_rsvtime_le(struct vnt_private *priv, u8 rsv_type,
        return cpu_to_le16((u16)rrv_time);
 }
 
-static __le16 vnt_get_rtscts_duration_le(struct vnt_usb_send_context *context,
-                                        u8 dur_type, u8 pkt_type, u16 rate)
+static __le16 vnt_get_rts_duration(struct vnt_usb_send_context *context)
 {
        struct vnt_private *priv = context->priv;
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(context->skb);
 
-       switch (dur_type) {
-       /* fall through */
-       case RTSDUR_BB:
-       case RTSDUR_BA:
-       case RTSDUR_AA:
-               return ieee80211_rts_duration(priv->hw, priv->vif,
-                                             context->frame_len, info);
-       case CTSDUR_BA:
-               return ieee80211_ctstoself_duration(priv->hw, priv->vif,
-                                                   context->frame_len, info);
-       default:
-               break;
-       }
+       return ieee80211_rts_duration(priv->hw, priv->vif,
+                                     context->frame_len, info);
+}
 
-       return cpu_to_le16(0);
+static __le16 vnt_get_cts_duration(struct vnt_usb_send_context *context)
+{
+       struct vnt_private *priv = context->priv;
+       struct ieee80211_tx_info *info = IEEE80211_SKB_CB(context->skb);
+
+       return ieee80211_ctstoself_duration(priv->hw, priv->vif,
+                                           context->frame_len, info);
 }
 
 static u16 vnt_mac_hdr_pos(struct vnt_usb_send_context *tx_context,
@@ -359,22 +349,15 @@ static void vnt_rxtx_rts_g_head(struct vnt_usb_send_context *tx_context,
 {
        struct vnt_private *priv = tx_context->priv;
        u16 rts_frame_len = 20;
-       u16 current_rate = tx_context->tx_rate;
 
        vnt_get_phy_field(priv, rts_frame_len, priv->top_cck_basic_rate,
                          PK_TYPE_11B, &buf->b);
        vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
                          tx_context->pkt_type, &buf->a);
 
-       buf->duration_bb = vnt_get_rtscts_duration_le(tx_context, RTSDUR_BB,
-                                                     PK_TYPE_11B,
-                                                     priv->top_cck_basic_rate);
-       buf->duration_aa = vnt_get_rtscts_duration_le(tx_context, RTSDUR_AA,
-                                                     tx_context->pkt_type,
-                                                     current_rate);
-       buf->duration_ba = vnt_get_rtscts_duration_le(tx_context, RTSDUR_BA,
-                                                     tx_context->pkt_type,
-                                                     current_rate);
+       buf->duration_bb = vnt_get_rts_duration(tx_context);
+       buf->duration_aa = buf->duration_bb;
+       buf->duration_ba = buf->duration_bb;
 
        vnt_fill_ieee80211_rts(tx_context, &buf->data, buf->duration_aa);
 
@@ -385,15 +368,12 @@ static void vnt_rxtx_rts_ab_head(struct vnt_usb_send_context *tx_context,
                                 struct vnt_rts_ab *buf)
 {
        struct vnt_private *priv = tx_context->priv;
-       u16 current_rate = tx_context->tx_rate;
        u16 rts_frame_len = 20;
 
        vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
                          tx_context->pkt_type, &buf->ab);
 
-       buf->duration = vnt_get_rtscts_duration_le(tx_context, RTSDUR_AA,
-                                                  tx_context->pkt_type,
-                                                  current_rate);
+       buf->duration = vnt_get_rts_duration(tx_context);
 
        vnt_fill_ieee80211_rts(tx_context, &buf->data, buf->duration);
 
@@ -406,16 +386,12 @@ static void vnt_fill_cts_head(struct vnt_usb_send_context *tx_context,
        struct vnt_private *priv = tx_context->priv;
        struct vnt_cts *buf = &head->cts_g;
        u32 cts_frame_len = 14;
-       u16 current_rate = tx_context->tx_rate;
 
        /* Get SignalField,ServiceField,Length */
        vnt_get_phy_field(priv, cts_frame_len, priv->top_cck_basic_rate,
                          PK_TYPE_11B, &buf->b);
        /* Get CTSDuration_ba */
-       buf->duration_ba =
-               vnt_get_rtscts_duration_le(tx_context, CTSDUR_BA,
-                                          tx_context->pkt_type,
-                                          current_rate);
+       buf->duration_ba = vnt_get_cts_duration(tx_context);
        /*Get CTS Frame body*/
        buf->data.duration = buf->duration_ba;
        buf->data.frame_control =