linux/include/net/bluetooth
Johan Hedberg 42c6b129cd Bluetooth: Use async requests internally in hci_req_sync
This patch converts the hci_req_sync() procedure to internaly use the
asynchronous HCI requests.

The hci_req_sync mechanism relies on hci_req_complete() calls from
hci_event.c into hci_core.c whenever a HCI command completes. This is
very similar to what asynchronous requests do and makes the conversion
fairly straight forward by converting hci_req_complete into a request
complete callback. By this change hci_req_complete (renamed to
hci_req_sync_complete) becomes private to hci_core.c and all calls to it
can be removed from hci_event.c.

The commands in each hci_req_sync procedure are collected into their own
request by passing the hci_request pointer to the request callback
(instead of the hci_dev pointer). The one slight exception is the HCI
init request which has the special handling of HCI driver specific
initialization commands. These commands are run in their own request
prior to the "main" init request.

One other extra change that this patch must contain is the handling of
spontaneous HCI reset complete events that some controllers exhibit.
These were previously handled in the hci_req_complete function but the
right place for them now becomes the hci_req_cmd_complete function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
2013-03-08 10:40:27 -03:00
..
a2mp.h Bluetooth: AMP: Use set_bit / test_bit for amp_mgr state 2013-01-09 17:05:05 -02:00
amp.h Bluetooth: AMP: Use l2cap_physical_cfm in phylink complete evt 2012-11-01 20:27:10 -02:00
bluetooth.h Bluetooth: Add initial skeleton for asynchronous HCI requests 2013-03-08 10:40:26 -03:00
hci_core.h Bluetooth: Use async requests internally in hci_req_sync 2013-03-08 10:40:27 -03:00
hci_mon.h
hci.h Bluetooth: Add support for reading LE supported states 2013-01-23 02:09:16 -02:00
l2cap.h Bluetooth: remove an unused variable in a header file 2013-01-09 17:05:05 -02:00
mgmt.h Bluetooth: mgmt: Implement support for passkey notification 2012-09-18 22:27:29 -03:00
rfcomm.h Bluetooth: Remove RFCOMM session refcnt 2013-03-08 10:40:24 -03:00
sco.h
smp.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-09-07 15:07:55 -04:00