/*
         * WLAN action by PTA
         */
-       rtl8xxxu_write8(priv, REG_WLAN_ACT_CONTROL_8723B, 0x04);
+       rtl8xxxu_write8(priv, REG_WLAN_ACT_CONTROL_8723B, 0x0c);
 
        /*
         * BT select S0/S1 controlled by WiFi
        rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.ant_sel_rsv));
 
        /*
-        * 0x280, 0x00, 0x200, 0x80 - not clear
+        * Different settings per different antenna position.
+        *      Antenna Position:   | Normal   Inverse
+        * --------------------------------------------------
+        * Antenna switch to BT:    |  0x280,   0x00
+        * Antenna switch to WiFi:  |  0x0,     0x280
+        * Antenna switch to PTA:   |  0x200,   0x80
         */
-       rtl8xxxu_write32(priv, REG_S0S1_PATH_SWITCH, 0x00);
+       rtl8xxxu_write32(priv, REG_S0S1_PATH_SWITCH, 0x80);
 
        /*
         * Software control, antenna at WiFi side
 
 
        /* Check if MAC is already powered on */
        val8 = rtl8xxxu_read8(priv, REG_CR);
+       val16 = rtl8xxxu_read16(priv, REG_SYS_CLKR);
 
        /*
         * Fix 92DU-VC S3 hang with the reason is that secondary mac is not
         * initialized. First MAC returns 0xea, second MAC returns 0x00
         */
-       if (val8 == 0xea)
+       if (val8 == 0xea || !(val16 & SYS_CLK_MAC_CLK_ENABLE))
                macpower = false;
        else
                macpower = true;