Bluetooth: AMP: Handle number of compl blocks for AMP_LINK
Add handling blocks count for AMP link. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:
Родитель
42c4e53e7a
Коммит
76ef7cf772
|
@ -2677,6 +2677,27 @@ static void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||||
queue_work(hdev->workqueue, &hdev->tx_work);
|
queue_work(hdev->workqueue, &hdev->tx_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct hci_conn *__hci_conn_lookup_handle(struct hci_dev *hdev,
|
||||||
|
__u16 handle)
|
||||||
|
{
|
||||||
|
struct hci_chan *chan;
|
||||||
|
|
||||||
|
switch (hdev->dev_type) {
|
||||||
|
case HCI_BREDR:
|
||||||
|
return hci_conn_hash_lookup_handle(hdev, handle);
|
||||||
|
case HCI_AMP:
|
||||||
|
chan = hci_chan_lookup_handle(hdev, handle);
|
||||||
|
if (chan)
|
||||||
|
return chan->conn;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
BT_ERR("%s unknown dev_type %d", hdev->name, hdev->dev_type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void hci_num_comp_blocks_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
static void hci_num_comp_blocks_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct hci_ev_num_comp_blocks *ev = (void *) skb->data;
|
struct hci_ev_num_comp_blocks *ev = (void *) skb->data;
|
||||||
|
@ -2698,13 +2719,13 @@ static void hci_num_comp_blocks_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||||
|
|
||||||
for (i = 0; i < ev->num_hndl; i++) {
|
for (i = 0; i < ev->num_hndl; i++) {
|
||||||
struct hci_comp_blocks_info *info = &ev->handles[i];
|
struct hci_comp_blocks_info *info = &ev->handles[i];
|
||||||
struct hci_conn *conn;
|
struct hci_conn *conn = NULL;
|
||||||
__u16 handle, block_count;
|
__u16 handle, block_count;
|
||||||
|
|
||||||
handle = __le16_to_cpu(info->handle);
|
handle = __le16_to_cpu(info->handle);
|
||||||
block_count = __le16_to_cpu(info->blocks);
|
block_count = __le16_to_cpu(info->blocks);
|
||||||
|
|
||||||
conn = hci_conn_hash_lookup_handle(hdev, handle);
|
conn = __hci_conn_lookup_handle(hdev, handle);
|
||||||
if (!conn)
|
if (!conn)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче