All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
To: linux-bluetooth@vger.kernel.org
Subject: [RFCv7 00/23] RFC Bluetooth A2MP implementation
Date: Fri, 20 Apr 2012 14:09:28 +0300	[thread overview]
Message-ID: <1334920191-29308-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> (raw)
In-Reply-To: <1332519246-16656-27-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Basic A2MP implementation, callback interface to HCI and several usages of the interface.

Changes:
	* RFCv7: Taking comments from review in linux-bluetooth.
	* RFCv6: Remove some unneded check for sk since they are in different path
	(A2MP decoded as a data channel wrt L2CAP signalling channel). Style fixes.
	* RFCv5: Fix memory leaks, sparse warnings and taking comments from upstream.
	* RFCv4: redesign code to use l2cap channel lock instead of socket lock
	and general modifications. Basic implementation of HCI callback interface.
	* RFCv3: redesign code to use l2cap functions instead of kernel sockets
	L2CAP functions modified to work with channels without sk.
	* RFCv2: rebased against "workqueue" patches.
	* RFCv1: added refcnt to amp_mgr, fixed sleeping in atomic

Initially code was based of reference implementations below:

References: Code Aurora (git://codeaurora.org/kernel/msm.git) and Atheros
(search for: [PATCH 2/3] Add a2mp protocol/AMP manager, by Atheros Linux BT3)
implementations.

Andrei Emeltchenko (23):
  Bluetooth: A2MP: Create A2MP channel
  Bluetooth: A2MP: AMP Manager basic functions
  Bluetooth: A2MP: Build and Send msg helpers
  Bluetooth: A2MP: Add chan callbacks
  Bluetooth: A2MP: Definitions for A2MP commands
  Bluetooth: A2MP: Define A2MP status codes
  Bluetooth: A2MP: Process A2MP messages
  Bluetooth: A2MP: Process A2MP Command Reject
  Bluetooth: A2MP: Process A2MP Discover Request
  Bluetooth: A2MP: Process A2MP Change Notify
  Bluetooth: A2MP: Process A2MP Get Info Request
  Bluetooth: A2MP: Process A2MP Get AMP Assoc Request
  Bluetooth: A2MP: Process A2MP Create Physlink Request
  Bluetooth: A2MP: Process A2MP Disc Physlink Request
  Bluetooth: A2MP: Process A2MP Command Responses
  Bluetooth: A2MP: Handling fixed channels
  Bluetooth: A2MP: Manage incoming connections
  Bluetooth: physical link HCI interface to AMP
  Bluetooth: Define AMP controller statuses
  Bluetooth: General HCI callback implementation
  Bluetooth: Process HCI callbacks in a workqueue
  Bluetooth: AMP: Use HCI callback for Read AMP Info
  Bluetooth: AMP: Read Local Assoc support

 include/net/bluetooth/a2mp.h     |  129 +++++++++
 include/net/bluetooth/amp.h      |   21 ++
 include/net/bluetooth/hci.h      |   51 ++++
 include/net/bluetooth/hci_core.h |   44 +++
 include/net/bluetooth/l2cap.h    |    6 +
 net/bluetooth/Makefile           |    3 +-
 net/bluetooth/a2mp.c             |  559 ++++++++++++++++++++++++++++++++++++++
 net/bluetooth/amp.c              |  108 ++++++++
 net/bluetooth/hci_conn.c         |   15 +
 net/bluetooth/hci_core.c         |  168 ++++++++++++
 net/bluetooth/hci_event.c        |   57 +++-
 net/bluetooth/l2cap_core.c       |   34 ++-
 12 files changed, 1184 insertions(+), 11 deletions(-)
 create mode 100644 include/net/bluetooth/a2mp.h
 create mode 100644 include/net/bluetooth/amp.h
 create mode 100644 net/bluetooth/a2mp.c
 create mode 100644 net/bluetooth/amp.c

-- 
1.7.9.5


  parent reply	other threads:[~2012-04-20 11:09 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-23 16:13 [RFCv5 00/26] RFC Bluetooth A2MP implementation Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 01/26] Bluetooth: Add set_err to state_change callback Andrei Emeltchenko
2012-03-25 16:48   ` Gustavo Padovan
2012-03-23 16:13 ` [RFCv5 02/26] Bluetooth: Lock sk only if exist in state_change Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 03/26] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-03-25 17:12   ` Gustavo Padovan
2012-03-26  9:27     ` Andrei Emeltchenko
2012-03-27 15:54       ` Gustavo Padovan
2012-03-23 16:13 ` [RFCv5 04/26] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 05/26] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 06/26] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-03-25 17:16   ` Gustavo Padovan
2012-03-26 11:59     ` Andrei Emeltchenko
2012-03-27 16:06       ` Gustavo Padovan
2012-03-23 16:13 ` [RFCv5 07/26] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 08/26] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 09/26] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 10/26] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 11/26] Bluetooth: A2MP: Helper functions to count HCI devs Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 12/26] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 13/26] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 14/26] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 15/26] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 16/26] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 17/26] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 18/26] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-03-23 16:13 ` [RFCv5 19/26] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 20/26] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 21/26] Bluetooth: physical link HCI interface to AMP Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 22/26] Bluetooth: Define AMP controller statuses Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 23/26] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 24/26] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 25/26] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-03-23 16:14 ` [RFCv5 26/26] Bluetooth: AMP: Read Local Assoc support Andrei Emeltchenko
2012-03-28 13:31   ` [RFCv6 00/26] RFC Bluetooth A2MP implementation Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 01/26] Bluetooth: Add Read Local AMP Info to init Andrei Emeltchenko
2012-04-06 22:38       ` Gustavo Padovan
2012-03-28 13:31     ` [RFCv6 02/26] Bluetooth: Adds set_default function in L2CAP setup Andrei Emeltchenko
2012-04-06 22:39       ` Gustavo Padovan
2012-03-28 13:31     ` [RFCv6 03/26] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 04/26] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 05/26] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-04-06 22:44       ` Gustavo Padovan
2012-04-11 13:33         ` Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 06/26] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-04-06 23:20       ` Gustavo Padovan
2012-04-12  8:00         ` Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 07/26] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 08/26] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 09/26] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 10/26] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-04-06 23:23       ` Gustavo Padovan
2012-04-12  8:06         ` Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 11/26] Bluetooth: A2MP: Helper functions to count HCI devs Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 12/26] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-04-06 23:55       ` Gustavo Padovan
2012-03-28 13:31     ` [RFCv6 13/26] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 14/26] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 15/26] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 16/26] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 17/26] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 18/26] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 19/26] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 20/26] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 21/26] Bluetooth: physical link HCI interface to AMP Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 22/26] Bluetooth: Define AMP controller statuses Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 23/26] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 24/26] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 25/26] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-03-28 13:31     ` [RFCv6 26/26] Bluetooth: AMP: Read Local Assoc support Andrei Emeltchenko
2012-04-20 11:09   ` Andrei Emeltchenko [this message]
2012-04-20 11:09     ` [RFCv7 01/23] Bluetooth: A2MP: Create A2MP channel Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 02/23] Bluetooth: A2MP: AMP Manager basic functions Andrei Emeltchenko
2012-04-20 14:51       ` Ulisses Furquim
2012-04-23  7:22         ` Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 03/23] Bluetooth: A2MP: Build and Send msg helpers Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 04/23] Bluetooth: A2MP: Add chan callbacks Andrei Emeltchenko
2012-04-20 14:09       ` Ulisses Furquim
2012-04-23  7:26         ` Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 05/23] Bluetooth: A2MP: Definitions for A2MP commands Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 06/23] Bluetooth: A2MP: Define A2MP status codes Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 07/23] Bluetooth: A2MP: Process A2MP messages Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 08/23] Bluetooth: A2MP: Process A2MP Command Reject Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 09/23] Bluetooth: A2MP: Process A2MP Discover Request Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 10/23] Bluetooth: A2MP: Process A2MP Change Notify Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 11/23] Bluetooth: A2MP: Process A2MP Get Info Request Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 12/23] Bluetooth: A2MP: Process A2MP Get AMP Assoc Request Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 13/23] Bluetooth: A2MP: Process A2MP Create Physlink Request Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 14/23] Bluetooth: A2MP: Process A2MP Disc " Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 15/23] Bluetooth: A2MP: Process A2MP Command Responses Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 16/23] Bluetooth: A2MP: Handling fixed channels Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 17/23] Bluetooth: A2MP: Manage incoming connections Andrei Emeltchenko
2012-04-25 19:58       ` Gustavo Padovan
2012-04-26  8:29         ` Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 18/23] Bluetooth: physical link HCI interface to AMP Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 19/23] Bluetooth: Define AMP controller statuses Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 20/23] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 21/23] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 22/23] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-04-20 11:09     ` [RFCv7 23/23] Bluetooth: AMP: Read Local Assoc support Andrei Emeltchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1334920191-29308-1-git-send-email-Andrei.Emeltchenko.news@gmail.com \
    --to=andrei.emeltchenko.news@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.