RE: [PATCH v10 1/3] Bluetooth: hci_uart: add prepare callbacks to hci_uart_proto structure.

From: Amitkumar Karwar
Date: Thu May 05 2016 - 11:30:48 EST


Hi Alan,

> From: linux-bluetooth-owner@xxxxxxxxxxxxxxx [mailto:linux-bluetooth-
> owner@xxxxxxxxxxxxxxx] On Behalf Of One Thousand Gnomes
> Sent: Thursday, May 05, 2016 8:49 PM
> To: Amitkumar Karwar
> Cc: linux-bluetooth@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> Ganapathi Bhat
> Subject: Re: [PATCH v10 1/3] Bluetooth: hci_uart: add prepare callbacks
> to hci_uart_proto structure.
>
> On Thu, 5 May 2016 08:08:20 -0700
> Amitkumar Karwar <akarwar@xxxxxxxxxxx> wrote:
>
> > From: Ganapathi Bhat <gbhat@xxxxxxxxxxx>
> >
> > The new callback is used to prepare the device before HCI becomes
> > ready. One can use this to download firmware if the download process
> > doesn't use HCI commands. Also recv_for_prepare callback is introduced
> > for receiving data from devices during prepare phase.
>
> If your device is not speaking HCI protocol then instead of hackig up
> the HCI ldisc would it not make more sense to have a tiny ldisc for your
> firmware loader instead of adding crap to the fast paths of what is
> currently a clean properly separated out interface ?
>

Below is the code change. It won't add any overhead for existing receive path.

- if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
+ if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+ if (hu->proto->recv_for_prepare)
+ hu->proto->recv_for_prepare(hu, data, count);
return;
+ }

Regards,
Amitkumar