> I would have expected that the main (and IMO sufficient) reason why > the kernel should do it is because the particular bus used to connect > a BT chip to the CPU is a hw detail that a kernel that does its job > should keep to itself. Same as userspace not needing to care if a BT > chip is behind SDIO or USB, why does it have to tell the kernel behind > which UART a BT chip is sitting? Lots of reasons, some historic some not 1. Different BT chips have different interfaces, especially when it gets to stuff like firmware reprogramming 2. In many cases we don't know at the kernel level where there are BT uarts. It's improving with recent ACPI but for many systems it's simply not available to the OS 3. The power management for a lot of BT (especially on device tree) is not actually expressed, so you need a slightly customised daemon for each device - that one is ugly but the serial and bt layers can't fix it. 4. Because you don't want to just automatically load and turn on bluetooth just because it is there - it burns power There is lots of stuff we probe and bind via user space - most things these days in fact. That's much of why we have notifiers and udev. It's frequently a win in flexibility, security and configurability to do stuff via user daemons. We do it for example with all the volume management, raid and disk encryption. Alan -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html