Skip to content

Commit

Permalink
Bluetooth: mgmt: Fix enabling LE while powered off
Browse files Browse the repository at this point in the history
When new BT USB adapter is plugged in it's configured while still being powered
off (HCI_AUTO_OFF flag is set), thus Set LE will only set dev_flags but won't
write changes to controller. As a result it's not possible to start device
discovery session on LE controller as it uses interleaved discovery which
requires LE Supported Host flag in extended features.

This patch ensures HCI Write LE Host Supported is sent when Set Powered is
called to power on controller and clear HCI_AUTO_OFF flag.

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Cc: stable@vger.kernel.org
Acked-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
  • Loading branch information
Andrzej Kaczmarek authored and Gustavo Padovan committed Sep 18, 2012
1 parent 3d1cbdd commit 562fcc2
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -2881,6 +2881,16 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered)
hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &ssp);
}

if (test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) {
struct hci_cp_write_le_host_supported cp;

cp.le = 1;
cp.simul = !!(hdev->features[6] & LMP_SIMUL_LE_BR);

hci_send_cmd(hdev, HCI_OP_WRITE_LE_HOST_SUPPORTED,
sizeof(cp), &cp);
}

update_class(hdev);
update_name(hdev, hdev->dev_name);
update_eir(hdev);
Expand Down

0 comments on commit 562fcc2

Please sign in to comment.