Return-Path: Subject: Re: [PATCH 09/13] Bluetooth: hci_serdev: Fix HCI_UART_INIT_PENDING not working To: Rob Herring Cc: Marcel Holtmann , Johan Hedberg , Martin Blumenstingl , Jeremy Cline , "open list:BLUETOOTH DRIVERS" , "open list:SERIAL DRIVERS" , linux-acpi@vger.kernel.org, devicetree@vger.kernel.org References: <20180527190457.2632-1-hdegoede@redhat.com> <20180527190457.2632-10-hdegoede@redhat.com> From: Hans de Goede Message-ID: Date: Wed, 30 May 2018 19:31:31 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed List-ID: Hi, On 30-05-18 15:25, Rob Herring wrote: > On Sun, May 27, 2018 at 2:04 PM, Hans de Goede wrote: >> Init hci_uart->init_ready so that hci_uart_init_ready() works properly. > > Why do you need to init in a wq? For serdev devices, probe is async > already. So my thought was this wouldn't be needed. The H5 protocol needs to exchange a number of messages to sync the 2 sides before it can accept any HCI commands, so it uses the delayed-registration feature of the hci_ldisc code by setting the HCI_UART_INIT_PENDING. When doing serdev based enumeration we could do something different but that would require significant changes to the hci_h5.c code. Regards, Hans