All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.