diff options
Diffstat (limited to 'net/bluetooth/hci_sysfs.c')
-rw-r--r-- | net/bluetooth/hci_sysfs.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c index 25835403d659..cef1e3e1881c 100644 --- a/net/bluetooth/hci_sysfs.c +++ b/net/bluetooth/hci_sysfs.c | |||
@@ -41,6 +41,26 @@ static ssize_t show_type(struct device *dev, struct device_attribute *attr, char | |||
41 | return sprintf(buf, "%s\n", typetostr(hdev->type)); | 41 | return sprintf(buf, "%s\n", typetostr(hdev->type)); |
42 | } | 42 | } |
43 | 43 | ||
44 | static ssize_t show_name(struct device *dev, struct device_attribute *attr, char *buf) | ||
45 | { | ||
46 | struct hci_dev *hdev = dev_get_drvdata(dev); | ||
47 | char name[249]; | ||
48 | int i; | ||
49 | |||
50 | for (i = 0; i < 248; i++) | ||
51 | name[i] = hdev->dev_name[i]; | ||
52 | |||
53 | name[248] = '\0'; | ||
54 | return sprintf(buf, "%s\n", name); | ||
55 | } | ||
56 | |||
57 | static ssize_t show_class(struct device *dev, struct device_attribute *attr, char *buf) | ||
58 | { | ||
59 | struct hci_dev *hdev = dev_get_drvdata(dev); | ||
60 | return sprintf(buf, "0x%.2x%.2x%.2x\n", | ||
61 | hdev->dev_class[2], hdev->dev_class[1], hdev->dev_class[0]); | ||
62 | } | ||
63 | |||
44 | static ssize_t show_address(struct device *dev, struct device_attribute *attr, char *buf) | 64 | static ssize_t show_address(struct device *dev, struct device_attribute *attr, char *buf) |
45 | { | 65 | { |
46 | struct hci_dev *hdev = dev_get_drvdata(dev); | 66 | struct hci_dev *hdev = dev_get_drvdata(dev); |
@@ -49,6 +69,17 @@ static ssize_t show_address(struct device *dev, struct device_attribute *attr, c | |||
49 | return sprintf(buf, "%s\n", batostr(&bdaddr)); | 69 | return sprintf(buf, "%s\n", batostr(&bdaddr)); |
50 | } | 70 | } |
51 | 71 | ||
72 | static ssize_t show_features(struct device *dev, struct device_attribute *attr, char *buf) | ||
73 | { | ||
74 | struct hci_dev *hdev = dev_get_drvdata(dev); | ||
75 | |||
76 | return sprintf(buf, "0x%02x%02x%02x%02x%02x%02x%02x%02x\n", | ||
77 | hdev->features[0], hdev->features[1], | ||
78 | hdev->features[2], hdev->features[3], | ||
79 | hdev->features[4], hdev->features[5], | ||
80 | hdev->features[6], hdev->features[7]); | ||
81 | } | ||
82 | |||
52 | static ssize_t show_manufacturer(struct device *dev, struct device_attribute *attr, char *buf) | 83 | static ssize_t show_manufacturer(struct device *dev, struct device_attribute *attr, char *buf) |
53 | { | 84 | { |
54 | struct hci_dev *hdev = dev_get_drvdata(dev); | 85 | struct hci_dev *hdev = dev_get_drvdata(dev); |
@@ -170,7 +201,10 @@ static ssize_t store_sniff_min_interval(struct device *dev, struct device_attrib | |||
170 | } | 201 | } |
171 | 202 | ||
172 | static DEVICE_ATTR(type, S_IRUGO, show_type, NULL); | 203 | static DEVICE_ATTR(type, S_IRUGO, show_type, NULL); |
204 | static DEVICE_ATTR(name, S_IRUGO, show_name, NULL); | ||
205 | static DEVICE_ATTR(class, S_IRUGO, show_class, NULL); | ||
173 | static DEVICE_ATTR(address, S_IRUGO, show_address, NULL); | 206 | static DEVICE_ATTR(address, S_IRUGO, show_address, NULL); |
207 | static DEVICE_ATTR(features, S_IRUGO, show_features, NULL); | ||
174 | static DEVICE_ATTR(manufacturer, S_IRUGO, show_manufacturer, NULL); | 208 | static DEVICE_ATTR(manufacturer, S_IRUGO, show_manufacturer, NULL); |
175 | static DEVICE_ATTR(hci_version, S_IRUGO, show_hci_version, NULL); | 209 | static DEVICE_ATTR(hci_version, S_IRUGO, show_hci_version, NULL); |
176 | static DEVICE_ATTR(hci_revision, S_IRUGO, show_hci_revision, NULL); | 210 | static DEVICE_ATTR(hci_revision, S_IRUGO, show_hci_revision, NULL); |
@@ -185,7 +219,10 @@ static DEVICE_ATTR(sniff_min_interval, S_IRUGO | S_IWUSR, | |||
185 | 219 | ||
186 | static struct device_attribute *bt_attrs[] = { | 220 | static struct device_attribute *bt_attrs[] = { |
187 | &dev_attr_type, | 221 | &dev_attr_type, |
222 | &dev_attr_name, | ||
223 | &dev_attr_class, | ||
188 | &dev_attr_address, | 224 | &dev_attr_address, |
225 | &dev_attr_features, | ||
189 | &dev_attr_manufacturer, | 226 | &dev_attr_manufacturer, |
190 | &dev_attr_hci_version, | 227 | &dev_attr_hci_version, |
191 | &dev_attr_hci_revision, | 228 | &dev_attr_hci_revision, |