Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e81be90b authored by Johan Hedberg's avatar Johan Hedberg Committed by Marcel Holtmann
Browse files

Bluetooth: Use BROKEN_STORED_LINK_KEY quirk for HCI_Read_Stored_Link_Key



Some counterfeit CSR controllers also have broken behavior with the
HCI_Read_Stored_Link_Key command:

< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
> HCI Event: Command Complete (0x0e) plen 8
      Read Stored Link Key (0x03|0x000d) ncmd 1
        Status: Unsupported Feature or Parameter Value (0x11)
        Max num keys: 0
        Num keys: 0

Extend the existing HCI_QUIRK_BROKEN_STORED_LINK_KEY to be also used
for this HCI command.

Reported-and-tested-by: default avatarRhobison Alves Pereira <rhobison@hotmail.com>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 37d2dbcd
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -693,7 +693,8 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)


	hci_setup_event_mask(req);
	hci_setup_event_mask(req);


	if (hdev->commands[6] & 0x20) {
	if (hdev->commands[6] & 0x20 &&
	    !test_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks)) {
		struct hci_cp_read_stored_link_key cp;
		struct hci_cp_read_stored_link_key cp;


		bacpy(&cp.bdaddr, BDADDR_ANY);
		bacpy(&cp.bdaddr, BDADDR_ANY);