Bluetooth: Fix quirks that are valid during setup driver callback
For the quirks that are allow to be set during setup callback, the check needs to be modified so that they are applied even if no setup callback provided by the driver. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
eb1904f49d
commit
af202f8441
1 changed files with 9 additions and 2 deletions
|
@ -2246,9 +2246,16 @@ static int hci_dev_do_open(struct hci_dev *hdev)
|
|||
atomic_set(&hdev->cmd_cnt, 1);
|
||||
set_bit(HCI_INIT, &hdev->flags);
|
||||
|
||||
if (hdev->setup && test_bit(HCI_SETUP, &hdev->dev_flags)) {
|
||||
ret = hdev->setup(hdev);
|
||||
if (test_bit(HCI_SETUP, &hdev->dev_flags)) {
|
||||
if (hdev->setup)
|
||||
ret = hdev->setup(hdev);
|
||||
|
||||
/* The transport driver can set these quirks before
|
||||
* creating the HCI device or in its setup callback.
|
||||
*
|
||||
* In case any of them is set, the controller has to
|
||||
* start up as unconfigured.
|
||||
*/
|
||||
if (test_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks) ||
|
||||
test_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks))
|
||||
set_bit(HCI_UNCONFIGURED, &hdev->dev_flags);
|
||||
|
|
Loading…
Reference in a new issue