Bluetooth: btintel: Add combined set_diag functions
authorTedd Ho-Jeong An <tedd.an@intel.com>
Thu, 5 Aug 2021 00:32:14 +0000 (17:32 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 5 Aug 2021 14:03:29 +0000 (16:03 +0200)
This patch adds a combined set_diag functions.
It also changes the btintel_set_diag_mfg() to static since it is no
longer used by others.

Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btintel.c
drivers/bluetooth/btintel.h

index fd947a8798a972ae4e4387c1672ee07785856877..9e9fd222229480ea5ba5e0527041b3d402b81183 100644 (file)
@@ -181,6 +181,23 @@ static int btintel_set_diag_mfg(struct hci_dev *hdev, bool enable)
        return ret;
 }
 
+static int btintel_set_diag_combined(struct hci_dev *hdev, bool enable)
+{
+       int ret;
+
+       /* Legacy ROM device needs to be in the manufacturer mode to apply
+        * diagnostic setting
+        *
+        * This flag is set after reading the Intel version.
+        */
+       if (btintel_test_flag(hdev, INTEL_ROM_LEGACY))
+               ret = btintel_set_diag_mfg(hdev, enable);
+       else
+               ret = btintel_set_diag(hdev, enable);
+
+       return ret;
+}
+
 void btintel_hw_error(struct hci_dev *hdev, u8 code)
 {
        struct sk_buff *skb;
@@ -1737,6 +1754,7 @@ static int btintel_setup_combined(struct hci_dev *hdev)
                case 0x07:      /* WP */
                case 0x08:      /* StP */
                        /* Legacy ROM product */
+                       btintel_set_flag(hdev, INTEL_ROM_LEGACY);
 
                        /* These devices have an issue with LED which doesn't
                         * go off immediately during shutdown. Set the flag
@@ -1828,7 +1846,7 @@ int btintel_configure_setup(struct hci_dev *hdev)
        hdev->manufacturer = 2;
        hdev->setup = btintel_setup_combined;
        hdev->shutdown = btintel_shutdown_combined;
-       hdev->set_diag = btintel_set_diag_mfg;
+       hdev->set_diag = btintel_set_diag_combined;
        hdev->set_bdaddr = btintel_set_bdaddr;
 
        return 0;
index aef04fa0e1ef866a34d42a85493cb452b6173cf2..17cb62ac33f65217422e654c44f625498e840d3d 100644 (file)
@@ -146,6 +146,7 @@ enum {
        INTEL_BOOTING,
        INTEL_BROKEN_INITIAL_NCMD,
        INTEL_BROKEN_LED,
+       INTEL_ROM_LEGACY,
 
        __INTEL_NUM_FLAGS,
 };