Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53c1d4b0 authored by Marcel Holtmann's avatar Marcel Holtmann
Browse files

[Bluetooth] Attach host adapters to the Bluetooth bus



The Bluetooth host adapters are attached to the Bluetooth class and the
low-level connections are children of these class devices. Having class
devices as parent of bus devices breaks a lot of reasonable assumptions
about sysfs. The host adapters should be attached to the Bluetooth bus
to simplify the dependency resolving. For compatibility an additional
symlink from the Bluetooth class will be used.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 0878b666
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -305,7 +305,7 @@ int hci_register_sysfs(struct hci_dev *hdev)


	BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
	BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);


	dev->class = bt_class;
	dev->bus = &bt_bus;
	dev->parent = hdev->parent;
	dev->parent = hdev->parent;


	strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE);
	strlcpy(dev->bus_id, hdev->name, BUS_ID_SIZE);
@@ -322,6 +322,10 @@ int hci_register_sysfs(struct hci_dev *hdev)
		if (device_create_file(dev, bt_attrs[i]) < 0)
		if (device_create_file(dev, bt_attrs[i]) < 0)
			BT_ERR("Failed to create device attribute");
			BT_ERR("Failed to create device attribute");


	if (sysfs_create_link(&bt_class->subsys.kset.kobj,
				&dev->kobj, kobject_name(&dev->kobj)) < 0)
		BT_ERR("Failed to create class symlink");

	return 0;
	return 0;
}
}


@@ -329,6 +333,9 @@ void hci_unregister_sysfs(struct hci_dev *hdev)
{
{
	BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
	BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);


	sysfs_remove_link(&bt_class->subsys.kset.kobj,
					kobject_name(&hdev->dev.kobj));

	device_del(&hdev->dev);
	device_del(&hdev->dev);
}
}