rtl8xxxu: Issue BT_INFO command
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 29 Feb 2016 22:04:50 +0000 (17:04 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 10 Mar 2016 13:29:05 +0000 (15:29 +0200)
Issue a BT_INFO command to verify the status of BT/WiFi settings.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h

index ec03e912e82cfc307074c6ca71a09700acc1841b..9b5b768ee33bae0c475b8271ee636ea2307f72c0 100644 (file)
@@ -5727,20 +5727,25 @@ static void rtl8723bu_init_bt(struct rtl8xxxu_priv *priv)
         */
        rtl8xxxu_write32(priv, REG_S0S1_PATH_SWITCH, 0x00);
 
-       memset(&h2c, 0, sizeof(struct h2c_cmd));
-       h2c.ignore_wlan.cmd = H2C_8723B_BT_IGNORE_WLANACT;
-       h2c.ignore_wlan.data = 0;
-       rtl8723a_h2c_cmd(priv, &h2c, sizeof(h2c.ignore_wlan));
-
        /*
         * Software control, antenna at WiFi side
         */
        rtl8723bu_set_ps_tdma(priv, 0x08, 0x00, 0x00, 0x00, 0x00);
 
+       memset(&h2c, 0, sizeof(struct h2c_cmd));
+       h2c.bt_info.cmd = H2C_8723B_BT_INFO;
+       h2c.bt_info.data = BIT(0);
+       rtl8723a_h2c_cmd(priv, &h2c, sizeof(h2c.bt_info));
+
        rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x55555555);
        rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0x5a5a5a5a);
        rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
        rtl8xxxu_write32(priv, REG_BT_COEX_TABLE4, 0x00000003);
+
+       memset(&h2c, 0, sizeof(struct h2c_cmd));
+       h2c.ignore_wlan.cmd = H2C_8723B_BT_IGNORE_WLANACT;
+       h2c.ignore_wlan.data = 0;
+       rtl8723a_h2c_cmd(priv, &h2c, sizeof(h2c.ignore_wlan));
 }
 
 static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
@@ -6847,8 +6852,7 @@ static void rtl8723bu_handle_c2h(struct rtl8xxxu_priv *priv,
 
        len = skb->len - 2;
 
-       dev_info(dev, "%s: C2H ID %02x seq %02x, len %02x source %02x\n",
-                __func__,
+       dev_info(dev, "C2H ID %02x seq %02x, len %02x source %02x\n",
                 c2h->id, c2h->seq, len, c2h->bt_info.response_source);
 
        switch(c2h->id) {
index 3e4e355ce2e21b5fd72127084f8011ff947e6673..ea0b28a9a519a8451e81ddd51d37a821dd031f71 100644 (file)
@@ -879,6 +879,10 @@ struct h2c_cmd {
                        u8 data4;
                        u8 data5;
                } __packed b_type_dma;
+               struct {
+                       u8 cmd;
+                       u8 data;
+               } __packed bt_info;
                struct {
                        u8 cmd;
                        u8 operreq;