On Thu, May 11, 2017 at 6:41 AM, Arnd Bergmann <a...@arndb.de> wrote: > When SERDEV is a loadable module, and the HCI code is built-in, we > get a link error: > > drivers/bluetooth/built-in.o: In function `ll_close': > hci_ll.c:(.text+0x278d): undefined reference to `serdev_device_close' > drivers/bluetooth/built-in.o: In function `hci_ti_probe': > hci_ll.c:(.text+0x283c): undefined reference to `hci_uart_register_device' > drivers/bluetooth/built-in.o: In function `ll_setup': > hci_ll.c:(.text+0x289e): undefined reference to > `serdev_device_set_flow_control' > hci_ll.c:(.text+0x2b9c): undefined reference to `serdev_device_set_baudrate' > drivers/bluetooth/built-in.o: In function `ll_open': > hci_ll.c:(.text+0x2c77): undefined reference to `serdev_device_open' > drivers/bluetooth/built-in.o: In function `ll_init': > (.init.text+0x10d): undefined reference to `__serdev_device_driver_register' > > We already have CONFIG_BT_HCIUART_SERDEV as a Kconfig symbol that is > set when the serdev code is reachable by a driver. Unlike the nokia > driver, this one can also be built when serdev is completely disabled, > so we add a dependency on serdev either being usable or disabled here.
I thought this was okay because of the differences with the nokia driver, but I should have tested it. In hindsight, serdev as a module is really a PIA considering that it effectively has to be built-in due to TTY dependencies. Acked-by: Rob Herring <r...@kernel.org> > > Fixes: 371805522f87 ("bluetooth: hci_uart: add LL protocol serdev driver > support") > Cc: Rob Herring <r...@kernel.org> > Signed-off-by: Arnd Bergmann <a...@arndb.de> > --- > drivers/bluetooth/Kconfig | 1 + > 1 file changed, 1 insertion(+)