* [RFCv1 0/6] AMP/BREDR initialization patches
@ 2011-11-24 12:51 Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 1/6] Bluetooth: remove old code Emeltchenko Andrei
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:51 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
RFC for AMP init and block flow control code.
Resubmit "remove old code" patch as it seems that there is little
sense to copy it over.
Marcel is it OK? Otherwise I can copy-paste those commented lines to new
functions.
Andrei Emeltchenko (6):
Bluetooth: remove old code
Bluetooth: Split ctrl init to BREDR and AMP parts
Bluetooth: Add HCI Read Flow Control Mode function
Bluetooth: Initialize default flow control mode
Bluetooth: Add HCI Read Data Block Size function
Bluetooth: Recalculate sched for HCI block flow ctrl
include/net/bluetooth/hci.h | 18 +++++++
include/net/bluetooth/hci_core.h | 4 ++
net/bluetooth/hci_core.c | 103 +++++++++++++++++++++++++------------
net/bluetooth/hci_event.c | 53 +++++++++++++++++++
4 files changed, 144 insertions(+), 34 deletions(-)
--
1.7.4.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFCv1 1/6] Bluetooth: remove old code
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts Emeltchenko Andrei
` (4 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Remove old code not touched for several years.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
---
net/bluetooth/hci_core.c | 12 ------------
1 files changed, 0 insertions(+), 12 deletions(-)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index ef0423e..bc71f96 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -230,18 +230,6 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
/* Read Buffer Size (ACL mtu, max pkt, etc.) */
hci_send_cmd(hdev, HCI_OP_READ_BUFFER_SIZE, 0, NULL);
-#if 0
- /* Host buffer size */
- {
- struct hci_cp_host_buffer_size cp;
- cp.acl_mtu = cpu_to_le16(HCI_MAX_ACL_SIZE);
- cp.sco_mtu = HCI_MAX_SCO_SIZE;
- cp.acl_max_pkt = cpu_to_le16(0xffff);
- cp.sco_max_pkt = cpu_to_le16(0xffff);
- hci_send_cmd(hdev, HCI_OP_HOST_BUFFER_SIZE, sizeof(cp), &cp);
- }
-#endif
-
/* Read BD Address */
hci_send_cmd(hdev, HCI_OP_READ_BD_ADDR, 0, NULL);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 1/6] Bluetooth: remove old code Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
2011-11-25 12:00 ` Marcel Holtmann
2011-12-02 11:50 ` Gustavo Padovan
2011-11-24 12:52 ` [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function Emeltchenko Andrei
` (3 subsequent siblings)
5 siblings, 2 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Current controller initialization is moved tp bredr_init and new
function added amp_init to handle later AMP init sequence. Current
AMP init sequence include Reset and Read Local Version.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
net/bluetooth/hci_core.c | 64 ++++++++++++++++++++++++++++++++------------
net/bluetooth/hci_event.c | 3 ++
2 files changed, 49 insertions(+), 18 deletions(-)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index bc71f96..a0247d3 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -192,33 +192,18 @@ static void hci_reset_req(struct hci_dev *hdev, unsigned long opt)
hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
}
-static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
+static void bredr_init(struct hci_dev *hdev)
{
struct hci_cp_delete_stored_link_key cp;
- struct sk_buff *skb;
__le16 param;
__u8 flt_type;
- BT_DBG("%s %ld", hdev->name, opt);
-
- /* Driver initialization */
-
- /* Special commands */
- while ((skb = skb_dequeue(&hdev->driver_init))) {
- bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
- skb->dev = (void *) hdev;
-
- skb_queue_tail(&hdev->cmd_q, skb);
- tasklet_schedule(&hdev->cmd_task);
- }
- skb_queue_purge(&hdev->driver_init);
-
/* Mandatory initialization */
/* Reset */
if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) {
- set_bit(HCI_RESET, &hdev->flags);
- hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
+ set_bit(HCI_RESET, &hdev->flags);
+ hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
}
/* Read Local Supported Features */
@@ -257,6 +242,49 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
hci_send_cmd(hdev, HCI_OP_DELETE_STORED_LINK_KEY, sizeof(cp), &cp);
}
+static void amp_init(struct hci_dev *hdev)
+{
+ /* Reset */
+ hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
+
+ /* Read Local Version */
+ hci_send_cmd(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL);
+}
+
+static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
+{
+ struct sk_buff *skb;
+
+ BT_DBG("%s %ld", hdev->name, opt);
+
+ /* Driver initialization */
+
+ /* Special commands */
+ while ((skb = skb_dequeue(&hdev->driver_init))) {
+ bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
+ skb->dev = (void *) hdev;
+
+ skb_queue_tail(&hdev->cmd_q, skb);
+ tasklet_schedule(&hdev->cmd_task);
+ }
+ skb_queue_purge(&hdev->driver_init);
+
+ switch (hdev->dev_type) {
+ case HCI_BREDR:
+ bredr_init(hdev);
+ break;
+
+ case HCI_AMP:
+ amp_init(hdev);
+ break;
+
+ default:
+ BT_ERR("Unknown device type %d", hdev->dev_type);
+ break;
+ }
+
+}
+
static void hci_le_init_req(struct hci_dev *hdev, unsigned long opt)
{
BT_DBG("%s", hdev->name);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 60651fa..2e423eb 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -560,6 +560,9 @@ static void hci_set_le_support(struct hci_dev *hdev)
static void hci_setup(struct hci_dev *hdev)
{
+ if (hdev->dev_type != HCI_BREDR)
+ return;
+
hci_setup_event_mask(hdev);
if (hdev->hci_ver > BLUETOOTH_VER_1_1)
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 1/6] Bluetooth: remove old code Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
2011-11-25 12:01 ` Marcel Holtmann
2011-11-24 12:52 ` [RFCv1 4/6] Bluetooth: Initialize default flow control mode Emeltchenko Andrei
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Upstream Code Aurora function with minor trivial fixes.
Origin: git://codeaurora.org/kernel/msm.git
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
include/net/bluetooth/hci.h | 6 ++++++
include/net/bluetooth/hci_core.h | 2 ++
net/bluetooth/hci_event.c | 19 +++++++++++++++++++
3 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 376c574..ee83c36 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -677,6 +677,12 @@ struct hci_rp_read_local_oob_data {
#define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58
+#define HCI_OP_READ_FLOW_CONTROL_MODE 0x0c66
+struct hci_rp_read_flow_control_mode {
+ __u8 status;
+ __u8 mode;
+} __packed;
+
#define HCI_OP_WRITE_LE_HOST_SUPPORTED 0x0c6d
struct hci_cp_write_le_host_supported {
__u8 le;
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 1795257..a7fd63a 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -170,6 +170,8 @@ struct hci_dev {
__u32 amp_max_flush_to;
__u32 amp_be_flush_to;
+ __u8 flow_ctl_mode;
+
unsigned int auto_accept_delay;
unsigned long quirks;
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 2e423eb..53e56b4 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -720,6 +720,21 @@ static void hci_cc_read_local_ext_features(struct hci_dev *hdev,
hci_req_complete(hdev, HCI_OP_READ_LOCAL_EXT_FEATURES, rp->status);
}
+static void hci_cc_read_flow_control_mode(struct hci_dev *hdev,
+ struct sk_buff *skb)
+{
+ struct hci_rp_read_flow_control_mode *rp = (void *) skb->data;
+
+ BT_DBG("%s status 0x%x", hdev->name, rp->status);
+
+ if (rp->status)
+ return;
+
+ hdev->flow_ctl_mode = rp->mode;
+
+ hci_req_complete(hdev, HCI_OP_READ_FLOW_CONTROL_MODE, rp->status);
+}
+
static void hci_cc_read_buffer_size(struct hci_dev *hdev, struct sk_buff *skb)
{
struct hci_rp_read_buffer_size *rp = (void *) skb->data;
@@ -1970,6 +1985,10 @@ static inline void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *sk
hci_cc_write_ca_timeout(hdev, skb);
break;
+ case HCI_OP_READ_FLOW_CONTROL_MODE:
+ hci_cc_read_flow_control_mode(hdev, skb);
+ break;
+
case HCI_OP_READ_LOCAL_AMP_INFO:
hci_cc_read_local_amp_info(hdev, skb);
break;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFCv1 4/6] Bluetooth: Initialize default flow control mode
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
` (2 preceding siblings ...)
2011-11-24 12:52 ` [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
2011-11-25 12:02 ` Marcel Holtmann
2011-11-24 12:52 ` [RFCv1 5/6] Bluetooth: Add HCI Read Data Block Size function Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 6/6] Bluetooth: Recalculate sched for HCI block flow ctrl Emeltchenko Andrei
5 siblings, 1 reply; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
include/net/bluetooth/hci.h | 4 ++++
net/bluetooth/hci_core.c | 4 ++++
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index ee83c36..67f7028 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -271,6 +271,10 @@ enum {
#define HCI_ERROR_LOCAL_HOST_TERM 0x16
#define HCI_ERROR_PAIRING_NOT_ALLOWED 0x18
+/* Flow control modes */
+#define HCI_PACKET_BASED_FLOW_CTL_MODE 0x00
+#define HCI_BLOCK_BASED_FLOW_CTL_MODE 0x01
+
/* ----- HCI Commands ---- */
#define HCI_OP_NOP 0x0000
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index a0247d3..2e4211e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -198,6 +198,8 @@ static void bredr_init(struct hci_dev *hdev)
__le16 param;
__u8 flt_type;
+ hdev->flow_ctl_mode = HCI_PACKET_BASED_FLOW_CTL_MODE;
+
/* Mandatory initialization */
/* Reset */
@@ -244,6 +246,8 @@ static void bredr_init(struct hci_dev *hdev)
static void amp_init(struct hci_dev *hdev)
{
+ hdev->flow_ctl_mode = HCI_BLOCK_BASED_FLOW_CTL_MODE;
+
/* Reset */
hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFCv1 5/6] Bluetooth: Add HCI Read Data Block Size function
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
` (3 preceding siblings ...)
2011-11-24 12:52 ` [RFCv1 4/6] Bluetooth: Initialize default flow control mode Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 6/6] Bluetooth: Recalculate sched for HCI block flow ctrl Emeltchenko Andrei
5 siblings, 0 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Upstream Code Aurora function with minor trivial fixes.
Origin: git://codeaurora.org/kernel/msm.git
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
include/net/bluetooth/hci.h | 8 ++++++++
include/net/bluetooth/hci_core.h | 2 ++
net/bluetooth/hci_event.c | 31 +++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 67f7028..86884b4 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -741,6 +741,14 @@ struct hci_rp_read_bd_addr {
bdaddr_t bdaddr;
} __packed;
+#define HCI_OP_READ_DATA_BLOCK_SIZE 0x100a
+struct hci_rp_read_data_block_size {
+ __u8 status;
+ __le16 max_acl_len;
+ __le16 block_len;
+ __le16 num_blocks;
+} __packed;
+
#define HCI_OP_WRITE_PAGE_SCAN_ACTIVITY 0x0c1c
struct hci_cp_write_page_scan_activity {
__le16 interval;
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index a7fd63a..869ab72 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -172,6 +172,8 @@ struct hci_dev {
__u8 flow_ctl_mode;
+ __u16 block_len;
+
unsigned int auto_accept_delay;
unsigned long quirks;
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 53e56b4..dfea1c6 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -774,6 +774,33 @@ static void hci_cc_read_bd_addr(struct hci_dev *hdev, struct sk_buff *skb)
hci_req_complete(hdev, HCI_OP_READ_BD_ADDR, rp->status);
}
+static void hci_cc_read_data_block_size(struct hci_dev *hdev,
+ struct sk_buff *skb)
+{
+ struct hci_rp_read_data_block_size *rp = (void *) skb->data;
+
+ BT_DBG("%s status 0x%x", hdev->name, rp->status);
+
+ if (rp->status)
+ return;
+
+ if (hdev->flow_ctl_mode == HCI_BLOCK_BASED_FLOW_CTL_MODE) {
+ hdev->acl_mtu = __le16_to_cpu(rp->max_acl_len);
+ hdev->sco_mtu = 0;
+ hdev->block_len = __le16_to_cpu(rp->block_len);
+ /* acl_pkts indicates the number of blocks */
+ hdev->acl_pkts = __le16_to_cpu(rp->num_blocks);
+ hdev->sco_pkts = 0;
+ hdev->acl_cnt = hdev->acl_pkts;
+ hdev->sco_cnt = 0;
+ }
+
+ BT_DBG("%s acl mtu %d:%d, block len %d", hdev->name, hdev->acl_mtu,
+ hdev->acl_cnt, hdev->block_len);
+
+ hci_req_complete(hdev, HCI_OP_READ_DATA_BLOCK_SIZE, rp->status);
+}
+
static void hci_cc_write_ca_timeout(struct hci_dev *hdev, struct sk_buff *skb)
{
__u8 status = *((__u8 *) skb->data);
@@ -1981,6 +2008,10 @@ static inline void hci_cmd_complete_evt(struct hci_dev *hdev, struct sk_buff *sk
hci_cc_read_bd_addr(hdev, skb);
break;
+ case HCI_OP_READ_DATA_BLOCK_SIZE:
+ hci_cc_read_data_block_size(hdev, skb);
+ break;
+
case HCI_OP_WRITE_CA_TIMEOUT:
hci_cc_write_ca_timeout(hdev, skb);
break;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFCv1 6/6] Bluetooth: Recalculate sched for HCI block flow ctrl
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
` (4 preceding siblings ...)
2011-11-24 12:52 ` [RFCv1 5/6] Bluetooth: Add HCI Read Data Block Size function Emeltchenko Andrei
@ 2011-11-24 12:52 ` Emeltchenko Andrei
5 siblings, 0 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-11-24 12:52 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Upstream Code Aurora code with trivial fixes.
Origin: git://codeaurora.org/kernel/msm.git
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
net/bluetooth/hci_core.c | 25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 2e4211e..1b62041 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -2290,10 +2290,12 @@ static inline void hci_sched_acl(struct hci_dev *hdev)
cnt = hdev->acl_cnt;
- while (hdev->acl_cnt &&
+ while (hdev->acl_cnt > 0 &&
(chan = hci_chan_sent(hdev, ACL_LINK, "e))) {
u32 priority = (skb_peek(&chan->data_q))->priority;
- while (quote-- && (skb = skb_peek(&chan->data_q))) {
+ while (quote > 0 && (skb = skb_peek(&chan->data_q))) {
+ int blocks = 1;
+
BT_DBG("chan %p skb %p len %d priority %u", chan, skb,
skb->len, skb->priority);
@@ -2303,15 +2305,28 @@ static inline void hci_sched_acl(struct hci_dev *hdev)
skb = skb_dequeue(&chan->data_q);
+ if (hdev->flow_ctl_mode ==
+ HCI_BLOCK_BASED_FLOW_CTL_MODE)
+ /* Calculate count of blocks used by
+ * this packet
+ */
+ blocks = DIV_ROUND_UP(skb->len -
+ HCI_ACL_HDR_SIZE, hdev->block_len);
+
+ if (blocks > hdev->acl_cnt)
+ return;
+
hci_conn_enter_active_mode(chan->conn,
bt_cb(skb)->force_active);
hci_send_frame(skb);
hdev->acl_last_tx = jiffies;
- hdev->acl_cnt--;
- chan->sent++;
- chan->conn->sent++;
+ hdev->acl_cnt -= blocks;
+ quote -= blocks;
+
+ chan->sent += blocks;
+ chan->conn->sent += blocks;
}
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts
2011-11-24 12:52 ` [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts Emeltchenko Andrei
@ 2011-11-25 12:00 ` Marcel Holtmann
2011-12-02 11:50 ` Gustavo Padovan
1 sibling, 0 replies; 13+ messages in thread
From: Marcel Holtmann @ 2011-11-25 12:00 UTC (permalink / raw)
To: Emeltchenko Andrei; +Cc: linux-bluetooth
Hi Andrei,
> Current controller initialization is moved tp bredr_init and new
> function added amp_init to handle later AMP init sequence. Current
> AMP init sequence include Reset and Read Local Version.
>
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> ---
> net/bluetooth/hci_core.c | 64 ++++++++++++++++++++++++++++++++------------
> net/bluetooth/hci_event.c | 3 ++
> 2 files changed, 49 insertions(+), 18 deletions(-)
so far so good.
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Regards
Marcel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function
2011-11-24 12:52 ` [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function Emeltchenko Andrei
@ 2011-11-25 12:01 ` Marcel Holtmann
0 siblings, 0 replies; 13+ messages in thread
From: Marcel Holtmann @ 2011-11-25 12:01 UTC (permalink / raw)
To: Emeltchenko Andrei; +Cc: linux-bluetooth
Hi Andrei,
> Upstream Code Aurora function with minor trivial fixes.
> Origin: git://codeaurora.org/kernel/msm.git
>
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> ---
> include/net/bluetooth/hci.h | 6 ++++++
> include/net/bluetooth/hci_core.h | 2 ++
> net/bluetooth/hci_event.c | 19 +++++++++++++++++++
> 3 files changed, 27 insertions(+), 0 deletions(-)
just keep in mind that this command is not available on all controller
version.
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Regards
Marcel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFCv1 4/6] Bluetooth: Initialize default flow control mode
2011-11-24 12:52 ` [RFCv1 4/6] Bluetooth: Initialize default flow control mode Emeltchenko Andrei
@ 2011-11-25 12:02 ` Marcel Holtmann
0 siblings, 0 replies; 13+ messages in thread
From: Marcel Holtmann @ 2011-11-25 12:02 UTC (permalink / raw)
To: Emeltchenko Andrei; +Cc: linux-bluetooth
Hi Andrei,
> include/net/bluetooth/hci.h | 4 ++++
> net/bluetooth/hci_core.c | 4 ++++
> 2 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index ee83c36..67f7028 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -271,6 +271,10 @@ enum {
> #define HCI_ERROR_LOCAL_HOST_TERM 0x16
> #define HCI_ERROR_PAIRING_NOT_ALLOWED 0x18
>
> +/* Flow control modes */
> +#define HCI_PACKET_BASED_FLOW_CTL_MODE 0x00
> +#define HCI_BLOCK_BASED_FLOW_CTL_MODE 0x01
see my other email. You have the naming backwards here.
> +
> /* ----- HCI Commands ---- */
> #define HCI_OP_NOP 0x0000
>
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index a0247d3..2e4211e 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -198,6 +198,8 @@ static void bredr_init(struct hci_dev *hdev)
> __le16 param;
> __u8 flt_type;
>
> + hdev->flow_ctl_mode = HCI_PACKET_BASED_FLOW_CTL_MODE;
> +
> /* Mandatory initialization */
>
> /* Reset */
> @@ -244,6 +246,8 @@ static void bredr_init(struct hci_dev *hdev)
>
> static void amp_init(struct hci_dev *hdev)
> {
> + hdev->flow_ctl_mode = HCI_BLOCK_BASED_FLOW_CTL_MODE;
> +
> /* Reset */
> hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
>
Otherwise this is fine.
Regards
Marcel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts
2011-11-24 12:52 ` [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts Emeltchenko Andrei
2011-11-25 12:00 ` Marcel Holtmann
@ 2011-12-02 11:50 ` Gustavo Padovan
2011-12-02 11:56 ` Emeltchenko Andrei
1 sibling, 1 reply; 13+ messages in thread
From: Gustavo Padovan @ 2011-12-02 11:50 UTC (permalink / raw)
To: Emeltchenko Andrei; +Cc: linux-bluetooth
Hi Andrei,
* Emeltchenko Andrei <Andrei.Emeltchenko.news@gmail.com> [2011-11-24 14:52:01 +0200]:
> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
>
> Current controller initialization is moved tp bredr_init and new
> function added amp_init to handle later AMP init sequence. Current
> AMP init sequence include Reset and Read Local Version.
>
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> ---
> net/bluetooth/hci_core.c | 64 ++++++++++++++++++++++++++++++++------------
> net/bluetooth/hci_event.c | 3 ++
> 2 files changed, 49 insertions(+), 18 deletions(-)
For some reason this patch doesn't apply, please rebase.
Gustavo
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts
2011-12-02 11:50 ` Gustavo Padovan
@ 2011-12-02 11:56 ` Emeltchenko Andrei
2011-12-05 9:34 ` Emeltchenko Andrei
0 siblings, 1 reply; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-12-02 11:56 UTC (permalink / raw)
To: linux-bluetooth
Hi Gustavo,
On Fri, Dec 02, 2011 at 08:50:25PM +0900, Gustavo Padovan wrote:
> Hi Andrei,
>
> * Emeltchenko Andrei <Andrei.Emeltchenko.news@gmail.com> [2011-11-24 14:52:01 +0200]:
>
> > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> >
> > Current controller initialization is moved tp bredr_init and new
> > function added amp_init to handle later AMP init sequence. Current
> > AMP init sequence include Reset and Read Local Version.
> >
> > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> > ---
> > net/bluetooth/hci_core.c | 64 ++++++++++++++++++++++++++++++++------------
> > net/bluetooth/hci_event.c | 3 ++
> > 2 files changed, 49 insertions(+), 18 deletions(-)
>
> For some reason this patch doesn't apply, please rebase.
Have you tried the more recent version:
PATCHv2 2/8] Bluetooth: Split ctrl init to BREDR and AMP parts
Best regards
Andrei Emeltchenko
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts
2011-12-02 11:56 ` Emeltchenko Andrei
@ 2011-12-05 9:34 ` Emeltchenko Andrei
0 siblings, 0 replies; 13+ messages in thread
From: Emeltchenko Andrei @ 2011-12-05 9:34 UTC (permalink / raw)
To: linux-bluetooth
Hi Gustavo,
On Fri, Dec 02, 2011 at 01:56:39PM +0200, Emeltchenko Andrei wrote:
> Hi Gustavo,
>
> On Fri, Dec 02, 2011 at 08:50:25PM +0900, Gustavo Padovan wrote:
> > Hi Andrei,
> >
> > * Emeltchenko Andrei <Andrei.Emeltchenko.news@gmail.com> [2011-11-24 14:52:01 +0200]:
> >
> > > From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> > >
> > > Current controller initialization is moved tp bredr_init and new
> > > function added amp_init to handle later AMP init sequence. Current
> > > AMP init sequence include Reset and Read Local Version.
> > >
> > > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> > > ---
> > > net/bluetooth/hci_core.c | 64 ++++++++++++++++++++++++++++++++------------
> > > net/bluetooth/hci_event.c | 3 ++
> > > 2 files changed, 49 insertions(+), 18 deletions(-)
> >
> > For some reason this patch doesn't apply, please rebase.
>
> Have you tried the more recent version:
> PATCHv2 2/8] Bluetooth: Split ctrl init to BREDR and AMP parts
One thought might be that the patch "Remove old code" which is 1/8 shall
be applied first. It is better to apply patches in order they are made.
Best regards
Andrei Emeltchenko
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-12-05 9:34 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-24 12:51 [RFCv1 0/6] AMP/BREDR initialization patches Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 1/6] Bluetooth: remove old code Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 2/6] Bluetooth: Split ctrl init to BREDR and AMP parts Emeltchenko Andrei
2011-11-25 12:00 ` Marcel Holtmann
2011-12-02 11:50 ` Gustavo Padovan
2011-12-02 11:56 ` Emeltchenko Andrei
2011-12-05 9:34 ` Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 3/6] Bluetooth: Add HCI Read Flow Control Mode function Emeltchenko Andrei
2011-11-25 12:01 ` Marcel Holtmann
2011-11-24 12:52 ` [RFCv1 4/6] Bluetooth: Initialize default flow control mode Emeltchenko Andrei
2011-11-25 12:02 ` Marcel Holtmann
2011-11-24 12:52 ` [RFCv1 5/6] Bluetooth: Add HCI Read Data Block Size function Emeltchenko Andrei
2011-11-24 12:52 ` [RFCv1 6/6] Bluetooth: Recalculate sched for HCI block flow ctrl Emeltchenko Andrei
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).