* [PATCH 1/2] Bluetooth: Factor out hci_queue_acl @ 2012-09-21 9:30 Andrei Emeltchenko 2012-09-21 9:30 ` [PATCH 2/2] Bluetooth: Factor out Create Configuration Response Andrei Emeltchenko 0 siblings, 1 reply; 3+ messages in thread From: Andrei Emeltchenko @ 2012-09-21 9:30 UTC (permalink / raw) To: linux-bluetooth; +Cc: gustavo, johan.hedberg From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Use hci_chan as parameter instead of hci_conn as we need logical handle from hci_chan for AMP link. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> --- net/bluetooth/hci_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index e407051..3588f31 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -2151,9 +2151,10 @@ static void hci_add_acl_hdr(struct sk_buff *skb, __u16 handle, __u16 flags) hdr->dlen = cpu_to_le16(len); } -static void hci_queue_acl(struct hci_conn *conn, struct sk_buff_head *queue, +static void hci_queue_acl(struct hci_chan *chan, struct sk_buff_head *queue, struct sk_buff *skb, __u16 flags) { + struct hci_conn *conn = chan->conn; struct hci_dev *hdev = conn->hdev; struct sk_buff *list; @@ -2200,14 +2201,13 @@ static void hci_queue_acl(struct hci_conn *conn, struct sk_buff_head *queue, void hci_send_acl(struct hci_chan *chan, struct sk_buff *skb, __u16 flags) { - struct hci_conn *conn = chan->conn; - struct hci_dev *hdev = conn->hdev; + struct hci_dev *hdev = chan->conn->hdev; BT_DBG("%s chan %p flags 0x%4.4x", hdev->name, chan, flags); skb->dev = (void *) hdev; - hci_queue_acl(conn, &chan->data_q, skb, flags); + hci_queue_acl(chan, &chan->data_q, skb, flags); queue_work(hdev->workqueue, &hdev->tx_work); } -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] Bluetooth: Factor out Create Configuration Response 2012-09-21 9:30 [PATCH 1/2] Bluetooth: Factor out hci_queue_acl Andrei Emeltchenko @ 2012-09-21 9:30 ` Andrei Emeltchenko 2012-09-27 21:14 ` Gustavo Padovan 0 siblings, 1 reply; 3+ messages in thread From: Andrei Emeltchenko @ 2012-09-21 9:30 UTC (permalink / raw) To: linux-bluetooth; +Cc: gustavo, johan.hedberg From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Use function to factor out similar code. For BR/EDR send EFS Configuration Response immediately, for HS response will be sent after receiving HCI Logical Link Complete event in the following patches. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> --- net/bluetooth/l2cap_core.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 9732f03..d43128f 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@ -3557,6 +3557,22 @@ static inline void set_default_fcs(struct l2cap_chan *chan) chan->fcs = L2CAP_FCS_CRC16; } +static void l2cap_send_efs_conf_rsp(struct l2cap_chan *chan, void *data, + u8 ident, u16 flags) +{ + struct l2cap_conn *conn = chan->conn; + + BT_DBG("conn %p chan %p ident %d flags 0x%4.4x", conn, chan, ident, + flags); + + clear_bit(CONF_LOC_CONF_PEND, &chan->conf_state); + set_bit(CONF_OUTPUT_DONE, &chan->conf_state); + + l2cap_send_cmd(conn, ident, L2CAP_CONF_RSP, + l2cap_build_conf_rsp(chan, data, + L2CAP_CONF_SUCCESS, flags), data); +} + static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd, u16 cmd_len, u8 *data) { struct l2cap_conf_req *req = (struct l2cap_conf_req *) data; @@ -3648,16 +3664,11 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr /* Got Conf Rsp PENDING from remote side and asume we sent Conf Rsp PENDING in the code above */ if (test_bit(CONF_REM_CONF_PEND, &chan->conf_state) && - test_bit(CONF_LOC_CONF_PEND, &chan->conf_state)) { + test_bit(CONF_LOC_CONF_PEND, &chan->conf_state)) { /* check compatibility */ - clear_bit(CONF_LOC_CONF_PEND, &chan->conf_state); - set_bit(CONF_OUTPUT_DONE, &chan->conf_state); - - l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, - l2cap_build_conf_rsp(chan, rsp, - L2CAP_CONF_SUCCESS, flags), rsp); + l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags); } unlock: @@ -3705,12 +3716,7 @@ static inline int l2cap_config_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr /* check compatibility */ - clear_bit(CONF_LOC_CONF_PEND, &chan->conf_state); - set_bit(CONF_OUTPUT_DONE, &chan->conf_state); - - l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, - l2cap_build_conf_rsp(chan, buf, - L2CAP_CONF_SUCCESS, 0x0000), buf); + l2cap_send_efs_conf_rsp(chan, buf, cmd->ident, 0); } goto done; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] Bluetooth: Factor out Create Configuration Response 2012-09-21 9:30 ` [PATCH 2/2] Bluetooth: Factor out Create Configuration Response Andrei Emeltchenko @ 2012-09-27 21:14 ` Gustavo Padovan 0 siblings, 0 replies; 3+ messages in thread From: Gustavo Padovan @ 2012-09-27 21:14 UTC (permalink / raw) To: Andrei Emeltchenko; +Cc: linux-bluetooth, johan.hedberg Hi Andrei, * Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com> [2012-09-21 12:30:05 +0300]: > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com> > > Use function to factor out similar code. For BR/EDR send EFS > Configuration Response immediately, for HS response will be sent > after receiving HCI Logical Link Complete event in the following > patches. > > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> > --- > net/bluetooth/l2cap_core.c | 32 +++++++++++++++++++------------- > 1 file changed, 19 insertions(+), 13 deletions(-) Both patch have been applied to bluetooth-next. Thanks. Gustavo ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-09-27 21:14 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-21 9:30 [PATCH 1/2] Bluetooth: Factor out hci_queue_acl Andrei Emeltchenko 2012-09-21 9:30 ` [PATCH 2/2] Bluetooth: Factor out Create Configuration Response Andrei Emeltchenko 2012-09-27 21:14 ` Gustavo Padovan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).