Bluetooth: Remove dead code for manufacturer inquiry mode quirks
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 3 Jan 2015 07:35:18 +0000 (23:35 -0800)
committerJohan Hedberg <johan.hedberg@intel.com>
Sat, 3 Jan 2015 20:31:08 +0000 (22:31 +0200)
There are some old Bluetooth modules from Silicon Wave and Broadcom
which support Inquiry Result with RSSI, but do not advertise it. The
core has quirks in the code to enable that inquiry mode. However as
it stands right now, that code is not even executed since entering
the function to determine which inquiry mode requires that the device
has the feature bit for Inquiry Result with RSSI set in the first
place. So this makes this dead code that hasn't work for a long
time.

In conclusion, just remove these extra quirks and simplify the setup
of the inquiry mode to be inline and with that a lot easier to read
and understand.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/hci_core.c

index 6c12110b75a7bdf7258c832a0b4e8b350cafd5c3..ebac859e1258bbc85469c3c20e47aeedcd3265ac 100644 (file)
@@ -497,43 +497,6 @@ static void le_setup(struct hci_request *req)
                set_bit(HCI_LE_ENABLED, &hdev->dev_flags);
 }
 
-static u8 hci_get_inquiry_mode(struct hci_dev *hdev)
-{
-       if (lmp_ext_inq_capable(hdev))
-               return 0x02;
-
-       if (lmp_inq_rssi_capable(hdev))
-               return 0x01;
-
-       if (hdev->manufacturer == 11 && hdev->hci_rev == 0x00 &&
-           hdev->lmp_subver == 0x0757)
-               return 0x01;
-
-       if (hdev->manufacturer == 15) {
-               if (hdev->hci_rev == 0x03 && hdev->lmp_subver == 0x6963)
-                       return 0x01;
-               if (hdev->hci_rev == 0x09 && hdev->lmp_subver == 0x6963)
-                       return 0x01;
-               if (hdev->hci_rev == 0x00 && hdev->lmp_subver == 0x6965)
-                       return 0x01;
-       }
-
-       if (hdev->manufacturer == 31 && hdev->hci_rev == 0x2005 &&
-           hdev->lmp_subver == 0x1805)
-               return 0x01;
-
-       return 0x00;
-}
-
-static void hci_setup_inquiry_mode(struct hci_request *req)
-{
-       u8 mode;
-
-       mode = hci_get_inquiry_mode(req->hdev);
-
-       hci_req_add(req, HCI_OP_WRITE_INQUIRY_MODE, 1, &mode);
-}
-
 static void hci_setup_event_mask(struct hci_request *req)
 {
        struct hci_dev *hdev = req->hdev;
@@ -658,8 +621,17 @@ static void hci_init2_req(struct hci_request *req, unsigned long opt)
                }
        }
 
-       if (lmp_inq_rssi_capable(hdev))
-               hci_setup_inquiry_mode(req);
+       if (lmp_inq_rssi_capable(hdev)) {
+               u8 mode;
+
+               /* If Extended Inquiry Result events are supported, then
+                * they are clearly preferred over Inquiry Result with RSSI
+                * events.
+                */
+               mode = lmp_ext_inq_capable(hdev) ? 0x02 : 0x01;
+
+               hci_req_add(req, HCI_OP_WRITE_INQUIRY_MODE, 1, &mode);
+       }
 
        if (lmp_inq_tx_pwr_capable(hdev))
                hci_req_add(req, HCI_OP_READ_INQ_RSP_TX_POWER, 0, NULL);