aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_core.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-17 14:45:09 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-17 16:55:07 -0400
commite7b8fc92867cf161ce8182ac4cbee2bed7f16d90 (patch)
tree453cbed747cf7d37f7edc76b9864fa480f0dc7f9 /net/bluetooth/hci_core.c
parentebd1e33bb2167798197e79d277d7ead14013e489 (diff)
Bluetooth: Expose static address value for LE capable controllers
For LE capable controllers, the static address can be configured. For debugging purposes expose the value in debugfs. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r--net/bluetooth/hci_core.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index bb95dddb5e50..3c1014c2dcde 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -118,6 +118,29 @@ static int auto_accept_delay_get(void *data, u64 *val)
118DEFINE_SIMPLE_ATTRIBUTE(auto_accept_delay_fops, auto_accept_delay_get, 118DEFINE_SIMPLE_ATTRIBUTE(auto_accept_delay_fops, auto_accept_delay_get,
119 auto_accept_delay_set, "%llu\n"); 119 auto_accept_delay_set, "%llu\n");
120 120
121static int static_address_show(struct seq_file *f, void *p)
122{
123 struct hci_dev *hdev = f->private;
124
125 hci_dev_lock(hdev);
126 seq_printf(f, "%pMR\n", &hdev->static_addr);
127 hci_dev_unlock(hdev);
128
129 return 0;
130}
131
132static int static_address_open(struct inode *inode, struct file *file)
133{
134 return single_open(file, static_address_show, inode->i_private);
135}
136
137static const struct file_operations static_address_fops = {
138 .open = static_address_open,
139 .read = seq_read,
140 .llseek = seq_lseek,
141 .release = single_release,
142};
143
121/* ---- HCI requests ---- */ 144/* ---- HCI requests ---- */
122 145
123static void hci_req_sync_complete(struct hci_dev *hdev, u8 result) 146static void hci_req_sync_complete(struct hci_dev *hdev, u8 result)
@@ -816,6 +839,10 @@ static int __hci_init(struct hci_dev *hdev)
816 debugfs_create_file("auto_accept_delay", 0644, hdev->debugfs, 839 debugfs_create_file("auto_accept_delay", 0644, hdev->debugfs,
817 hdev, &auto_accept_delay_fops); 840 hdev, &auto_accept_delay_fops);
818 841
842 if (lmp_le_capable(hdev))
843 debugfs_create_file("static_address", 0444, hdev->debugfs,
844 hdev, &static_address_fops);
845
819 return 0; 846 return 0;
820} 847}
821 848