From: "Gustavo F. Padovan" <padovan@profusion.mobi>
To: Antti Julku <antti.julku@nokia.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH] Bluetooth: Add mgmt command for fast connectable mode
Date: Tue, 21 Jun 2011 15:01:20 -0300 [thread overview]
Message-ID: <20110621180120.GB2628@joana> (raw)
In-Reply-To: <1308303828-1982-1-git-send-email-antti.julku@nokia.com>
Hi Antti,
* Antti Julku <antti.julku@nokia.com> [2011-06-17 12:43:48 +0300]:
> Add command to management interface for enabling/disabling the
> fast connectable mode.
>
> Signed-off-by: Antti Julku <antti.julku@nokia.com>
> ---
> include/net/bluetooth/hci.h | 10 +++++++
> include/net/bluetooth/mgmt.h | 5 +++
> net/bluetooth/mgmt.c | 62 ++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 77 insertions(+), 0 deletions(-)
>
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 65345cd..d7b9600 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -698,6 +698,16 @@ struct hci_rp_read_bd_addr {
> bdaddr_t bdaddr;
> } __packed;
>
> +#define HCI_OP_WRITE_PAGE_SCAN_ACTIVITY 0x0c1c
> +struct hci_cp_write_page_scan_activity {
> + __le16 interval;
> + __le16 window;
> +} __packed;
> +
> +#define HCI_OP_WRITE_PAGE_SCAN_TYPE 0x0c47
> + #define PAGE_SCAN_TYPE_STANDARD 0x00
> + #define PAGE_SCAN_TYPE_INTERLACED 0x01
> +
> #define HCI_OP_LE_SET_EVENT_MASK 0x2001
> struct hci_cp_le_set_event_mask {
> __u8 mask[8];
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index 45bea25..7196d04 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -209,6 +209,11 @@ struct mgmt_cp_unblock_device {
> bdaddr_t bdaddr;
> } __packed;
>
> +#define MGMT_OP_SET_FAST_CONNECTABLE 0x001F
> +struct mgmt_cp_set_fast_connectable {
> + __u8 enable;
> +} __packed;
> +
> #define MGMT_EV_CMD_COMPLETE 0x0001
> struct mgmt_ev_cmd_complete {
> __le16 opcode;
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index 64c0418..b4bed16 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -1730,6 +1730,64 @@ static int unblock_device(struct sock *sk, u16 index, unsigned char *data,
> return err;
> }
>
> +static int set_fast_connectable(struct sock *sk, u16 index,
> + unsigned char *data, u16 len)
> +{
> + struct hci_dev *hdev;
> + struct mgmt_cp_set_fast_connectable *cp;
set cp = data here.
> + struct hci_cp_write_page_scan_activity acp;
> + u8 type;
> + int err;
> +
> + BT_DBG("hci%u", index);
> +
> + cp = (void *) data;
> +
> + if (len != sizeof(*cp))
> + return cmd_status(sk, index, MGMT_OP_SET_FAST_CONNECTABLE,
> + EINVAL);
> +
> + hdev = hci_dev_get(index);
> + if (!hdev)
> + return cmd_status(sk, index, MGMT_OP_SET_FAST_CONNECTABLE,
> + ENODEV);
> +
> + hci_dev_lock(hdev);
> +
> + if (cp->enable) {
> + type = PAGE_SCAN_TYPE_INTERLACED;
> + acp.interval = 0x0024; /* 22.5 msec page scan interval */
> + } else {
> + type = PAGE_SCAN_TYPE_STANDARD; /* default */
> + acp.interval = 0x0800; /* default 1.28 sec page scan */
> + }
> +
> + acp.window = 0x0012; /* default 11.25 msec page scan window */
> +
> + err = hci_send_cmd(hdev, HCI_OP_WRITE_PAGE_SCAN_ACTIVITY,
> + sizeof(acp), &acp);
> + if (err < 0) {
> + err = cmd_status(sk, index, MGMT_OP_SET_FAST_CONNECTABLE,
> + -err);
> + goto failed;
> + }
> +
> + err = hci_send_cmd(hdev, HCI_OP_WRITE_PAGE_SCAN_TYPE, 1, &type);
> + if (err < 0) {
> + err = cmd_status(sk, index, MGMT_OP_SET_FAST_CONNECTABLE,
> + -err);
> + goto failed;
> + }
> +
> + err = cmd_complete(sk, index, MGMT_OP_SET_FAST_CONNECTABLE,
> + NULL, 0);
> +failed:
Call this "done" as the normal code path ends here as well.
Gustavo
next prev parent reply other threads:[~2011-06-21 18:01 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-17 9:43 [PATCH] Bluetooth: Add mgmt command for fast connectable mode Antti Julku
2011-06-21 18:01 ` Gustavo F. Padovan [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-06-22 10:11 Antti Julku
2011-06-29 0:58 ` Marcel Holtmann
2011-07-25 11:34 ` Dmitriy Paliy
2011-07-25 12:46 ` Claudio Takahasi
2011-08-04 8:44 ` Antti Julku
2011-08-10 9:33 ` Antti Julku
2011-08-10 13:55 ` Marcel Holtmann
2011-08-19 12:38 ` Antti Julku
2011-08-22 18:01 ` Gustavo Padovan
2011-08-22 18:40 ` Claudio Takahasi
2011-08-22 19:48 ` Gustavo Padovan
2011-08-23 6:03 ` Antti Julku
2011-07-25 13:38 ` Marcel Holtmann
2011-07-25 14:48 ` Dmitriy Paliy
2011-06-22 9:18 Antti Julku
2011-06-16 11:54 Antti Julku
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=20110621180120.GB2628@joana \
--to=padovan@profusion.mobi \
--cc=antti.julku@nokia.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.