mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
Bluetooth: mgmt: Fix limited discoverable off timeout
[ Upstream commit 0bd1fb586235224048c726922db048d1bce6354a ] LIMITED_DISCOVERABLE flag is not reset from Class of Device and advertisement on limited discoverable timeout. This prevents to pass PTS test GAP/DISC/LIMM/BV-02-C Calling set_discoverable_sync as when the limited discovery is set correctly update the Class of Device and advertisement. Signed-off-by: Frédéric Danis <frederic.danis@collabora.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Sasha Levin
parent
567c0411dc
commit
2f3ce8fcbf
@@ -1039,6 +1039,8 @@ static void rpa_expired(struct work_struct *work)
|
|||||||
hci_cmd_sync_queue(hdev, rpa_expired_sync, NULL, NULL);
|
hci_cmd_sync_queue(hdev, rpa_expired_sync, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int set_discoverable_sync(struct hci_dev *hdev, void *data);
|
||||||
|
|
||||||
static void discov_off(struct work_struct *work)
|
static void discov_off(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct hci_dev *hdev = container_of(work, struct hci_dev,
|
struct hci_dev *hdev = container_of(work, struct hci_dev,
|
||||||
@@ -1057,7 +1059,7 @@ static void discov_off(struct work_struct *work)
|
|||||||
hci_dev_clear_flag(hdev, HCI_DISCOVERABLE);
|
hci_dev_clear_flag(hdev, HCI_DISCOVERABLE);
|
||||||
hdev->discov_timeout = 0;
|
hdev->discov_timeout = 0;
|
||||||
|
|
||||||
hci_update_discoverable(hdev);
|
hci_cmd_sync_queue(hdev, set_discoverable_sync, NULL, NULL);
|
||||||
|
|
||||||
mgmt_new_settings(hdev);
|
mgmt_new_settings(hdev);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user