Bluetooth: Allow reset via sysfs

Allow sysfs to trigger hdev reset. This is required to recover devices
that are not responsive from userspace.

Signed-off-by: Hsin-chen Chuang <chharry@chromium.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
Hsin-chen Chuang 2025-01-08 20:24:44 +08:00 committed by Luiz Augusto von Dentz
parent f07d478090
commit 0f8a001374

View file

@ -90,9 +90,28 @@ static void bt_host_release(struct device *dev)
module_put(THIS_MODULE); module_put(THIS_MODULE);
} }
static ssize_t reset_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct hci_dev *hdev = to_hci_dev(dev);
if (hdev->reset)
hdev->reset(hdev);
return count;
}
static DEVICE_ATTR_WO(reset);
static struct attribute *bt_host_attrs[] = {
&dev_attr_reset.attr,
NULL,
};
ATTRIBUTE_GROUPS(bt_host);
static const struct device_type bt_host = { static const struct device_type bt_host = {
.name = "host", .name = "host",
.release = bt_host_release, .release = bt_host_release,
.groups = bt_host_groups,
}; };
void hci_init_sysfs(struct hci_dev *hdev) void hci_init_sysfs(struct hci_dev *hdev)