linux/net/bluetooth
Marcel Holtmann 6a98e3836f Bluetooth: Add helper for serialized HCI command execution
The usage of __hci_cmd_sync() within the hdev->setup() callback allows for
a nice and simple serialized execution of HCI commands. More importantly
it allows for result processing before issueing the next command.

With the current usage of hci_req_run() it is possible to batch up
commands and execute them, but it is impossible to react to their
results or errors.

This is an attempt to generalize the hdev->setup() handling and provide
a simple way of running multiple HCI commands from a single function
context.

There are multiple struct work that are decdicated to certain tasks
already used right now. It is add a lot of bloat to hci_dev struct and
extra handling code. So it might be possible to put all of these behind
a common HCI command infrastructure and just execute the HCI commands
from the same work context in a serialized fashion.

For example updating the white list and resolving list can be done now
without having to know the list size ahead of time. Also preparing for
suspend or resume shouldn't require a state machine anymore. There are
other tasks that should be simplified as well.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2021-10-29 16:51:58 +02:00
..
bnep Bluetooth: bnep: Use the correct print format 2021-06-26 07:12:40 +02:00
cmtp Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails 2021-10-25 15:02:04 +02:00
hidp Bluetooth: hidp: Use the correct print format 2021-06-26 07:12:40 +02:00
rfcomm bluetooth-next pull request for net-next: 2021-10-05 07:41:16 -07:00
6lowpan.c Bluetooth: 6lowpan: Use the correct print format 2021-06-26 07:12:41 +02:00
a2mp.c Bluetooth: a2mp: Use the correct print format 2021-06-26 07:12:41 +02:00
a2mp.h Bluetooth: Replace zero-length array with flexible-array member 2020-02-28 08:30:02 +01:00
af_bluetooth.c Bluetooth: fix indentation and alignment reported by checkpatch 2021-01-29 16:51:45 +01:00
amp.c Bluetooth: amp: Use the correct print format 2021-06-26 07:12:41 +02:00
amp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
aosp.c Bluetooth: Add support for reading AOSP vendor capabilities 2021-04-06 14:11:23 -07:00
aosp.h Bluetooth: Add support for reading AOSP vendor capabilities 2021-04-06 14:11:23 -07:00
ecdh_helper.c crypto: ecdh - move curve_id of ECDH from the key to algorithm name 2021-03-13 00:04:03 +11:00
ecdh_helper.h Fix misc new gcc warnings 2021-04-27 17:05:53 -07:00
eir.c Bluetooth: eir: Move EIR/Adv Data functions to its own file 2021-09-21 10:37:33 +02:00
eir.h Bluetooth: eir: Move EIR/Adv Data functions to its own file 2021-09-21 10:37:33 +02:00
hci_codec.c Bluetooth: Read codec capabilities only if supported 2021-10-07 17:57:22 +02:00
hci_codec.h Bluetooth: Add support for Read Local Supported Codecs V2 2021-09-07 14:09:18 -07:00
hci_conn.c Bluetooth: Add support for msbc coding format 2021-09-07 14:09:18 -07:00
hci_core.c Bluetooth: Add helper for serialized HCI command execution 2021-10-29 16:51:58 +02:00
hci_debugfs.c Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c 2021-09-22 16:17:13 +02:00
hci_debugfs.h Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c 2021-09-22 16:17:13 +02:00
hci_event.c Bluetooth: Fix removing adv when processing cmd complete 2021-10-28 15:11:04 -07:00
hci_request.c Bluetooth: Add helper for serialized HCI command execution 2021-10-29 16:51:58 +02:00
hci_request.h Bluetooth: Add helper for serialized HCI command execution 2021-10-29 16:51:58 +02:00
hci_sock.c Bluetooth: hci_sock: purge socket queues in the destruct() callback 2021-10-12 17:30:17 +02:00
hci_sync.c Bluetooth: Add helper for serialized HCI command execution 2021-10-29 16:51:58 +02:00
hci_sysfs.c Bluetooth: Fix memory leak of hci device 2021-10-13 14:31:50 +02:00
Kconfig Bluetooth: Add support for reading AOSP vendor capabilities 2021-04-06 14:11:23 -07:00
l2cap_core.c Bluetooth: Fix using RPA when address has been resolved 2021-08-30 23:14:55 +02:00
l2cap_sock.c Bluetooth: L2CAP: Fix not initializing sk_peer_pid 2021-10-12 17:31:43 +02:00
leds.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lib.c Bluetooth: Introduce debug feature when dynamic debug is disabled 2020-05-11 12:16:27 +02:00
Makefile Bluetooth: Add helper for serialized HCI command execution 2021-10-29 16:51:58 +02:00
mgmt_config.c Bluetooth: mgmt: Use the correct print format 2021-06-26 07:12:42 +02:00
mgmt_config.h Bluetooth: mgmt: Add commands for runtime configuration 2020-06-18 13:11:03 +03:00
mgmt_util.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
mgmt_util.h
mgmt.c Bluetooth: mgmt: Fix Experimental Feature Changed event 2021-10-07 17:57:23 +02:00
msft.c Bluetooth: Fix Advertisement Monitor Suspend/Resume 2021-09-28 10:01:35 +02:00
msft.h Bluetooth: Fix Advertisement Monitor Suspend/Resume 2021-09-28 10:01:35 +02:00
sco.c Bluetooth: SCO: Fix sco_send_frame returning skb->len 2021-09-21 10:44:52 +02:00
selftest.c crypto: ecdh - move curve_id of ECDH from the key to algorithm name 2021-03-13 00:04:03 +11:00
selftest.h
smp.c Bluetooth: use inclusive language in HCI role comments 2021-06-26 07:12:43 +02:00
smp.h Bluetooth: use inclusive language in SMP 2021-06-26 07:12:37 +02:00