From: Andre Guedes <andre.guedes@openbossa.org>
To: linux-bluetooth@vger.kernel.org
Cc: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
Subject: [PATCH 6/6] Bluetooth: Add support for setting LE connection parameters via debugfs
Date: Fri, 9 Aug 2013 20:12:34 -0300 [thread overview]
Message-ID: <1376089954-13639-7-git-send-email-andre.guedes@openbossa.org> (raw)
In-Reply-To: <1376089954-13639-1-git-send-email-andre.guedes@openbossa.org>
From: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
This will allow for much more pratical measures of the impact of
different connection parameters in different scenarios.
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
---
net/bluetooth/hci_sysfs.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 5993150..f3bf419 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -620,6 +620,47 @@ static int le_conn_parameters_show(struct seq_file *f, void *p)
return 0;
}
+static ssize_t le_conn_parameters_write(struct file *filp,
+ const char __user *ubuf,
+ size_t cnt, loff_t *ppos)
+{
+ struct seq_file *seqf = filp->private_data;
+ struct hci_dev *hdev = seqf->private;
+ struct le_conn_params params;
+ char buffer[36];
+ int n;
+
+ /* No partial writes */
+ if (*ppos != 0)
+ return 0;
+
+ /* Format: '0x0000 0x0000 0x0000 0x0000 0x0000' length 35 */
+ if (cnt != 35)
+ return -ENOSPC;
+
+ memset(buffer, 0, sizeof(buffer));
+
+ if (copy_from_user(buffer, ubuf, cnt))
+ return 0;
+
+ memset(¶ms, 0, sizeof(params));
+
+ n = sscanf(buffer, "%hx %hx %hx %hx %hx", ¶ms.scan_interval,
+ ¶ms.scan_window, ¶ms.conn_interval_min,
+ ¶ms.conn_interval_max, ¶ms.supervision_timeout);
+
+ if (n < 5)
+ return -EINVAL;
+
+ hci_dev_lock(hdev);
+
+ memcpy(&hdev->le_conn_params, ¶ms, sizeof(params));
+
+ hci_dev_unlock(hdev);
+
+ return cnt;
+}
+
static int le_conn_parameters_open(struct inode *inode, struct file *file)
{
return single_open(file, le_conn_parameters_show, inode->i_private);
@@ -627,6 +668,7 @@ static int le_conn_parameters_open(struct inode *inode, struct file *file)
static const struct file_operations le_conn_parameters_fops = {
.open = le_conn_parameters_open,
+ .write = le_conn_parameters_write,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
--
1.8.3.4
prev parent reply other threads:[~2013-08-09 23:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-09 23:12 [PATCH 0/6] LE parameters via debugfs Andre Guedes
2013-08-09 23:12 ` [PATCH 1/6] Bluetooth: Discovery parameters per hci_dev Andre Guedes
2013-08-09 23:12 ` [PATCH 2/6] Bluetooth: Export discovery parameters on debugfs Andre Guedes
2013-08-09 23:12 ` [PATCH 3/6] Bluetooth: Set discovery parameters Andre Guedes
2013-08-10 16:09 ` Marcel Holtmann
2013-08-21 20:41 ` Andre Guedes
2013-08-21 22:56 ` Marcel Holtmann
2013-08-22 20:01 ` Andre Guedes
2013-08-09 23:12 ` [PATCH 4/6] Bluetooth: Keep the LE connection parameters in its own structure Andre Guedes
2013-08-09 23:12 ` [PATCH 5/6] Bluetooth: Add LE connection parameters to debugfs Andre Guedes
2013-08-10 16:10 ` Marcel Holtmann
2013-08-21 20:41 ` Andre Guedes
2013-08-09 23:12 ` Andre Guedes [this message]
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=1376089954-13639-7-git-send-email-andre.guedes@openbossa.org \
--to=andre.guedes@openbossa.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=vinicius.gomes@openbossa.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox