aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2014-02-24 07:52:17 -0500
committerMarcel Holtmann <marcel@holtmann.org>2014-02-24 14:10:36 -0500
commit778b235a3be0588da1909f7ef75b4bc3dbc09dfc (patch)
tree3f9a369d3324f38f7a5e87527974c7271584de4f
parentf4f07505005932ca5f6c8003323bd38dbd0c769c (diff)
Bluetooth: Move HCI_ADVERTISING handling into mgmt.c
We'll soon need to make decisions on toggling the HCI_ADVERTISING flag based on pending mgmt_set_powered commands. Therefore, move the handling from hci_event.c into mgmt.c. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r--include/net/bluetooth/hci_core.h1
-rw-r--r--net/bluetooth/hci_event.c8
-rw-r--r--net/bluetooth/mgmt.c8
3 files changed, 11 insertions, 6 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index d2d756753714..6ff882e727d4 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -1174,6 +1174,7 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered);
1174void mgmt_discoverable_timeout(struct hci_dev *hdev); 1174void mgmt_discoverable_timeout(struct hci_dev *hdev);
1175void mgmt_discoverable(struct hci_dev *hdev, u8 discoverable); 1175void mgmt_discoverable(struct hci_dev *hdev, u8 discoverable);
1176void mgmt_connectable(struct hci_dev *hdev, u8 connectable); 1176void mgmt_connectable(struct hci_dev *hdev, u8 connectable);
1177void mgmt_advertising(struct hci_dev *hdev, u8 advertising);
1177void mgmt_write_scan_failed(struct hci_dev *hdev, u8 scan, u8 status); 1178void mgmt_write_scan_failed(struct hci_dev *hdev, u8 scan, u8 status);
1178void mgmt_new_link_key(struct hci_dev *hdev, struct link_key *key, 1179void mgmt_new_link_key(struct hci_dev *hdev, struct link_key *key,
1179 bool persistent); 1180 bool persistent);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 064d619344b3..dea465ba276b 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -991,12 +991,8 @@ static void hci_cc_le_set_adv_enable(struct hci_dev *hdev, struct sk_buff *skb)
991 991
992 hci_dev_lock(hdev); 992 hci_dev_lock(hdev);
993 993
994 if (!status) { 994 if (!status)
995 if (*sent) 995 mgmt_advertising(hdev, *sent);
996 set_bit(HCI_ADVERTISING, &hdev->dev_flags);
997 else
998 clear_bit(HCI_ADVERTISING, &hdev->dev_flags);
999 }
1000 996
1001 hci_dev_unlock(hdev); 997 hci_dev_unlock(hdev);
1002} 998}
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 9865e523df20..d39e57e9fed6 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -4832,6 +4832,14 @@ void mgmt_connectable(struct hci_dev *hdev, u8 connectable)
4832 new_settings(hdev, NULL); 4832 new_settings(hdev, NULL);
4833} 4833}
4834 4834
4835void mgmt_advertising(struct hci_dev *hdev, u8 advertising)
4836{
4837 if (advertising)
4838 set_bit(HCI_ADVERTISING, &hdev->dev_flags);
4839 else
4840 clear_bit(HCI_ADVERTISING, &hdev->dev_flags);
4841}
4842
4835void mgmt_write_scan_failed(struct hci_dev *hdev, u8 scan, u8 status) 4843void mgmt_write_scan_failed(struct hci_dev *hdev, u8 scan, u8 status)
4836{ 4844{
4837 u8 mgmt_err = mgmt_status(status); 4845 u8 mgmt_err = mgmt_status(status);