diff options
author | Andre Guedes <andre.guedes@openbossa.org> | 2011-05-26 16:23:51 -0300 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2011-07-11 11:59:14 -0700 |
commit | 5df108f14fb99cbb52ff96511f813f19c9fcbaa9 (patch) | |
tree | 8482f4cf3cc1ec9228165647f71c6c5925b757dd | |
parent | 6c77c8c0256e9ae63162d35359c39ede5592d959 (diff) | |
download | kernel_samsung_tuna-5df108f14fb99cbb52ff96511f813f19c9fcbaa9.zip kernel_samsung_tuna-5df108f14fb99cbb52ff96511f813f19c9fcbaa9.tar.gz kernel_samsung_tuna-5df108f14fb99cbb52ff96511f813f19c9fcbaa9.tar.bz2 |
Bluetooth: Add Advertising Report Meta Event handler
This patch adds a function to handle LE Advertising Report Meta
Events.
Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Signed-off-by: Anderson Briglia <anderson.briglia@openbossa.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
-rw-r--r-- | net/bluetooth/hci_event.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index eec5b33..c94b70a 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -2684,6 +2684,27 @@ unlock: hci_dev_unlock(hdev); } +static inline void hci_le_adv_report_evt(struct hci_dev *hdev, + struct sk_buff *skb) +{ + struct hci_ev_le_advertising_info *ev; + u8 num_reports; + + num_reports = skb->data[0]; + ev = (void *) &skb->data[1]; + + hci_dev_lock(hdev); + + hci_add_adv_entry(hdev, ev); + + while (--num_reports) { + ev = (void *) (ev->data + ev->length + 1); + hci_add_adv_entry(hdev, ev); + } + + hci_dev_unlock(hdev); +} + static inline void hci_le_meta_evt(struct hci_dev *hdev, struct sk_buff *skb) { struct hci_ev_le_meta *le_ev = (void *) skb->data; @@ -2695,6 +2716,10 @@ static inline void hci_le_meta_evt(struct hci_dev *hdev, struct sk_buff *skb) hci_le_conn_complete_evt(hdev, skb); break; + case HCI_EV_LE_ADVERTISING_REPORT: + hci_le_adv_report_evt(hdev, skb); + break; + default: break; } |