diff --git a/9004-bcm4377-fix-bdaddr-property.patch b/9004-bcm4377-fix-bdaddr-property.patch new file mode 100644 index 0000000..c9af0ff --- /dev/null +++ b/9004-bcm4377-fix-bdaddr-property.patch @@ -0,0 +1,38 @@ +diff --git a/drivers/bluetooth/hci_bcm4377.c b/drivers/bluetooth/hci_bcm4377.c +index a61757835695..5c6fef1aa0f6 100644 +--- a/drivers/bluetooth/hci_bcm4377.c ++++ b/drivers/bluetooth/hci_bcm4377.c +@@ -513,6 +513,7 @@ struct bcm4377_hw { + unsigned long broken_ext_scan : 1; + unsigned long broken_mws_transport_config : 1; + unsigned long broken_le_coded : 1; ++ unsigned long use_bdaddr_property : 1; + + int (*send_calibration)(struct bcm4377_data *bcm4377); + int (*send_ptb)(struct bcm4377_data *bcm4377, +@@ -2368,7 +2369,8 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id) + hdev->set_bdaddr = bcm4377_hci_set_bdaddr; + hdev->setup = bcm4377_hci_setup; + +- set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); ++ if (bcm4377->hw->use_bdaddr_property) ++ set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); + if (bcm4377->hw->broken_mws_transport_config) + set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks); + if (bcm4377->hw->broken_ext_scan) +@@ -2465,6 +2467,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = { + .has_bar0_core2_window2 = true, + .broken_mws_transport_config = true, + .broken_le_coded = true, ++ .use_bdaddr_property = true, + .send_calibration = bcm4378_send_calibration, + .send_ptb = bcm4378_send_ptb, + }, +@@ -2479,6 +2482,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = { + .clear_pciecfg_subsystem_ctrl_bit19 = true, + .broken_mws_transport_config = true, + .broken_le_coded = true, ++ .use_bdaddr_property = true, + .send_calibration = bcm4387_send_calibration, + .send_ptb = bcm4378_send_ptb, + },