diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-20 16:30:44 -0500 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-02-20 17:32:16 -0500 |
commit | f963e8e9d3652f4a8065d969206707a1c21ff9b0 (patch) | |
tree | 712829fed5127bdf2a9b822a48bff52360cd27ac | |
parent | d930650b59be72342bc373ef52006ca99c1dd09e (diff) |
Bluetooth: mgmt: Add address type parameter to Discovering event
This patch adds an address type parameter to the Discovering event. The
value matches that given to Start/Stop Discovery.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | include/net/bluetooth/mgmt.h | 4 | ||||
-rw-r--r-- | net/bluetooth/hci_core.c | 3 | ||||
-rw-r--r-- | net/bluetooth/mgmt.c | 8 |
3 files changed, 11 insertions, 4 deletions
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 870a3deab6ea..1dbadbe14785 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h | |||
@@ -402,6 +402,10 @@ struct mgmt_ev_device_found { | |||
402 | } __packed; | 402 | } __packed; |
403 | 403 | ||
404 | #define MGMT_EV_DISCOVERING 0x0013 | 404 | #define MGMT_EV_DISCOVERING 0x0013 |
405 | struct mgmt_ev_discovering { | ||
406 | __u8 type; | ||
407 | __u8 discovering; | ||
408 | } __packed; | ||
405 | 409 | ||
406 | #define MGMT_EV_DEVICE_BLOCKED 0x0014 | 410 | #define MGMT_EV_DEVICE_BLOCKED 0x0014 |
407 | struct mgmt_ev_device_blocked { | 411 | struct mgmt_ev_device_blocked { |
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index cc52e037440e..a7439aeb1f9b 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -363,10 +363,9 @@ void hci_discovery_set_state(struct hci_dev *hdev, int state) | |||
363 | 363 | ||
364 | switch (state) { | 364 | switch (state) { |
365 | case DISCOVERY_STOPPED: | 365 | case DISCOVERY_STOPPED: |
366 | hdev->discovery.type = 0; | ||
367 | |||
368 | if (hdev->discovery.state != DISCOVERY_STARTING) | 366 | if (hdev->discovery.state != DISCOVERY_STARTING) |
369 | mgmt_discovering(hdev, 0); | 367 | mgmt_discovering(hdev, 0); |
368 | hdev->discovery.type = 0; | ||
370 | break; | 369 | break; |
371 | case DISCOVERY_STARTING: | 370 | case DISCOVERY_STARTING: |
372 | break; | 371 | break; |
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 3db8525b0293..86148b182891 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -3392,6 +3392,7 @@ int mgmt_stop_discovery_failed(struct hci_dev *hdev, u8 status) | |||
3392 | 3392 | ||
3393 | int mgmt_discovering(struct hci_dev *hdev, u8 discovering) | 3393 | int mgmt_discovering(struct hci_dev *hdev, u8 discovering) |
3394 | { | 3394 | { |
3395 | struct mgmt_ev_discovering ev; | ||
3395 | struct pending_cmd *cmd; | 3396 | struct pending_cmd *cmd; |
3396 | 3397 | ||
3397 | BT_DBG("%s discovering %u", hdev->name, discovering); | 3398 | BT_DBG("%s discovering %u", hdev->name, discovering); |
@@ -3409,8 +3410,11 @@ int mgmt_discovering(struct hci_dev *hdev, u8 discovering) | |||
3409 | mgmt_pending_remove(cmd); | 3410 | mgmt_pending_remove(cmd); |
3410 | } | 3411 | } |
3411 | 3412 | ||
3412 | return mgmt_event(MGMT_EV_DISCOVERING, hdev, &discovering, | 3413 | memset(&ev, 0, sizeof(ev)); |
3413 | sizeof(discovering), NULL); | 3414 | ev.type = hdev->discovery.type; |
3415 | ev.discovering = discovering; | ||
3416 | |||
3417 | return mgmt_event(MGMT_EV_DISCOVERING, hdev, &ev, sizeof(ev), NULL); | ||
3414 | } | 3418 | } |
3415 | 3419 | ||
3416 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type) | 3420 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type) |