staging: vt6656: Refactor the vnt_set_bss_mode function
authorOscar Carter <oscar.carter@gmx.com>
Wed, 29 Apr 2020 15:23:07 +0000 (17:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 May 2020 10:26:43 +0000 (12:26 +0200)
Remove all the duplicate code in the "if, else if, else" statements as
all the branches in every "if" are almost the same. The only difference
between branches is some value. So, use variables instead of repeat
code.

Also, remove the unnecessary casting to u8 type because the
"priv->bb_type" variable is already an u8 tpe.

Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
Link: https://lore.kernel.org/r/20200429152307.5871-3-oscar.carter@gmx.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/card.c

index 0854b70cb89f89aa8de63166f2b3a119bc129092..3cb97c4daeb882d8a2fe9eb5a51b17f36422b11c 100644 (file)
@@ -472,62 +472,56 @@ int vnt_radio_power_on(struct vnt_private *priv)
 int vnt_set_bss_mode(struct vnt_private *priv)
 {
        int ret;
+       unsigned char type = priv->bb_type;
+       unsigned char data = 0;
+       unsigned char bb_vga_0 = 0x1c;
+       unsigned char bb_vga_2_3 = 0x00;
 
        if (priv->rf_type == RF_AIROHA7230 && priv->bb_type == BB_TYPE_11A)
-               ret = vnt_mac_set_bb_type(priv, BB_TYPE_11G);
-       else
-               ret = vnt_mac_set_bb_type(priv, priv->bb_type);
+               type = BB_TYPE_11G;
 
+       ret = vnt_mac_set_bb_type(priv, type);
        if (ret)
                return ret;
 
        priv->packet_type = vnt_get_pkt_type(priv);
 
-       if (priv->bb_type == BB_TYPE_11A)
-               ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-                                        0x88, 0x03);
-       else if (priv->bb_type == BB_TYPE_11B)
-               ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-                                        0x88, 0x02);
-       else if (priv->bb_type == BB_TYPE_11G)
+       if (priv->bb_type == BB_TYPE_11A) {
+               data = 0x03;
+               bb_vga_0 = 0x20;
+               bb_vga_2_3 = 0x10;
+       } else if (priv->bb_type == BB_TYPE_11B) {
+               data = 0x02;
+       } else if (priv->bb_type == BB_TYPE_11G) {
+               data = 0x08;
+       }
+
+       if (data) {
                ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-                                        0x88, 0x08);
-       if (ret)
-               return ret;
+                                        0x88, data);
+               if (ret)
+                       return ret;
+       }
 
        ret = vnt_update_ifs(priv);
        if (ret)
                return ret;
 
-       ret = vnt_set_rspinf(priv, (u8)priv->bb_type);
+       ret = vnt_set_rspinf(priv, priv->bb_type);
        if (ret)
                return ret;
 
-       if (priv->bb_type == BB_TYPE_11A) {
-               if (priv->rf_type == RF_AIROHA7230) {
-                       priv->bb_vga[0] = 0x20;
+       if (priv->rf_type == RF_AIROHA7230) {
+               priv->bb_vga[0] = bb_vga_0;
 
-                       ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-                                                0xe7, priv->bb_vga[0]);
-                       if (ret)
-                               return ret;
-               }
-
-               priv->bb_vga[2] = 0x10;
-               priv->bb_vga[3] = 0x10;
-       } else {
-               if (priv->rf_type == RF_AIROHA7230) {
-                       priv->bb_vga[0] = 0x1c;
-
-                       ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-                                                0xe7, priv->bb_vga[0]);
-                       if (ret)
-                               return ret;
-               }
-
-               priv->bb_vga[2] = 0x0;
-               priv->bb_vga[3] = 0x0;
+               ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
+                                        0xe7, priv->bb_vga[0]);
+               if (ret)
+                       return ret;
        }
 
+       priv->bb_vga[2] = bb_vga_2_3;
+       priv->bb_vga[3] = bb_vga_2_3;
+
        return vnt_set_vga_gain_offset(priv, priv->bb_vga[0]);
 }