All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gustavo Padovan <gustavo@padovan.org>
To: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [RFCv2 05/20] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc
Date: Tue, 24 Jul 2012 17:55:54 -0300	[thread overview]
Message-ID: <20120724205554.GD20029@joana> (raw)
In-Reply-To: <1343136121-22476-6-git-send-email-Andrei.Emeltchenko.news@gmail.com>

* Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com> [2012-07-24 16:21:46 +0300]:

> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> 
> When receiving A2MP Get AMP Assoc Request execute Read Local AMP Assoc
> HCI command to AMP controller. If the AMP Assoc data is larger then it
> can fit to HCI event only fragment is read. When all fragments are read
> A2MP Get AMP Assoc Response is run from HCI callback.
> 
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> ---
>  include/net/bluetooth/amp.h      |    2 ++
>  include/net/bluetooth/hci.h      |    2 ++
>  include/net/bluetooth/hci_core.h |    8 +++++
>  net/bluetooth/a2mp.c             |   13 +++++----
>  net/bluetooth/amp.c              |   60 ++++++++++++++++++++++++++++++++++++++
>  net/bluetooth/hci_event.c        |   41 ++++++++++++++++++++++++++
>  6 files changed, 120 insertions(+), 6 deletions(-)
> 
> diff --git a/include/net/bluetooth/amp.h b/include/net/bluetooth/amp.h
> index ec7bea7..e861675 100644
> --- a/include/net/bluetooth/amp.h
> +++ b/include/net/bluetooth/amp.h
> @@ -15,5 +15,7 @@
>  #define __AMP_H
>  
>  void amp_read_loc_info(struct hci_dev *hdev, struct amp_mgr *mgr);
> +void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle);
> +void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr);
>  
>  #endif /* __AMP_H */
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 7f19556..2b19703 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -33,6 +33,8 @@
>  #define HCI_LINK_KEY_SIZE	16
>  #define HCI_AMP_LINK_KEY_SIZE	(2 * HCI_LINK_KEY_SIZE)
>  
> +#define HCI_MAX_AMP_ASSOC_SIZE	672
> +
>  /* HCI dev events */
>  #define HCI_DEV_REG			1
>  #define HCI_DEV_UNREG			2
> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
> index 9626b21..5aea1cc 100644
> --- a/include/net/bluetooth/hci_core.h
> +++ b/include/net/bluetooth/hci_core.h
> @@ -135,6 +135,12 @@ struct hci_cb_cmd {
>  	void (*destructor)(struct hci_dev *hdev, struct hci_cb_cmd *cmd);
>  };
>  
> +struct amp_assoc {
> +	__u16	len;
> +	__u16	offset;
> +	__u8	data[HCI_MAX_AMP_ASSOC_SIZE];
> +};
> +
>  #define NUM_REASSEMBLY 4
>  struct hci_dev {
>  	struct list_head list;
> @@ -188,6 +194,8 @@ struct hci_dev {
>  	__u32		amp_max_flush_to;
>  	__u32		amp_be_flush_to;
>  
> +	struct amp_assoc	loc_assoc;
> +
>  	__u8		flow_ctl_mode;
>  
>  	unsigned int	auto_accept_delay;
> diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
> index df40683..9803f74 100644
> --- a/net/bluetooth/a2mp.c
> +++ b/net/bluetooth/a2mp.c
> @@ -230,15 +230,16 @@ static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb,
>  
>  		a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, hdr->ident, sizeof(rsp),
>  			  &rsp);
> -		goto clean;
> -	}
>  
> -	/* Placeholder for HCI Read AMP Assoc */
> +		if (hdev)
> +			hci_dev_put(hdev);
>  
> -clean:
> -	if (hdev)
> -		hci_dev_put(hdev);
> +		goto done;
> +	}
> +
> +	amp_read_loc_assoc(hdev, mgr);
>  
> +done:
>  	skb_pull(skb, sizeof(*req));
>  	return 0;
>  }
> diff --git a/net/bluetooth/amp.c b/net/bluetooth/amp.c
> index 4aea7be..b76f369 100644
> --- a/net/bluetooth/amp.c
> +++ b/net/bluetooth/amp.c
> @@ -61,3 +61,63 @@ void amp_read_loc_info(struct hci_dev *hdev, struct amp_mgr *mgr)
>  	hci_cmd_cb(hdev, HCI_OP_READ_LOCAL_AMP_INFO, 0, NULL,
>  		   amp_read_loc_info_complete, mgr, cb_destructor, GFP_KERNEL);
>  }
> +
> +void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle)
> +{
> +	struct hci_cp_read_local_amp_assoc cp;
> +	struct amp_assoc *loc_assoc = &hdev->loc_assoc;
> +
> +	BT_DBG("%s handle %d", hdev->name, phy_handle);
> +
> +	cp.phy_handle = phy_handle;
> +	cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
> +	cp.len_so_far = cpu_to_le16(loc_assoc->offset);
> +
> +	hci_send_cmd(hdev, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp);
> +}
> +
> +static void amp_read_loc_assoc_complete(struct hci_dev *hdev,
> +					struct hci_cb_cmd *cmd)
> +{
> +	struct amp_mgr *mgr = cmd->opt;
> +	struct amp_assoc *loc_assoc = &hdev->loc_assoc;
> +	struct a2mp_amp_assoc_rsp *rsp;
> +	size_t len;
> +
> +	BT_DBG("%s cmd %p", hdev->name, cmd);
> +
> +	len = sizeof(struct a2mp_amp_assoc_rsp) + loc_assoc->len;
> +	rsp = kzalloc(len, GFP_KERNEL);
> +	if (!rsp)
> +		return;
> +
> +	rsp->id = hdev->id;
> +
> +	if (cmd->status) {
> +		rsp->status = A2MP_STATUS_INVALID_CTRL_ID;
> +		goto send;
> +	}
> +
> +	rsp->status = A2MP_STATUS_SUCCESS;
> +	memcpy(rsp->amp_assoc, loc_assoc->data, loc_assoc->len);
> +
> +send:
> +	a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, mgr->ident, len, rsp);
> +	kfree(rsp);
> +}
> +
> +void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr)
> +{
> +	struct hci_cp_read_local_amp_assoc cp;
> +
> +	memset(&hdev->loc_assoc, 0, sizeof(struct amp_assoc));
> +	memset(&cp, 0, sizeof(cp));
> +
> +	cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
> +
> +	amp_mgr_get(mgr);
> +
> +	hci_cmd_cb(hdev, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp,
> +		   amp_read_loc_assoc_complete, mgr, cb_destructor,
> +		   GFP_KERNEL);
> +}
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 7222421..a1ad489 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -30,6 +30,7 @@
>  #include <net/bluetooth/bluetooth.h>
>  #include <net/bluetooth/hci_core.h>
>  #include <net/bluetooth/a2mp.h>
> +#include <net/bluetooth/amp.h>
>  
>  /* Handle HCI Event packets */
>  
> @@ -865,6 +866,42 @@ process_cb:
>  	hci_process_cb(hdev, HCI_OP_READ_LOCAL_AMP_INFO, rp->status);
>  }
>  
> +static void hci_cc_read_local_amp_assoc(struct hci_dev *hdev,
> +					struct sk_buff *skb)
> +{
> +	struct hci_rp_read_local_amp_assoc *rp = (void *) skb->data;
> +	struct amp_assoc *assoc = &hdev->loc_assoc;
> +	size_t rem_len, frag_len;
> +
> +	BT_DBG("%s status 0x%2.2x", hdev->name, rp->status);
> +
> +	if (rp->status)
> +		goto process_cb;
> +
> +	frag_len = skb->len - sizeof(*rp);
> +	rem_len = __le16_to_cpu(rp->rem_len);
> +
> +	if (rem_len > frag_len) {
> +		BT_DBG("frag_len %d rem_len %d", frag_len, rem_len);
> +
> +		memcpy(assoc->data + assoc->offset, rp->frag, frag_len);
> +		assoc->offset += frag_len;
> +
> +		/* Read other fragments */
> +		amp_read_loc_assoc_frag(hdev, rp->phy_handle);
> +
> +		return;
> +	}
> +
> +	memcpy(assoc->data + assoc->offset, rp->frag, rem_len);
> +	assoc->len = assoc->offset + rem_len;
> +	assoc->offset = 0;
> +
> +process_cb:
> +	/* Run callback when all fragments received */
> +	hci_process_cb(hdev, HCI_OP_READ_LOCAL_AMP_ASSOC, rp->status);

So, I have a question here, why are we going with this callback system here?
This code and A2MP code runs inside the same module, so why do we need
callbacks? I wonder if switch all of this to directly calls to the A2MP code,
this simplifies things a lot.
Not sure if there was any discussion regarding this when you started this
implementation.

	Gustavo

  reply	other threads:[~2012-07-24 20:55 UTC|newest]

Thread overview: 267+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-29 14:46 [RFCv0 00/19] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 01/19] Bluetooth: Define AMP controller statuses Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 02/19] Bluetooth: Do not shadow hdr variable Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 03/19] Bluetooth: Fix processing A2MP chan in security_cfm Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 04/19] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 05/19] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 06/19] Bluetooth: Add callback clear to ops->teardown Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 07/19] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 08/19] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 09/19] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 10/19] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 11/19] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 12/19] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 13/19] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 14/19] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 15/19] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 16/19] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-07-12 14:30   ` Andrei Emeltchenko
2012-07-12 23:55     ` Mat Martineau
2012-07-13  7:11       ` Andrei Emeltchenko
2012-07-16 20:46         ` Mat Martineau
2012-06-29 14:46 ` [RFCv0 17/19] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 18/19] Bluetooth: AMP: Create phy link after A2MP Assoc rsp Andrei Emeltchenko
2012-06-29 14:46 ` [RFCv0 19/19] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-07-13 13:39 ` [RFCv1 00/20] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 01/20] Bluetooth: Define AMP controller statuses Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 02/20] Bluetooth: Do not shadow hdr variable Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 03/20] Bluetooth: Fix processing A2MP chan in security_cfm Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 04/20] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 05/20] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 06/20] Bluetooth: Add callback clear to ops->teardown Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 07/20] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 08/20] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 09/20] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 10/20] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 11/20] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 12/20] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 13/20] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 14/20] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 15/20] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 16/20] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 17/20] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 18/20] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 19/20] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-07-13 13:39   ` [RFCv1 20/20] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-07-24 13:21 ` [RFCv2 00/20] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 01/20] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-07-24 19:44     ` Gustavo Padovan
2012-07-24 13:21   ` [RFCv2 02/20] Bluetooth: Process HCI callbacks in a workqueue Andrei Emeltchenko
2012-07-24 13:31     ` Oliver Neukum
2012-07-24 13:46       ` Andrei Emeltchenko
2012-07-24 14:15         ` Oliver Neukum
2012-07-24 14:25           ` Andrei Emeltchenko
2012-07-24 20:36     ` Gustavo Padovan
2012-08-13 13:51       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 03/20] Bluetooth: Add callback clear to ops->teardown Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 04/20] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-07-24 20:46     ` Gustavo Padovan
2012-07-25  9:16       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 05/20] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc Andrei Emeltchenko
2012-07-24 20:55     ` Gustavo Padovan [this message]
2012-07-25  8:49       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 06/20] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 07/20] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 08/20] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-07-24 21:13     ` Gustavo Padovan
2012-07-25 11:26       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 09/20] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 10/20] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 11/20] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 12/20] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-07-24 21:10     ` Gustavo Padovan
2012-08-10 12:50       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 13/20] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-07-24 21:16     ` Gustavo Padovan
2012-07-24 13:21   ` [RFCv2 14/20] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-07-24 21:29     ` Gustavo Padovan
2012-07-25  9:12       ` Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 15/20] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 16/20] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 17/20] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-07-24 13:21   ` [RFCv2 18/20] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-07-24 13:22   ` [RFCv2 19/20] Bluetooth: AMP: Process physical link complete event Andrei Emeltchenko
2012-07-24 13:22   ` [RFCv2 20/20] Bluetooth: AMP: Send Create Chan Req Andrei Emeltchenko
2012-08-13 13:50 ` [RFCv3 00/20] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 01/20] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 02/20] Bluetooth: Add callback clear to ops->teardown Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 03/20] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 04/20] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 05/20] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 06/20] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 07/20] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 08/20] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 09/20] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 10/20] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 11/20] Bluetooth: A2MP: Create A2MP workqueue Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 12/20] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 13/20] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 14/20] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 15/20] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 16/20] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 17/20] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 18/20] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 19/20] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-08-13 13:50   ` [RFCv3 20/20] Bluetooth: AMP: Process physical link complete event Andrei Emeltchenko
2012-08-17 14:32 ` [PATCHv1 00/26] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-08-17 14:32   ` [PATCHv1 01/26] Bluetooth: debug: Print refcnt for hci_dev Andrei Emeltchenko
2012-08-17 14:32   ` [PATCHv1 02/26] Bluetooth: trivial: Remove empty line Andrei Emeltchenko
2012-08-17 14:32   ` [PATCHv1 03/26] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-08-17 14:32   ` [PATCHv1 04/26] Bluetooth: General HCI callback implementation Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 05/26] Bluetooth: Add callback clear to ops->teardown Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 06/26] Bluetooth: AMP: Use HCI callback for Read AMP Info Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 07/26] Bluetooth: AMP: Use HCI callback to Read Loc AMP Assoc Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 08/26] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 09/26] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 10/26] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 11/26] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 12/26] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 13/26] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 14/26] Bluetooth: A2MP: Create A2MP workqueue Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 15/26] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 16/26] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 17/26] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 18/26] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 19/26] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 20/26] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 21/26] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 22/26] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 23/26] Bluetooth: AMP: Process physical link complete event Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 24/26] Bluetooth: AMP: Send Create Chan Req Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 25/26] Bluetooth: Set Exended Flowspec flag for HS chan Andrei Emeltchenko
2012-08-17 14:33   ` [PATCHv1 26/26] Bluetooth: Add logical link create function Andrei Emeltchenko
2012-08-24 13:59 ` [PATCHv2 00/22] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 01/22] Bluetooth: debug: Print refcnt for hci_dev Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 02/22] Bluetooth: trivial: Remove empty line Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 03/22] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 04/22] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 05/22] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 06/22] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 07/22] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 08/22] Bluetooth: AMP: Physical link struct definitions Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 09/22] Bluetooth: Add phylink lookup helper function Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 10/22] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 11/22] Bluetooth: AMP: Use phylink in create/disc phylink req Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 12/22] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 13/22] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 14/22] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 15/22] Bluetooth: Close A2MP chan when deleting corr L2CAP chan Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 16/22] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 17/22] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 18/22] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 19/22] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 20/22] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 21/22] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-08-24 14:00   ` [PATCHv2 22/22] Bluetooth: AMP: Process physical link complete event Andrei Emeltchenko
2012-09-06 12:19 ` [PATCHv3 00/19] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 01/19] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 02/19] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 03/19] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 04/19] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 05/19] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 06/19] Bluetooth: AMP: Physical link struct and heplers Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 07/19] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 08/19] Bluetooth: AMP: Handle create / disc phylink req Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 09/19] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 10/19] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 11/19] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 12/19] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 13/19] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 14/19] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 15/19] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 16/19] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 17/19] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 18/19] Bluetooth: AMP: Send Create Chan Req Andrei Emeltchenko
2012-09-06 12:19   ` [PATCHv3 19/19] Bluetooth: AMP: Process physical link complete event Andrei Emeltchenko
2012-09-11 18:23   ` [PATCHv3 00/19] Bluetooth: Create AMP physical link Mat Martineau
2012-09-12  8:06     ` [PATCHv4 00/17] " Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 01/17] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 02/17] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-09-13 15:02         ` Mat Martineau
2012-09-14  6:40           ` Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 03/17] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 04/17] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-09-13 15:28         ` Mat Martineau
2012-09-14  6:58           ` Andrei Emeltchenko
2012-09-14 15:42             ` Mat Martineau
2012-09-12  8:06       ` [PATCHv4 05/17] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 06/17] Bluetooth: AMP: Physical link struct and heplers Andrei Emeltchenko
2012-09-13 15:40         ` Mat Martineau
2012-09-14  7:50           ` Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 07/17] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-09-13 15:50         ` Mat Martineau
2012-09-14  9:56           ` Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 08/17] Bluetooth: AMP: Handle create / disc phylink req Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 09/17] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 10/17] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 11/17] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-09-13 16:26         ` Mat Martineau
2012-09-14  9:57           ` Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 12/17] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 13/17] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 14/17] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 15/17] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 16/17] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-09-13 16:39         ` Mat Martineau
2012-09-14 10:29           ` Andrei Emeltchenko
2012-09-12  8:06       ` [PATCHv4 17/17] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-09-17 13:24       ` [PATCHv5 00/17] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 01/17] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 02/17] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-09-18  7:43           ` Marcel Holtmann
2012-09-18  8:45             ` Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 03/17] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 04/17] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 05/17] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 06/17] Bluetooth: AMP: Physical link struct and heplers Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 07/17] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 08/17] Bluetooth: AMP: Handle create / disc phylink req Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 09/17] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 10/17] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 11/17] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 12/17] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 13/17] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 14/17] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 15/17] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 16/17] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-09-17 13:24         ` [PATCHv5 17/17] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-09-18 14:28       ` [PATCHv6 00/17] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 01/17] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 02/17] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 03/17] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 04/17] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 05/17] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 06/17] Bluetooth: AMP: Physical link struct and heplers Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 07/17] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 08/17] Bluetooth: AMP: Handle create / disc phylink req Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 09/17] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 10/17] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 11/17] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 12/17] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 13/17] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 14/17] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 15/17] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 16/17] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-09-18 14:28         ` [PATCHv6 17/17] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-09-20 11:01         ` [PATCHv6 00/17] Bluetooth: Create AMP physical link Andrei Emeltchenko
2012-09-27 14:26       ` [PATCHv7 00/19] " Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 01/19] Bluetooth: Add HCI logical link cmds definitions Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 02/19] Bluetooth: A2MP: Create amp_mgr global list Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 03/19] Bluetooth: AMP: Use HCI cmd to Read AMP Info Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 04/19] Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 05/19] Bluetooth: A2MP: Process Discover Response Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 06/19] Bluetooth: AMP: Physical link struct and heplers Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 07/19] Bluetooth: AMP: Remote AMP ctrl definitions Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 08/19] Bluetooth: AMP: Handle create / disc phylink req Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 09/19] Bluetooth: A2MP: Process A2MP Getinfo Rsp Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 10/19] Bluetooth: A2MP: Process A2MP Get AMP Assoc Rsp Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 11/19] Bluetooth: Choose connection based on capabilities Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 12/19] Bluetooth: Add function to derive AMP key using hmac Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 13/19] Bluetooth: AMP: Add AMP key calculation Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 14/19] Bluetooth: AMP: Create Physical Link Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 15/19] Bluetooth: AMP: Write remote AMP Assoc Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 16/19] Bluetooth: A2MP: Add fallback to normal l2cap init sequence Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 17/19] Bluetooth: AMP: Process Chan Selected event Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 18/19] Bluetooth: AMP: Accept Physical Link Andrei Emeltchenko
2012-09-27 14:26         ` [PATCHv7 19/19] Bluetooth: AMP: Handle Accept phylink command status evt Andrei Emeltchenko
2012-09-27 20:44         ` [PATCHv7 00/19] Bluetooth: Create AMP physical link Gustavo Padovan

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=20120724205554.GD20029@joana \
    --to=gustavo@padovan.org \
    --cc=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.